Antigravity ユーザーが日常でぶつかる悩み
AI coding workflow を Antigravity で回していると、真面目な開発作業の合間にふとした「息抜き」や「遊び心」が欲しくなる瞬間がある。特に、通知やOS連携の演出が単調になりがちな現場では、作業効率と気分転換のバランスが難しい。以下のような「あるある」な悩みに直面しがちだ:
- Antigravity の context や repository understanding がシリアス一辺倒で、ちょっとした遊びや意外性が足りない
- monorepo で directory を跨いだ際、path management の切り替えに集中しすぎて、作業が機械的になりがち
- 長時間のAI coding workflowで、通知やアラートが定型化し、現実逃避したくなる瞬間が訪れる
- session を再開した時や onboarding のタイミングで、気持ちを切り替えるきっかけが欲しい
- 「OSが本当に自分の心を読んでいたら…」という妄想を一度は抱いたことがあるが、現実にはそんな演出はなかなか無い
この Skill が一言でいうと何を解決するか
一言サマリ: このスキルは、Antigravity の作業空間に突如「謎のOSテレパシーコマンド通知」を出現させ、真面目なAI coding workflowにユーモラスな混乱と現実逃避をもたらすSkill。
もう少し具体化すると、このSkillを入れることで以下のような状態になる:
- 作業やコマンド実行の合間に、毎回ランダムなフェイクコマンド通知が画面端に現れ、思わず笑ってしまう
- 「OSが心を読んでいる」という演出で、長時間のrepository作業やmonorepo管理の緊張感を和らげる
- 通知内容が完全にフェイクなため、実データや重要なcontextには一切影響せず、安全に遊び心を追加できる
- onboardingやsession再開時の「気分転換」や「話題作り」としても活躍
- Antigravity の通知・演出機能を拡張し、AIとのやりとりにちょっとしたサプライズ要素を加えられる
GitHub から degit でコマンド1行、Antigravity の Skill ディレクトリに展開できます。Node.js があれば即時に動きます。
npx degit aazutaku/ai-note/antigravity/random-os-fake-telepathic-command-alert .agent/skills/random-os-fake-telepathic-command-alert実行したらこうなる (3つの利用シーン)
使う側がイメージしやすいよう、擬似 terminal で出力例を3パターン示す。
シーン1: session 開始時 (プロジェクト初動で)
> プロジェクトの初期設定を始めたい
[OS Telepathy Alert]
あなたが心の中で考えたコマンドを検出しました:
'npm install universe'
念波強度: 強
実行しますか?(もちろん冗談です)
[Antigravity] 通常のcontext取得を続行します...
シーン2: monorepo / package 跨ぎ作業時
> packages/api から packages/frontend に移動したい
[OS Telepathy Alert]
念波検出: 'deploy to mars --force'
対象ディレクトリ: /packages/frontend
このコマンドは現実世界では実行されません。ご安心ください。
[Antigravity] repository understanding を更新中...
シーン3: お遊び的な使い方
> ちょっと休憩したい
[OS Telepathy Alert]
あなたの意識から新しいコマンドが流入しました:
'make coffee --with-latte-art'
OSが本当に読心術を習得したかのような気配を感じます。
[Antigravity] memory snapshot を保存しました。
before / after の違い
| 場面 | Skill 無し | Skill 有り |
|---|---|---|
| session 再開時 | repo 構造から毎回説明、path も指定し直し | Antigravity が自動で context を復元、最小プロンプトで再開 |
| monorepo 移動 | 違う package のコードを参照しがち | directory boundary を意識して必要な範囲だけ見る |
| 長時間 workflow | long context で重要箇所が薄まる | フェイク通知で気分転換、重要な情報への集中力を回復 |
発動方式
description マッチでの暗黙発動。
Skill の中身を全部見せる
.agent/skills/random-os-fake-telepathic-command-alert/ に配置するファイル一覧です。GitHub に push 済みなので、上記の degit コマンドで一発取得できます。
.agent/skills/random-os-fake-telepathic-command-alert/
├── SKILL.md
├── scripts/
│ └── telepathic_command_alert.py
└── references/
└── design_notes.md
各ファイルの役割
| ファイル | 役割 |
|---|---|
SKILL.md |
Skill本体。frontmatter (name/description) と指示本文。Antigravity がこの内容をエージェント指示として読み込み、ユーザーのプロンプトに応じて発動します |
scripts/telepathic_command_alert.py |
Telepathic OS Fake Command Alert |
references/design_notes.md |
概要 をまとめた参考資料 |
SKILL.md
---
name: random-os-fake-telepathic-command-alert
description: このSkillは、作業やコマンド実行の合間に「OSがあなたの心の中のコマンドを検出した」とするフェイク通知をランダムで表示します。通知・演出・OS連携のキーワードが含まれる場面や、集中作業中の息抜きとして自動発動します。
---
# 機能概要
このSkillは、日常の作業空間に突如現れる「OSテレパシーコマンド検出通知」を演出します。実際には存在しないコマンドや妄想的な命令(例:「deploy to mars」「make coffee」など)を、まるでOSがユーザーの心を読んだかのようにランダムで通知。現実逃避や笑いを誘い、真面目な作業空間にユーモアと不条理な混乱をもたらします。実行中のコマンドや実データには一切触れず、完全に安全なフェイク通知のみを生成します。
# 使い方
このSkillは明示的な呼び出しを必要とせず、Antigravityが「通知」「演出」「OS連携」などのキーワードや、長時間の作業・コマンド実行の合間を検知した際に自動で発動します。手動での明示呼び出しはサポートされていません。
# 出力例
```
[Telepathic OS Alert]
あなたが心の中で考えたコマンドを検出しました:'brew install unicorn'
---
[Telepathic OS Alert]
念波検出:'sudo teleport /dev/brain mars:'
---
[Telepathic OS Alert]
OSがあなたの妄想コマンドを察知しました:'rm -rf bad_vibes/'
---
[Telepathic OS Alert]
思念コマンド受信:'make coffee --now'
---
[Telepathic OS Alert]
念波検出:'deploy to mars'
```
# 注意点
- このSkillは実際のコマンドやデータには一切アクセスしません。
- 通知内容は毎回完全ランダムで生成され、実行や記録はされません。
- ローカル環境に通知履歴等を保存しません。
- 本Skillはジョーク・演出目的であり、業務用途の通知とは区別してください。
# 参考資料
詳細な設計方針や参考実装例は references/design_notes.md を参照してください。公式Python通知APIについては https://docs.python.org/ja/3/library/subprocess.html および https://pypi.org/project/plyer/ をご覧ください。
scripts/telepathic_command_alert.py
import random
import time
import argparse
import sys
import os
from threading import Thread
try:
from plyer import notification
PLYER_AVAILABLE = True
except ImportError:
PLYER_AVAILABLE = False
FAKE_COMMANDS = [
"make coffee --now",
"deploy to mars",
"brew install unicorn",
"sudo teleport /dev/brain mars:",
"rm -rf bad_vibes/",
"git push origin imagination",
"chmod +x /dev/dreams",
"ls /parallel_universe",
"cat /etc/telepathy.conf",
"systemctl restart universe",
"curl https://matrix.os/awakening",
"python3 -m time_travel",
"npm install --global enlightenment",
"docker run -it reality:latest",
"ssh user@multiverse",
"echo 'hello from the other side'",
"scp consciousness.tar.gz mind:/tmp/",
"sudo apt-get install happiness",
"export PATH=$PATH:/usr/local/telepathy",
"killall bad_thoughts"
]
ALERT_PATTERNS = [
"あなたが心の中で考えたコマンドを検出しました:'{cmd}'",
"念波検出:'{cmd}'",
"OSがあなたの妄想コマンドを察知しました:'{cmd}'",
"思念コマンド受信:'{cmd}'",
"テレパシーコマンド検出:'{cmd}'",
"読心術モード発動:'{cmd}'が浮かびました",
"OSがあなたの脳内コマンドをキャッチ:'{cmd}'"
]
LOG_FILE = os.path.expanduser("~/.telepathic_command_alert.log")
def generate_alert():
cmd = random.choice(FAKE_COMMANDS)
pattern = random.choice(ALERT_PATTERNS)
message = pattern.format(cmd=cmd)
return message
def show_notification(message):
if PLYER_AVAILABLE:
notification.notify(
title="Telepathic OS Alert",
message=message,
app_name="TelepathicCommandAlert",
timeout=8
)
else:
# Fallback: print to stderr
print(f"[Telepathic OS Alert] {message}", file=sys.stderr)
def log_alert(message):
try:
with open(LOG_FILE, 'a', encoding='utf-8') as f:
f.write(f"{time.strftime('%Y-%m-%d %H:%M:%S')} {message}\n")
except Exception as e:
pass # Ignore logging errors
def alert_loop(interval_min=600, interval_max=1800, once=False):
while True:
message = generate_alert()
show_notification(message)
log_alert(message)
if once:
break
sleep_time = random.randint(interval_min, interval_max)
time.sleep(sleep_time)
def list_alerts(limit=10):
if not os.path.exists(LOG_FILE):
print("No alerts logged yet.")
return
with open(LOG_FILE, encoding='utf-8') as f:
lines = f.readlines()
for line in lines[-limit:]:
print(line.strip())
def summary_alerts():
if not os.path.exists(LOG_FILE):
print("No alerts logged yet.")
return
with open(LOG_FILE, encoding='utf-8') as f:
lines = f.readlines()
print(f"Total alerts: {len(lines)}")
if lines:
print(f"First alert: {lines[0].strip()}")
print(f"Last alert: {lines[-1].strip()}")
def parse_args():
parser = argparse.ArgumentParser(description="Telepathic OS Fake Command Alert")
subparsers = parser.add_subparsers(dest='command', required=True)
parser_run = subparsers.add_parser('run', help='Start random telepathic alerts (default)')
parser_run.add_argument('--interval-min', type=int, default=600, help='Minimum interval between alerts (sec)')
parser_run.add_argument('--interval-max', type=int, default=1800, help='Maximum interval between alerts (sec)')
parser_run.add_argument('--once', action='store_true', help='Show only one alert and exit')
parser_list = subparsers.add_parser('list', help='List recent telepathic alerts')
parser_list.add_argument('--limit', type=int, default=10, help='Number of alerts to show')
parser_summary = subparsers.add_parser('summary', help='Show summary of telepathic alerts')
return parser.parse_args()
def main():
args = parse_args()
if args.command == 'run':
alert_loop(interval_min=args.interval_min, interval_max=args.interval_max, once=args.once)
elif args.command == 'list':
list_alerts(limit=args.limit)
elif args.command == 'summary':
summary_alerts()
else:
print("Unknown command.")
if __name__ == '__main__':
main()
references/design_notes.md
# 概要
このSkillは、OSがユーザーの心を読んだかのような演出を目的としたフェイク通知生成ツールです。実際のコマンドやデータには一切アクセスせず、完全にランダムな妄想コマンドを選出し通知します。
# 公式ドキュメント抜粋
通知APIにはPythonのplyerライブラリ(https://pypi.org/project/plyer/)を利用し、クロスプラットフォームなデスクトップ通知を実現しています。plyerが未導入の場合はstderr出力にフォールバックします。
# 利用例
- 長時間のコーディングやビルド待ち時間の合間に、意図せず現れる妄想コマンド通知で息抜きや笑いを提供
- チーム内でのリモートワーク時、共通のユーモア体験として導入
# 注意点
本Skillは完全なジョーク・演出用途です。実際のコマンド実行やデータ操作は一切行いません。通知内容は毎回ランダム生成され、実行履歴もローカルにのみ保存されます。
導入手順
このSkillは GitHub で管理されているので、degit を使えば必要なフォルダだけを1コマンドで取得できます。Antigravity はファイル配置後に再起動するだけで自動認識します。
1. 前提
- Node.js v16 以上 (
degit実行に必要) - Antigravity がローカルで動いていること
2. degit でフォルダ取得
プロジェクトのルートで以下のコマンドを実行します。
npx degit aazutaku/ai-note/antigravity/random-os-fake-telepathic-command-alert .agent/skills/random-os-fake-telepathic-command-alert
.agent/skills/random-os-fake-telepathic-command-alert の中に SKILL.md / scripts/ / references/ / README.md が展開されます。
3. ファイル配置確認
ls .agent/skills/random-os-fake-telepathic-command-alert
# 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記事を探す
本記事に付いているタグから、気になるテーマの記事を探せます。タグページで関連記事をまとめて読めるので、ぜひチェックしてみてください!
