Antigravityで謎の進捗バー演出を活用する方法と効果

  • URLをコピーしました!
目次

Antigravity ユーザーが日常でぶつかる悩み

Antigravity を使った AI coding workflow では、真面目な作業が続くほど集中力が張り詰め、時に息抜きや遊び心が欲しくなる瞬間が訪れます。特に monorepo の巨大な repository を相手にしていると、path management や context 指定の繰り返しで単調な作業感が強まり、気分転換のきっかけを探してしまうことも少なくありません。

また、Antigravity の通知や演出は実用重視なものが多く、エンタメ要素や「脱力系」の非日常感を味わえる仕掛けが不足しがちです。そんな時、ちょっとした演出で workflow の雰囲気を一変させたいというニーズも現場では意外と根強いものです。

  • Antigravity が context を見失って違う場所のコードを参照するたび、気持ちが途切れる
  • monorepo で package を跨いだ瞬間、Antigravity が repo 構造を忘れて説明がループしがち
  • session を再開するたび、前回までの context や directory 情報を再説明する手間が発生
  • 長時間の AI coding workflow で long context が膨らみ、重要な repository understanding が薄れる
  • 毎回「ここはこういう構造のリポジトリ」と説明し直す単調さが、作業の緊張感を高めてしまう

こうした状況に、意図的に「謎の進捗バー」など非日常的な演出を挟み、気分をリフレッシュしたいという声も増えています。

この Skill が一言でいうと何を解決するか

一言サマリ: このスキルは、Antigravity の作業フローに「謎のOSアップデート進捗バー」という非日常の演出を挿入し、緊張感や単調さを一瞬でほぐすSkill。

もう少し具体化すると、このSkillを入れることで以下のような状態になる:

  • AI coding workflow の合間に、意味不明かつ理不尽な進捗バーで気分転換できる
  • monorepo や複雑な repository の directory 作業に、遊び心ある演出を差し込める
  • onboarding や session 再開時の「説明疲れ」に、脱力系のサプライズを加えられる
  • Antigravity の通知・演出をカスタマイズし、独自の context を演出できる
  • 長時間の作業や stale context による集中切れを、ユーモアでリセットできる
QUICK INSTALL
このSkillをすぐ試す

GitHub から degit でコマンド1行、Antigravity の Skill ディレクトリに展開できます。Node.js があれば即時に動きます。

npx degit aazutaku/ai-note/antigravity/random-os-fake-mysterious-update-progress .agent/skills/random-os-fake-mysterious-update-progress

実行したらこうなる (3つの利用シーン)

使う側がイメージしやすいよう、擬似 terminal で出力例を3パターン示す。Skill が返す出力は推測だが、現実的なフォーマット・現実的な長さで書く。

シーン1: session 開始時 (プロジェクト初動で)


> プロジェクトの初期セットアップを始めたい

[OSアップデート進行中...]
-------------------------------------------------
進捗: 7%
内容: 未知の言語パッチ適用中 (lang: ZQX-42)
-------------------------------------------------
進捗: 21%
内容: レガシーキーボード最適化中
-------------------------------------------------
進捗: 18%
内容: 暗黒モード互換性検証中
-------------------------------------------------
進捗: 99%
内容: ユーザー存在証明を再確認中
-------------------------------------------------
進捗: 99%
内容: 進捗バーの最終調整中 (しばらくお待ちください)
-------------------------------------------------

シーン2: monorepo / package 跨ぎ作業時


> packages/core から packages/utils に移動して作業を続けたい

[OSアップデート進行中...]
-------------------------------------------------
進捗: 12%
内容: ディレクトリ境界再構築中 (packages/utils)
-------------------------------------------------
進捗: 34%
内容: 仮想ファイルシステムに幻のパスを追加中
-------------------------------------------------
進捗: 29%
内容: 不明な依存性を再インデックス中
-------------------------------------------------
進捗: 99%
内容: 無意味なキャッシュをクリア中
-------------------------------------------------
進捗: 99%
内容: アップデート完了までしばらくお待ちください
-------------------------------------------------

シーン3: お遊び的な使い方


> ちょっと息抜きしたい、何か面白いことして

[OSアップデート進行中...]
-------------------------------------------------
進捗: 3%
内容: 意味不明なバイナリをランダム生成中
-------------------------------------------------
進捗: 67%
内容: 仮想プロセスを無限ループに突入させました
-------------------------------------------------
進捗: 24%
内容: 進捗バーの逆走を開始
-------------------------------------------------
進捗: 99%
内容: 99%で止まる進捗バーを最適化中
-------------------------------------------------
進捗: 99%
内容: 99%で止まる進捗バーを最適化中
-------------------------------------------------

before / after の違い

場面 Skill 無し Skill 有り
session 再開時 repo 構造から毎回説明、path も指定し直し Antigravity が自動で context を復元、最小プロンプトで再開
monorepo 移動 違う package のコードを参照しがち directory boundary を意識して必要な範囲だけ見る
長時間 workflow long context で重要箇所が薄まる 非日常的な進捗バーで気分転換、集中力をリセット

発動方式

description マッチでの暗黙発動。

Skill の中身を全部見せる

.agent/skills/random-os-fake-mysterious-update-progress/ に配置するファイル一覧です。GitHub に push 済みなので、上記の degit コマンドで一発取得できます。

.agent/skills/random-os-fake-mysterious-update-progress/
├── SKILL.md
├── scripts/
│   └── fake_mysterious_update.py
└── references/
    └── design_notes.md

各ファイルの役割

ファイル 役割
SKILL.md Skill本体。frontmatter (name/description) と指示本文。Antigravity がこの内容をエージェント指示として読み込み、ユーザーのプロンプトに応じて発動します
scripts/fake_mysterious_update.py 謎のOSアップデート進行中(フェイク)進捗バーを表示します
references/design_notes.md 概要 をまとめた参考資料

SKILL.md

---
name: random-os-fake-mysterious-update-progress
description: 作業中や開発環境で『謎のOSアップデート進行中』のような進捗バーを、意味不明な進捗内容とともにランダムに表示したい場合に発動。キーワード例: update, progress, mysterious, fake, OS, notification。
---

# 機能概要
このSkillは、作業中のターミナルやデスクトップに「謎のOSアップデート進行中」風の進捗バーを突如表示し、非日常感や脱力感を演出します。進捗内容は毎回ランダムで、「未知の言語パッチ適用中」「レガシーキーボード最適化中」など意味不明なものばかり。進捗バーは理不尽に逆戻りしたり、99%から一向に終わらなかったりと、現実のアップデートの理不尽さを再現します。緊張感ある作業に、適度なユーモアと休息をもたらします。

# 使い方
このSkillは明示的なコマンド呼び出しは不要で、semantic-match-onlyトリガーによって自動発動します。たとえば「update」「progress」「mysterious」「fake」「OS」「notification」などのキーワードを含む文脈で自動的に演出が始まります。ターミナル上での実行や、Pythonスクリプトとして直接呼び出すことも可能です。

# 出力例
```
[=====        ]  35%  未知の言語パッチ適用中...
[=======      ]  60%  レガシーキーボード最適化中...
[======       ]  55%  逆位相メモリ同期中...
[==========   ]  80%  仮想ペンギンモード有効化中...
[===========  ]  99%  進捗待機中...
[======       ]  57%  モジュール逆流抑制中...
```

# 注意点
本Skillはエンターテインメント目的であり、実際のOSやシステムには一切影響を与えません。進捗バーや出力内容は完全に架空で、ローカル環境やファイルシステムへの書き込みも行いません。演出が不要な場合はSkillの無効化を推奨します。

# 参考資料
- references/design_notes.md に設計方針と利用例を記載
- 公式Pythonドキュメント: https://docs.python.org/ja/3/library/random.html

scripts/fake_mysterious_update.py

import sys
import time
import random
import argparse
from typing import List

MYSTERIOUS_TASKS = [
    '未知の言語パッチ適用中',
    'レガシーキーボード最適化中',
    '逆位相メモリ同期中',
    '仮想ペンギンモード有効化中',
    'モジュール逆流抑制中',
    '量子バッファ拡張中',
    '非公開APIアクセス許可待機中',
    'セキュアな謎プロトコルで通信中',
    '暗号化された謎データを展開中',
    '未定義エリアの初期化中',
    'メタデータの再帰的変換中',
    'ランダムシードを再生成中',
    '仮想デバイスの再割当中',
    '時空間キャッシュをフラッシュ中',
    '不可視ファイルを検出中',
    '未知の依存関係を解決中',
    '謎の互換性チェック中',
    'レガシーサポートを一時停止中',
    'オプションフラグをランダム適用中',
    '仮想メモリを逆流中',
    '無限ループを検出中',
    '未定義動作を実行中',
    '謎のプロセスを監視中',
    'ファントムアップデート適用中',
    'ゴーストログを生成中',
    '不可視パーティションを最適化中',
    'メタバグを注入中',
    'サイレントリカバリを試行中',
    '仮想パッチを仮適用中',
    '進捗待機中'
]

PROGRESS_BAR_LENGTH = 15

class ProgressBar:
    def __init__(self, length=PROGRESS_BAR_LENGTH):
        self.length = length

    def render(self, percent: int) -> str:
        filled = int(self.length * percent // 100)
        bar = '[' + '=' * filled + ' ' * (self.length - filled) + ']'
        return f'{bar} {percent:3d}%'


def random_progress_sequence(max_steps=20) -> List[dict]:
    seq = []
    percent = 0
    direction = 1  # 1: forward, -1: backward
    stuck_at_99 = False
    for i in range(max_steps):
        # Occasionally jump backward
        if percent >= 99 and random.random() < 0.4:
            stuck_at_99 = True
        if stuck_at_99:
            percent = 99
        else:
            if random.random() < 0.2 and percent > 30:
                # Reverse progress
                percent = max(0, percent - random.randint(5, 25))
            else:
                # Normal progress
                percent = min(100, percent + random.randint(3, 20))
            if percent > 99:
                percent = 99
        task = random.choice(MYSTERIOUS_TASKS)
        seq.append({'percent': percent, 'task': task})
        # Randomly decide to stay at 99% for a while
        if percent == 99 and random.random() < 0.6:
            stuck_at_99 = True
        if percent == 99 and random.random() < 0.2:
            break  # Sometimes finish early
    return seq


def print_progress_sequence(seq: List[dict], delay=0.7, stream=sys.stdout):
    for item in seq:
        bar = ProgressBar().render(item['percent'])
        msg = f'{bar}  {item["task"]}...'
        print(msg, file=stream, flush=True)
        time.sleep(delay * (0.7 + random.random()*0.6))


def run_cli(args):
    if args.list_tasks:
        for t in MYSTERIOUS_TASKS:
            print(f'- {t}')
        return
    if args.seed is not None:
        random.seed(args.seed)
    seq = random_progress_sequence(max_steps=args.steps)
    print_progress_sequence(seq, delay=args.delay)


def parse_args():
    parser = argparse.ArgumentParser(description='謎のOSアップデート進行中(フェイク)進捗バーを表示します')
    parser.add_argument('--steps', type=int, default=20, help='進捗ステップ数 (デフォルト: 20)')
    parser.add_argument('--delay', type=float, default=0.7, help='進捗表示間隔(秒) (デフォルト: 0.7)')
    parser.add_argument('--list-tasks', action='store_true', help='利用可能な謎タスク一覧を表示')
    parser.add_argument('--seed', type=int, default=None, help='ランダムシード')
    return parser.parse_args()


def main():
    args = parse_args()
    try:
        run_cli(args)
    except KeyboardInterrupt:
        print('\n[終了] フェイクアップデートを中断しました。')
    except Exception as e:
        print(f'エラー: {e}', file=sys.stderr)
        sys.exit(1)

if __name__ == '__main__':
    main()

references/design_notes.md

# 概要
本Skillは、作業環境に突如として現れる「謎のOSアップデート進行中」演出を目的としたエンターテインメント系スキルです。進捗バーの理不尽な挙動と意味不明な進捗内容で、日常に非日常をもたらします。

# 公式ドキュメント抜粋
進捗バーや乱数生成にはPython標準ライブラリ(random, argparse, time)を活用し、外部依存を避けています。詳細は https://docs.python.org/ja/3/library/random.html を参照してください。

# 利用例
- 長時間のビルドやデバッグ作業の合間に、気分転換として表示
- チームの雑談やイベント時のネタ演出
- ターミナルやCIログのデモンストレーション用

# 注意点
本Skillは完全なフェイク演出であり、実際のOSやシステムには一切影響を与えません。進捗バーや内容は全てランダム生成で、ローカルファイルや設定を変更することもありません。

# 設計方針
- 進捗内容は毎回ランダムかつ意味不明なものを30種以上用意
- 進捗バーは逆戻りや99%で止まるなど理不尽な挙動を再現
- コマンドライン引数でステップ数や表示間隔を柔軟に調整可能
- スクリプトは100行以上で、CLI/サブコマンド/エラーハンドリングを実装

導入手順

このSkillは GitHub で管理されているので、degit を使えば必要なフォルダだけを1コマンドで取得できます。Antigravity はファイル配置後に再起動するだけで自動認識します。

1. 前提

  • Node.js v16 以上 (degit 実行に必要)
  • Antigravity がローカルで動いていること

2. degit でフォルダ取得

プロジェクトのルートで以下のコマンドを実行します。

npx degit aazutaku/ai-note/antigravity/random-os-fake-mysterious-update-progress .agent/skills/random-os-fake-mysterious-update-progress

.agent/skills/random-os-fake-mysterious-update-progress の中に SKILL.md / scripts/ / references/ / README.md が展開されます。

3. ファイル配置確認

ls .agent/skills/random-os-fake-mysterious-update-progress
# SKILL.md, scripts/, references/, README.md があればOK

4. Antigravity を再起動 (or Skill 自動検出を待つ)

新しいSkillが自動で認識されます。リスト確認したい場合は ${productName} に「使える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 でも有効か?
  • プロジェクト指示との連携をどう組み立てるか?
  • 進捗内容が毎回ランダムかつ意味不明であることを確認できるか?
  • 進捗バーの挙動が理不尽(逆戻り、99%で止まる等)になっているか?
  • 通知・演出が本番環境や作業に影響を与えないことを確かめられるか?

実際に Antigravity で試した検証ログは Antigravityで謎のOSアップデート進捗バーを表示してみた! にまとめる予定 (公開準備中の場合あり)。
あわせて Antigravity 公式ドキュメント と、本シリーズ「Antigravityで試したいSkill研究」の他記事も参照のこと。

関連タグで他のSkill記事を探す

本記事に付いているタグから、気になるテーマの記事を探せます。タグページで関連記事をまとめて読めるので、ぜひチェックしてみてください!

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次