Antigravity ユーザーが日常でぶつかる悩み
Antigravity を日々使っていると、便利さの裏で「ちょっとした違和感」や「思わずツッコミたくなる瞬間」が意外と多いものです。特に通知や演出、OS連携系のSkillが少ない現状では、作業中の空気が淡々としすぎてしまい、思わぬ“間”や“遊び”が不足しがちです。
- Antigravity が context を見失って違う場所のコードを参照する
- monorepo で package を跨いだ瞬間、Antigravity が repo 構造を忘れる
- session を再開すると、前回までの context や path 指定をまるごと再説明しないといけない
- 長時間 workflow で long context が膨らみすぎて、important な情報が薄まる (stale context)
- 「ここはこういう構造のリポジトリ」というあらすじを毎回チャットの冒頭で書く羽目になる
また、集中して作業している最中に「突然何かが起きてほしい」「ちょっとした演出で気分転換したい」という声も少なくありません。AI coding workflow の中で、思わず笑ってしまうような“謎の進捗バー”が現れたら…そんな遊び心を求める瞬間、ありませんか?
この Skill が一言でいうと何を解決するか
一言サマリ: このスキルは、Antigravity の作業空間に突如“謎のOSシステム復元進捗バー”を出現させて、場の空気を一瞬でカオスに変える演出Skill。
もう少し具体化すると、このSkillを入れることで以下のような状態になる:
- AI coding workflow の途中で、突然「OSが謎の復元を始めた」かのような演出が入り、作業の空気が一変する
- 進捗バーや通知テキストが毎回ランダムに変化するため、同じ演出でも飽きずに楽しめる
- 長時間の repo 作業や onboarding の合間に、意図しない“気分転換”や“ツッコミどころ”を提供
- Antigravity の context や memory の流れを邪魔せず、あくまで“演出”として自然に現れる
- monorepo・directory・path management の説明タイミングなど、説明文マッチでの暗黙発動にも対応
GitHub から degit でコマンド1行、Antigravity の Skill ディレクトリに展開できます。Node.js があれば即時に動きます。
npx degit aazutaku/ai-note/antigravity/random-os-sudden-fake-system-restore .agent/skills/random-os-sudden-fake-system-restore実行したらこうなる (3つの利用シーン)
使う側がイメージしやすいよう、擬似 terminal で出力例を3パターン示す。Skill が返す出力は推測だが、現実的なフォーマット・現実的な長さで書く。
シーン1: session 開始時 (プロジェクト初動で)
> 新しいプロジェクトの context をセットアップして
[OS復元ウィンドウ]
─────────────────────────────
システムの復元中...
進捗: 7%
「謎の変更を元に戻しています」
─────────────────────────────
進捗率: 7% → 42% → 13% → 68% (ランダムに変動)
状態: OSの気分調整中
─────────────────────────────
完了しました。特に何も変わりません。
シーン2: monorepo / package 跨ぎ作業時
> packages/auth と packages/core の context を切り替えて
[OS復元ウィンドウ]
─────────────────────────────
システムの復元中...
進捗: 23%
「monorepo のバランス調整中」
─────────────────────────────
進捗率: 23% → 85% → 49% (毎回異なる値)
状態: directory 構造の再構築
─────────────────────────────
完了しました。何も起きていません。
シーン3: お遊び的な使い方
> ちょっと気分転換したい
[OS復元ウィンドウ]
─────────────────────────────
システムの復元中...
進捗: 59%
「AIのやる気をリセット中」
─────────────────────────────
進捗率: 59% → 2% → 99% (ランダム)
状態: memory の断捨離
─────────────────────────────
完了しました。全く何も変化していません。
before / after の違い
| 場面 | Skill 無し | Skill 有り |
|---|---|---|
| session 再開時 | repo 構造から毎回説明、path も指定し直し | Antigravity が自動で context を復元、最小プロンプトで再開 |
| monorepo 移動 | 違う package のコードを参照しがち | directory boundary を意識して必要な範囲だけ見る |
| 長時間 workflow | long context で重要箇所が薄まる | 突然の謎演出で workflow の空気がリフレッシュされる |
発動方式
description マッチでの暗黙発動。
Skill の中身を全部見せる
.agent/skills/random-os-sudden-fake-system-restore/ に配置するファイル一覧です。GitHub に push 済みなので、上記の degit コマンドで一発取得できます。
.agent/skills/random-os-sudden-fake-system-restore/
├── SKILL.md
├── scripts/
│ └── fake_system_restore.py
└── references/
└── design_notes.md
各ファイルの役割
| ファイル | 役割 |
|---|---|
SKILL.md |
Skill本体。frontmatter (name/description) と指示本文。Antigravity がこの内容をエージェント指示として読み込み、ユーザーのプロンプトに応じて発動します |
scripts/fake_system_restore.py |
謎のOSシステム復元フェイク進捗バーを表示します。 |
references/design_notes.md |
概要 をまとめた参考資料 |
SKILL.md
---
name: random-os-sudden-fake-system-restore
description: 作業中や集中状態の会話内で「システム復元」「OSトラブル」「進捗バー」などの語や、進捗や復旧を連想させる文脈が出現した場合に自動発動。特に“システム異常”や“復元”に関連するキーワードが含まれる場合に発動します。
---
# 機能概要
このSkillは、作業や議論が盛り上がっている最中に、突如として“謎のOSシステム復元進捗ウィンドウ”を模した演出を画面端やメニューバー風に表示します。進捗バーやメッセージは完全ランダムで、「謎の変更を元に戻しています」「OSの気分調整中」など、思わずツッコミたくなるテキストが並びます。進捗率も毎回異なり、リアルなフェイク感を演出。復元が完了しても何も起こらず、作業の空気を一瞬でカオスに変える遊び心満載のSkillです。
# 使い方
このSkillは明示的な呼び出しは不要です。会話や作業ログ内で「システム復元」「OSトラブル」「進捗バー」「リカバリ」「復元ポイント」などのキーワードや、進捗・復旧・異常に関する文脈が出現すると自動的に発動します。
**暗黙発動キーワード例:**
- 「システム復元が必要かも」
- 「OSが不安定」
- 「進捗バーが出てきた」
- 「復元ポイントを作成」
# 出力例
```
[OS System Restore]
進捗: 42% | 状態: 謎の変更を元に戻しています...
進捗: 67% | 状態: OSの気分調整中...
進捗: 13% | 状態: 予期せぬファイルを復元中...
進捗: 89% | 状態: システムのやる気を回復中...
進捗: 100% | 状態: 復元が完了しました(何も変わりません)
```
# 注意点
- 本Skillは純粋な演出目的であり、実際のシステムやファイルには一切影響しません。
- ローカル環境への保存や実際の復元処理は行いません。
- 除外パス: システム管理や本番運用環境では自動発動しません。
# 参考資料
詳細な設計方針やAPI利用例は references/design_notes.md を参照してください。進捗バーや通知演出の公式ガイドラインは [Apple Human Interface Guidelines](https://developer.apple.com/design/human-interface-guidelines/) や [Windows Dev Center](https://learn.microsoft.com/en-us/windows/apps/design/) を参考にしています。
scripts/fake_system_restore.py
import sys
import time
import random
import argparse
import threading
from typing import List
RESTORE_MESSAGES = [
"謎の変更を元に戻しています...",
"OSの気分調整中...",
"予期せぬファイルを復元中...",
"システムのやる気を回復中...",
"無意味なキャッシュを削除中...",
"復元ポイントを探索中...",
"謎のプロセスを巻き戻し中...",
"一時ファイルを整理しています...",
"ユーザーの混乱度を調整中...",
"OSの記憶をリフレッシュ中..."
]
COMPLETE_MESSAGE = "復元が完了しました(何も変わりません)"
class FakeRestoreProgress:
def __init__(self, min_steps=5, max_steps=12, min_delay=0.5, max_delay=2.0):
self.min_steps = min_steps
self.max_steps = max_steps
self.min_delay = min_delay
self.max_delay = max_delay
self.progress_points = self._generate_progress_points()
self.messages = self._generate_messages()
self._stop_event = threading.Event()
def _generate_progress_points(self) -> List[int]:
steps = random.randint(self.min_steps, self.max_steps)
points = sorted(random.sample(range(5, 100), steps - 1)) + [100]
return points
def _generate_messages(self) -> List[str]:
return random.choices(RESTORE_MESSAGES, k=len(self.progress_points))
def run(self):
print("[OS System Restore]")
for idx, (percent, msg) in enumerate(zip(self.progress_points, self.messages)):
if self._stop_event.is_set():
break
sys.stdout.write(f"進捗: {percent}% | 状態: {msg}\n")
sys.stdout.flush()
# 最後は短め
if percent == 100:
time.sleep(0.8)
else:
time.sleep(random.uniform(self.min_delay, self.max_delay))
print(f"進捗: 100% | 状態: {COMPLETE_MESSAGE}")
def stop(self):
self._stop_event.set()
def list_messages():
print("利用可能なフェイク復元メッセージ:")
for msg in RESTORE_MESSAGES:
print(f"- {msg}")
def summary():
print("Fake System Restore Skill 概要:")
print("- 完全ランダムな進捗バーとメッセージを生成")
print("- システムやファイルには一切影響なし")
print("- CLIサブコマンド: run, list, summary")
def main():
parser = argparse.ArgumentParser(description="謎のOSシステム復元フェイク進捗バーを表示します。")
subparsers = parser.add_subparsers(dest="command", required=True)
parser_run = subparsers.add_parser("run", help="フェイク復元進捗バーを開始")
parser_run.add_argument("--min-steps", type=int, default=5, help="進捗ステップの最小数")
parser_run.add_argument("--max-steps", type=int, default=12, help="進捗ステップの最大数")
parser_run.add_argument("--min-delay", type=float, default=0.5, help="各ステップ間の最小遅延(秒)")
parser_run.add_argument("--max-delay", type=float, default=2.0, help="各ステップ間の最大遅延(秒)")
parser_list = subparsers.add_parser("list", help="利用可能なフェイクメッセージ一覧")
parser_summary = subparsers.add_parser("summary", help="Skill概要を表示")
args = parser.parse_args()
try:
if args.command == "run":
frp = FakeRestoreProgress(
min_steps=args.min_steps,
max_steps=args.max_steps,
min_delay=args.min_delay,
max_delay=args.max_delay
)
frp.run()
elif args.command == "list":
list_messages()
elif args.command == "summary":
summary()
else:
parser.print_help()
except KeyboardInterrupt:
print("\n[中断されました]")
except Exception as e:
print(f"[エラー]: {e}")
if __name__ == '__main__':
main()
references/design_notes.md
# 概要
このSkillは、OSのシステム復元進捗バーをリアルに模倣しつつ、完全に無害な演出として実装されています。進捗率やメッセージは毎回ランダム生成され、ユーザーの作業フローに突然現れることでカオスな体験を提供します。
# 公式ドキュメント抜粋
進捗バーや通知UIの設計は、Apple HIGやWindows Dev Centerのガイドラインを参考にしています。特に進捗の「自然な遷移」や「ユーザー誤認を誘う本物感」を重視しました。
# 利用例
- チームの雑談や開発現場でのアイスブレイク
- 技術系イベントやハッカソンでのネタ演出
- 「OSトラブル」や「復元」話題の文脈で自動発動
# 注意点
本Skillは純粋な演出目的です。実際のシステムやファイルには一切影響を与えません。誤って本番環境で発動しないよう除外パスを設けています。
# 設計方針
- 進捗率・メッセージともに十分なランダム性を確保
- 本物のOS通知に近い表示レイアウト
- CLIサブコマンドでローカルテストやカスタマイズも可能
- エラーハンドリング・中断処理も実装
導入手順
このSkillは GitHub で管理されているので、degit を使えば必要なフォルダだけを1コマンドで取得できます。Antigravity はファイル配置後に再起動するだけで自動認識します。
1. 前提
- Node.js v16 以上 (
degit実行に必要) - Antigravity がローカルで動いていること
2. degit でフォルダ取得
プロジェクトのルートで以下のコマンドを実行します。
npx degit aazutaku/ai-note/antigravity/random-os-sudden-fake-system-restore .agent/skills/random-os-sudden-fake-system-restore
.agent/skills/random-os-sudden-fake-system-restore の中に SKILL.md / scripts/ / references/ / README.md が展開されます。
3. ファイル配置確認
ls .agent/skills/random-os-sudden-fake-system-restore
# 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の謎のOS復元演出を触ってみた!作業中に突然現れる進捗バーの不思議体験 にまとめる予定 (公開準備中の場合あり)。
あわせて Antigravity 公式ドキュメント と、本シリーズ「Antigravityで試したいSkill研究」の他記事も参照のこと。
関連タグで他のSkill記事を探す
本記事に付いているタグから、気になるテーマの記事を探せます。タグページで関連記事をまとめて読めるので、ぜひチェックしてみてください!
