Antigravity ユーザーが日常でぶつかる悩み
Antigravity を日々使っていると、AI coding workflow の中で「またか」と感じる瞬間が多々あります。特に repository understanding や path management に関わる context の扱いでは、思わずため息が出るような場面が繰り返されがちです。通知や演出、OS連携に関する“遊び心”が少ないのも、開発に張りつめた空気をもたらしがちです。
- Antigravity が context を見失って違う場所のコードを参照する
- monorepo で package を跨いだ瞬間、Antigravity が repo 構造を忘れる
- session を再開すると、前回までの context や path 指定をまるごと再説明しないといけない
- 長時間 workflow で long context が膨らみすぎて、important な情報が薄まる (stale context)
- 「ここはこういう構造のリポジトリ」というあらすじを毎回チャットの冒頭で書く羽目になる
こうした悩みは、AI coding agent の強力な repository understanding や memory 機能があっても、実際の開発現場では避けて通れません。特に通知や演出のバリエーションが少ないと、単調な作業が続きがちです。
この Skill が一言でいうと何を解決するか
一言サマリ: ターミナルを開くたびにSkill。
このSkillを導入すると、毎回ターミナルやコンソールを開くたびに、現実には存在しない“謎OS”の起動メッセージがランダム表示されます。具体的には以下のようなメリットがあります。
- Antigravity の session 開始時や repo 切り替え時に、ユニークな OS 演出で気分転換できる
- onboarding や長時間の workflow でも、遊び心ある通知で単調な作業をリフレッシュできる
- 毎回異なる context でスタートする感覚を演出し、AI coding workflow のマンネリ化を防ぐ
- repo や directory の切り替えタイミングで、楽しい“異世界”感を味わえる
- 実作業やファイルには一切影響せず、純粋な演出として安心して利用できる
GitHub から degit でコマンド1行、Antigravity の Skill ディレクトリに展開できます。Node.js があれば即時に動きます。
npx degit aazutaku/ai-note/antigravity/os-greeting-changer .agent/skills/os-greeting-changer実行したらこうなる (3つの利用シーン)
このSkillが入っていると、ターミナルやコンソールを開くだけで「なんだこれ?」と笑える異世界OSメッセージが表示されます。以下は典型的な利用シーン別の出力例です。
シーン1: session 開始時 (プロジェクト初動で)
> antigravity start
[Welcome to Windows 99]
起動中... システムの安定性を保証できません。
C:\projects\my-monorepo> _
(ヒント: このOSは現実には存在しません。)
現在のリポジトリ: my-monorepo/
主要ディレクトリ: packages/, apps/, scripts/
シーン2: monorepo / package 跨ぎ作業時
> cd packages/core && antigravity resume
Macintosh SE/30が時空を超えて復活しました。
System Folderをスキャン中...
/packages/core ディレクトリを監視しています。
repository understanding 機能が強化されました。
シーン3: お遊び的な使い方
> antigravity open
Linuxがコーヒータイム中、しばらくお待ち下さい。
...豆を挽いています...
AI coding workflow を楽しく始めましょう。
対象repo: /workspace/fun-project
before / after の違い
| 場面 | Skill 無し | Skill 有り |
|---|---|---|
| session 再開時 | repo 構造から毎回説明、path も指定し直し | Antigravity が自動で context を復元、最小プロンプトで再開 |
| monorepo 移動 | 違う package のコードを参照しがち | directory boundary を意識して必要な範囲だけ見る |
| 長時間 workflow | long context で重要箇所が薄まる | 遊び心ある演出で workflow の切れ目を明確化 |
発動方式
description マッチでの暗黙発動。
Skill の中身を全部見せる
.agent/skills/os-greeting-changer/ に配置するファイル一覧です。GitHub に push 済みなので、上記の degit コマンドで一発取得できます。
.agent/skills/os-greeting-changer/
├── SKILL.md
├── scripts/
│ └── os_greeting_changer.py
└── references/
└── design_notes.md
各ファイルの役割
| ファイル | 役割 |
|---|---|
SKILL.md |
Skill本体。frontmatter (name/description) と指示本文。Antigravity がこの内容をエージェント指示として読み込み、ユーザーのプロンプトに応じて発動します |
scripts/os_greeting_changer.py |
ターミナル起動時に偽OS起動メッセージを表示するスクリプト |
references/design_notes.md |
概要 をまとめた参考資料 |
SKILL.md
---
name: os-greeting-changer
description: ターミナルやコンソールが起動した際、または新しいセッション開始時に、現実には存在しないOSや架空の起動メッセージをランダムに表示することで、作業開始時に遊び心を提供します。triggerTypeはalways、semantic-match-onlyで発動。
---
# 機能概要
このSkillは、ターミナルやコンソールを開くたびに、現実には存在しない“偽OS起動メッセージ”をランダムで表示します。例えば「Windows 99 起動中…」や「Macintosh SE/30が時空を超えて復活」など、実際にはありえないOSや謎の起動演出が混ざったメッセージで、日々の作業開始時にちょっとした驚きと笑いを提供します。実用性はありませんが、単調な開発環境に遊び心を注入し、気分転換やチーム内の話題作りに役立ちます。
# 使い方
このSkillは明示的な呼び出し不要で、ターミナルやコンソールが起動するたび、または新規セッション開始時に自動で発動します。暗黙発動キーワード例: "terminal open", "console start", "新しいシェルセッション" など。ユーザー操作やファイルには一切影響しません。
# 出力例
```
[OS Boot] Windows 99 Ultimate Edition 起動中…
[OS Boot] Macintosh SE/30が時空を超えて復活しました。
[OS Boot] Linux 9.99 Coffee Break中。しばらくお待ちください。
[OS Boot] BeOS Hyper Edition: 仮想次元からの帰還。
[OS Boot] Solaris Nebula 起動準備中…
[OS Boot] MS-DOS 10.0が異世界でロードされています。
```
# 注意点
- 本Skillは通知・演出のみを目的としており、ファイルやシステムには一切変更を加えません。
- ログや履歴をローカル保存する機能はありません。
- 実際のOSやシステム起動には影響を与えません。
- 実在しないOS名やジョークメッセージが含まれるため、業務用途や自動化スクリプトには適しません。
# 参考資料
詳細な設計方針や利用例は references/design_notes.md を参照してください。
scripts/os_greeting_changer.py
import sys
import random
import argparse
from datetime import datetime
# 偽OSメッセージ一覧
FAKE_OS_MESSAGES = [
"[OS Boot] Windows 99 Ultimate Edition 起動中…",
"[OS Boot] Macintosh SE/30が時空を超えて復活しました。",
"[OS Boot] Linux 9.99 Coffee Break中。しばらくお待ちください。",
"[OS Boot] BeOS Hyper Edition: 仮想次元からの帰還。",
"[OS Boot] Solaris Nebula 起動準備中…",
"[OS Boot] MS-DOS 10.0が異世界でロードされています。",
"[OS Boot] Amiga 5000X 幻想モードで起動します。",
"[OS Boot] OS/2 Warp Infinity Edition 準備完了。",
"[OS Boot] CP/M 2025 Quantum Edition ロード中…",
"[OS Boot] Red Star OS 8.8.8 起動中…",
"[OS Boot] Plan 9 from Bell Labs: 次元転送開始。",
"[OS Boot] QNX Hypervisor: 仮想宇宙を展開中。",
"[OS Boot] TempleOS Resurrection 起動します。",
"[OS Boot] Android 42.0 Nebula Edition 起動準備中。",
"[OS Boot] iOS 20.2.1 Retro Modeで起動しています。",
"[OS Boot] FreeBSD 13.37 Unicorn Edition 起動中。",
"[OS Boot] NetWare 2023起動しています。",
"[OS Boot] Xenix 3000: タイムトラベルモード起動。",
"[OS Boot] Haiku OS 5.0が幻想空間でロード中。",
"[OS Boot] MINIX 10.0: 教育用宇宙OS起動。"
]
LOG_FILE = None # ログファイルは使わない設計
def print_random_os_message():
msg = random.choice(FAKE_OS_MESSAGES)
print(msg)
return msg
def list_all_messages():
for idx, msg in enumerate(FAKE_OS_MESSAGES, 1):
print(f"{idx:2d}: {msg}")
def summary():
print(f"登録されている偽OSメッセージ数: {len(FAKE_OS_MESSAGES)}")
print("一例: ")
for msg in random.sample(FAKE_OS_MESSAGES, min(3, len(FAKE_OS_MESSAGES))):
print(f" - {msg}")
def search_messages(keyword):
found = [msg for msg in FAKE_OS_MESSAGES if keyword.lower() in msg.lower()]
if not found:
print(f"キーワード '{keyword}' を含む偽OSメッセージは見つかりませんでした。")
else:
for msg in found:
print(msg)
def main():
parser = argparse.ArgumentParser(description="ターミナル起動時に偽OS起動メッセージを表示するスクリプト")
subparsers = parser.add_subparsers(dest='command')
parser_log = subparsers.add_parser('log', help='ランダムな偽OS起動メッセージを表示 (デフォルト)')
parser_list = subparsers.add_parser('list', help='全ての偽OS起動メッセージを一覧表示')
parser_summary = subparsers.add_parser('summary', help='登録されているメッセージの概要を表示')
parser_search = subparsers.add_parser('search', help='キーワードで偽OSメッセージを検索')
parser_search.add_argument('keyword', type=str, help='検索キーワード')
# 引数なしの場合はlog動作
if len(sys.argv) == 1:
print_random_os_message()
sys.exit(0)
args = parser.parse_args()
if args.command == 'log':
print_random_os_message()
elif args.command == 'list':
list_all_messages()
elif args.command == 'summary':
summary()
elif args.command == 'search':
search_messages(args.keyword)
else:
parser.print_help()
if __name__ == '__main__':
main()
references/design_notes.md
# 概要
本Skillは、ターミナルやコンソール起動時に、現実には存在しないOSや架空の起動メッセージをランダムに表示することで、ユーザーに遊び心と驚きを提供します。実際のシステムやファイルには一切影響を与えず、安全性を重視した設計です。
# 公式ドキュメント抜粋
Python 3.6以降の標準ライブラリのみを利用し、外部依存を排除しています。argparseによるCLIサブコマンド構成で、log(ランダム表示)、list(全一覧)、summary(概要)、search(検索)をサポートします。
# 利用例
- ターミナル起動時の自動実行(プロファイルやスクリプト連携)
- チームの朝会やイベントでの話題作り
- 気分転換やジョーク用途
# 注意点
- 実際のOSやシステムには一切影響を与えません。
- ログや履歴はローカル保存されません。
- 実用性はありませんが、演出や通知カテゴリでの利用を推奨します。
# 設計方針
本Skillは「安全・副作用ゼロ・遊び心」を重視し、実行時に一切のシステム変更やファイル操作を行いません。メッセージリストは今後拡張可能です。
導入手順
このSkillは GitHub で管理されているので、degit を使えば必要なフォルダだけを1コマンドで取得できます。Antigravity はファイル配置後に再起動するだけで自動認識します。
1. 前提
- Node.js v16 以上 (
degit実行に必要) - Antigravity がローカルで動いていること
2. degit でフォルダ取得
プロジェクトのルートで以下のコマンドを実行します。
npx degit aazutaku/ai-note/antigravity/os-greeting-changer .agent/skills/os-greeting-changer
.agent/skills/os-greeting-changer の中に SKILL.md / scripts/ / references/ / README.md が展開されます。
3. ファイル配置確認
ls .agent/skills/os-greeting-changer
# 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 でも有効か?
- プロジェクト指示との連携をどう組み立てるか?
- ターミナルやコンソール起動時に確実に偽OSメッセージがランダム表示されるか?
- 現実には存在しないOSや起動演出が混ざっているか?
- 実作業やファイルに一切影響しない安全設計か?
実際に Antigravity で試した検証ログは Antigravityで通知・演出・OS連携Skillを試してみた結果 にまとめる予定 (公開準備中の場合あり)。
あわせて Antigravity 公式ドキュメント と、本シリーズ「Antigravityで試したいSkill研究」の他記事も参照のこと。
関連タグで他のSkill記事を探す
本記事に付いているタグから、気になるテーマの記事を探せます。タグページで関連記事をまとめて読めるので、ぜひチェックしてみてください!
