Antigravity ユーザーが日常でぶつかる悩み
Antigravity を日常的に使っていると、AI coding workflow の中で「ちょっとした息抜き」や「突発的な画面切り替え」が欲しくなる瞬間が意外と多いものです。しかし、単なるエディタやターミナルの切り替えでは物足りず、逆に緊張感や集中力が途切れてしまうことも。特に monorepo や巨大な repository を扱う現場では、path management や context の切り替えに神経を使う一方で、思わず笑ってしまうような演出があれば、気分転換やチーム内コミュニケーションのきっかけにもなります。
- Antigravity が context を見失って違う場所のコードを参照する
- monorepo で package を跨いだ瞬間、Antigravity が repo 構造を忘れる
- session を再開すると、前回までの context や path 指定をまるごと再説明しないといけない
- 長時間 workflow で long context が膨らみすぎて、important な情報が薄まる (stale context)
- 「ここはこういう構造のリポジトリ」というあらすじを毎回チャットの冒頭で書く羽目になる
こうした真面目な悩みの合間に、誰しも「突然謎のダミー画面で現実逃避したい」「意味不明なウィンドウ切り替えで場を和ませたい」と思った経験があるはずです。特に通知・演出・OS連携系の Skill は、Antigravity の AI coding workflow にちょっとした遊び心を加えたいユーザーにとって、意外とニーズの高いジャンルです。
この Skill が一言でいうと何を解決するか
一言サマリ: このスキルは、作業中に突如“謎のダミー画面”をランダムに生成し、ウィンドウを一時的にカオスな状態へ切り替える演出Skill。
もう少し具体化すると、このSkillを入れることで以下のような状態になる:
- Antigravity の session 中、ワンアクションでターミナルやエディタ画面を完全に謎なダミー画面へ切り替えられる
- 毎回違う内容(意味不明な業務資料風グラフやOS風警告など)がランダム生成されるため、マンネリ化しない
- 本来の repo や directory の context には一切影響せず、Skill 終了後は確実に元の状態へ復帰できる
- onboarding やチーム内イベント、長時間作業中のリフレッシュ演出としても活用可能
- Antigravity の path management や repository understanding の文脈で「異常系」や「お遊び系」演出を加えられる
GitHub から degit でコマンド1行、Antigravity の Skill ディレクトリに展開できます。Node.js があれば即時に動きます。
npx degit aazutaku/ai-note/antigravity/random-os-sudden-boss-key .agent/skills/random-os-sudden-boss-key実行したらこうなる (3つの利用シーン)
使う側がイメージしやすいよう、擬似 terminal で出力例を3パターン示します。
シーン1: session 開始時 (プロジェクト初動で)
# 画面を一時的に隠したい、と自然言語で入力
> ちょっと画面を一瞬隠したい
[Random OS Sudden Boss Key 発動]
--- 謎の業務資料風グラフが画面全体に表示されます ---
| 2024年Q2 謎KPI推移グラフ |
| ████████ ████ ██ █████ |
| (注: このグラフに意味はありません) |
--- 5秒後、自動で元のエディタ画面に復帰します ---
シーン2: monorepo / package 跨ぎ作業時
> packages/api から packages/web に移動したので、気分転換したい
[Random OS Sudden Boss Key 発動]
=== 未知のOS風エラーダイアログ ===
| ERROR: Directory Structure Corrupted! |
| Please contact your system administrator. |
| [OK] [CANCEL] |
--- 4秒後、元のターミナルに戻ります ---
シーン3: お遊び的な使い方
> なんか面白いことして
[Random OS Sudden Boss Key 発動]
*** 謎のレトロOS画面 ***
C:\> run mysterious-process.exe
Loading... ███░░░░░░ 23%
System Alert: Unclassified anomaly detected!
--- 数秒後、作業画面に自動復帰 ---
before / after の違い
| 場面 | Skill 無し | Skill 有り |
|---|---|---|
| session 再開時 | repo 構造から毎回説明、path も指定し直し | Antigravity が自動で context を復元、最小プロンプトで再開 |
| monorepo 移動 | 違う package のコードを参照しがち | directory boundary を意識して必要な範囲だけ見る |
| 長時間 workflow | long context で重要箇所が薄まる | 画面演出で一時的に集中力をリセット、気分転換できる |
発動方式
description マッチでの暗黙発動。
Skill の中身を全部見せる
.agent/skills/random-os-sudden-boss-key/ に配置するファイル一覧です。GitHub に push 済みなので、上記の degit コマンドで一発取得できます。
.agent/skills/random-os-sudden-boss-key/
├── SKILL.md
├── scripts/
│ └── random_boss_key.py
└── references/
└── design_notes.md
各ファイルの役割
| ファイル | 役割 |
|---|---|
SKILL.md |
Skill本体。frontmatter (name/description) と指示本文。Antigravity がこの内容をエージェント指示として読み込み、ユーザーのプロンプトに応じて発動します |
scripts/random_boss_key.py |
random-os-sudden-boss-key: 謎のダミー画面で作業を隠す迷惑Skill |
references/design_notes.md |
概要 をまとめた参考資料 |
SKILL.md
---
name: random-os-sudden-boss-key
description: 作業中に“ボスキー”や“画面隠し”などのキーワードが含まれる会話やコマンド、あるいは上司・同僚の接近を示唆する文脈を検知した際に、AntigravityがこのSkillを発動します。即座にダミー画面へ切り替え、終了後は元の画面へ復帰します。
---
# 機能概要
このSkillは、作業中のウィンドウ(ターミナルやエディタ)をワンアクションで“謎のダミー画面”に即座に切り替えます。従来のボスキーのように業務画面を装うのではなく、毎回完全ランダムに生成される「意味不明なグラフ」「OS風の警告」「謎の進捗バー」など、逆に怪しまれるカオスな演出を実現します。仕事の緊張感を一瞬で混沌に変えたい時や、ジョーク用途に最適です。
# 使い方
Antigravityが「ボスキー」「画面隠し」「一時退避」「上司が来た」などのキーワードや、急なウィンドウ切り替えを要求する文脈を検知すると自動発動します。明示的な呼び出しコマンドはありません。Skill発動時は現在のウィンドウを隠し、ダミー画面を表示。エスケープキーや一定時間経過で元の画面に復帰します。
# 出力例
```
[=== OS WARNING ===]
System anomaly detected!
Error code: XJ-42A
Please contact your administrator.
[ランダムグラフ]
CPU Utilization: ████▒▒▒▒▒▒ 43%
Memory: ██████▒▒▒▒ 62%
Press ESC to return.
```
# 注意点
本SkillはローカルのX11/Waylandウィンドウ制御API(pyautogui, tkinter等)を利用します。リモート環境やCLI専用端末では一部機能が制限されます。ダミー画面の内容は毎回完全ランダム生成。Skill発動中の作業内容は保存されませんのでご注意ください。
# 参考資料
詳細な設計方針やAPI利用例は references/design_notes.md を参照してください。ウィンドウ制御には pyautogui, tkinter, random, time 標準ライブラリを活用しています。
scripts/random_boss_key.py
import sys
import argparse
import random
import string
import threading
import time
import tkinter as tk
from tkinter import messagebox
# ダミー画面生成用データ
ERROR_CODES = ["XJ-42A", "QW-13B", "PL-99Z", "MN-77X", "AB-01C"]
DUMMY_WARNINGS = [
"System anomaly detected!",
"Critical error occurred!",
"Unknown OS event triggered!",
"Access violation exception!",
"Resource allocation failed!"
]
GRAPH_LABELS = ["CPU Utilization", "Memory", "Disk I/O", "Network", "GPU Load"]
# ダミー進捗バー生成
def random_bar(length=20, percent=None):
if percent is None:
percent = random.randint(10, 99)
filled = int(length * percent / 100)
bar = "█" * filled + "▒" * (length - filled)
return f"{bar} {percent}%"
# ダミーグラフ生成
def random_graph():
lines = []
for label in random.sample(GRAPH_LABELS, k=random.randint(2, 4)):
percent = random.randint(10, 99)
bar = random_bar(10, percent)
lines.append(f"{label}: {bar}")
return "\n".join(lines)
# ダミー警告画面生成
def random_warning():
code = random.choice(ERROR_CODES)
warning = random.choice(DUMMY_WARNINGS)
return f"[=== OS WARNING ===]\n{warning}\nError code: {code}\nPlease contact your administrator."
# ダミー画面の内容をランダム生成
def generate_dummy_screen():
screens = []
if random.random() < 0.5:
screens.append(random_warning())
if random.random() < 0.8:
screens.append("\n[ランダムグラフ]\n" + random_graph())
if random.random() < 0.3:
screens.append(f"\n[謎の進捗]\nProgress: {random_bar(15)}")
screens.append("\nPress ESC to return.")
return "\n".join(screens)
# Tkinterで全画面ダミーウィンドウを表示
class DummyScreen:
def __init__(self, timeout=10):
self.root = tk.Tk()
self.root.attributes('-fullscreen', True)
self.root.configure(bg='black')
self.root.bind('<Escape>', self.close)
self.closed = False
self.timeout = timeout
self.label = tk.Label(
self.root,
text=generate_dummy_screen(),
font=("Consolas", 16),
fg="lime",
bg="black",
justify="left",
anchor="nw"
)
self.label.pack(fill=tk.BOTH, expand=True, padx=40, pady=40)
self.root.after(int(self.timeout * 1000), self.close)
def show(self):
self.root.mainloop()
def close(self, event=None):
if not self.closed:
self.closed = True
self.root.destroy()
# CLIサブコマンド: show (ダミー画面表示)
def cmd_show(args):
timeout = args.timeout if args.timeout else 10
screen = DummyScreen(timeout=timeout)
screen.show()
# CLIサブコマンド: test (ランダム内容生成テスト)
def cmd_test(args):
print(generate_dummy_screen())
# CLIサブコマンド: info (Skill情報表示)
def cmd_info(args):
print("random-os-sudden-boss-key Skill")
print("- ダミー画面を全画面表示し、ESCまたはタイムアウトで復帰")
print("- 内容は完全ランダム生成")
print("- サブコマンド: show, test, info")
# メイン関数
def main():
parser = argparse.ArgumentParser(description="random-os-sudden-boss-key: 謎のダミー画面で作業を隠す迷惑Skill")
subparsers = parser.add_subparsers(dest='command')
parser_show = subparsers.add_parser('show', help='ダミー画面を表示')
parser_show.add_argument('--timeout', type=int, default=10, help='表示秒数 (デフォルト10秒)')
parser_show.set_defaults(func=cmd_show)
parser_test = subparsers.add_parser('test', help='ダミー画面内容を端末出力')
parser_test.set_defaults(func=cmd_test)
parser_info = subparsers.add_parser('info', help='Skill情報表示')
parser_info.set_defaults(func=cmd_info)
args = parser.parse_args()
if hasattr(args, 'func'):
args.func(args)
else:
parser.print_help()
if __name__ == '__main__':
main()
references/design_notes.md
# 概要
このSkillは、従来の“ボスキー”とは異なり、画面を業務用に偽装するのではなく、完全に意味不明なダミー画面をランダム生成して表示することを主眼としています。主にジョークやカオスな演出用途を想定しています。
# 公式ドキュメント抜粋
ウィンドウ制御にはPythonのtkinter(標準GUIライブラリ)を利用し、全画面表示やESCキーによる復帰を実装しています。乱数生成や文字列生成にはrandom, stringモジュールを使用。
# 利用例
- 上司の接近を検知した際に自動でダミー画面を表示
- コマンドラインから `python random_boss_key.py show --timeout 5` で手動発動
- 内容確認用に `test` サブコマンドで端末出力
# 注意点
リモートデスクトップやCLI専用端末では全画面表示が制限される場合があります。Skill発動中の作業状態は保存されませんのでご注意ください。
# 設計方針
「怪しまれるほど意味不明」な画面生成を重視し、毎回異なる内容を高速に描画します。ウィンドウ復帰の確実性とユーザー体験のバランスに配慮しています。
導入手順
このSkillは GitHub で管理されているので、degit を使えば必要なフォルダだけを1コマンドで取得できます。Antigravity はファイル配置後に再起動するだけで自動認識します。
1. 前提
- Node.js v16 以上 (
degit実行に必要) - Antigravity がローカルで動いていること
2. degit でフォルダ取得
プロジェクトのルートで以下のコマンドを実行します。
npx degit aazutaku/ai-note/antigravity/random-os-sudden-boss-key .agent/skills/random-os-sudden-boss-key
.agent/skills/random-os-sudden-boss-key の中に SKILL.md / scripts/ / references/ / README.md が展開されます。
3. ファイル配置確認
ls .agent/skills/random-os-sudden-boss-key
# SKILL.md, scripts/, references/, README.md があればOK
4. Antigravity を再起動 (or Skill 自動検出を待つ)
新しいSkillが自動で認識されます。リスト確認したい場合は Antigravity に「使えるSkill一覧を見せて」と聞く と Skill 名で出てきます。
5. 動作確認
自然言語で発動条件にマッチする指示を出すと Skill が動きます。期待される出力イメージは「実行したらこうなる」セクションを参照してください。
こんな瞬間に便利
- session 開始時: 前回までの repo 把握を Antigravity に一発で復元させたい
- monorepo 移動時: packages を跨いだ瞬間に context を切り替えたい
- onboarding 時: 新しい repo を Antigravity に把握させ、こちらが path を全部指定する手間を省きたい
- session 再開時: long context が切れた後でも、必要な path と directory 構造だけ素早く戻したい
- package 跨ぎ作業時: directory boundary を Skill 側で管理して、irrelevant な path 混入を防ぎたい
- long-running workflow 前: long context で重要箇所が薄まる前に snapshot を取りたい
気になるポイント (壊れそうな箇所)
実運用に乗せる前に頭に入れておきたい懸念。後で検証する観点でもある:
- stale context 問題: 長時間 workflow で Skill 出力が古くなり、現状と乖離する可能性
- directory 増えすぎ問題: 大規模 repo で全 directory を網羅すると出力が肥大化して context window を圧迫
- monorepo 肥大化: packages が多い構成では出力が雑になり、結局 path 指定し直しになる懸念
- irrelevant path 混入: node_modules / build 成果物 / generated コードを拾ってしまう可能性
- Antigravity 固有の引っかかり: description のセマンティックマッチ精度が要件次第
- 発動しないケース: description が漠然 / 他の Skill が優先 / git管理外 directory
試す前に確かめたいこと
この Skill を実運用に投入する前に確かめたい問いを並べる:
- 実 repo での token 消費は許容範囲か?
- monorepo (packages 多数) で安定して動くか?
- stale context にならず、長時間 workflow でも有効か?
- プロジェクト指示との連携をどう組み立てるか?
- ウィンドウがワンアクションで即座に切り替わるか?
- ダミー画面の内容が毎回完全ランダム生成されるか?
- 終了後に元の画面へ確実に復帰できるか?
実際に Antigravity で試した検証ログは Antigravityの謎ボスキーで画面が突然カオスに変わるのを試してみた! にまとめる予定 (公開準備中の場合あり)。
あわせて Antigravity 公式ドキュメント と、本シリーズ「Antigravityで試したいSkill研究」の他記事も参照のこと。
関連タグで他のSkill記事を探す
本記事に付いているタグから、気になるテーマの記事を探せます。タグページで関連記事をまとめて読めるので、ぜひチェックしてみてください!
