Antigravityで仕事の緊張を和らげる演出スキルの活用法

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

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

Antigravity を日常的に使っていると、AI coding workflow の中で「なんだか息が詰まる」「ちょっとした遊び心が欲しい」と感じる瞬間が少なくありません。特に、ターミナルやエディタでの作業が単調になりがちで、集中力が切れたり、リポジトリの context を再説明するルーチンに疲れてしまうことも多いです。通知や演出が全くない環境だと、長時間の作業が淡々と続き、ちょっとした気分転換すら難しいと感じることもあります。

  • Antigravity が context を見失って違う場所のコードを参照するたびに、気が抜けてしまう
  • monorepo で package を跨いだ瞬間、Antigravity が repo 構造を忘れてしまうストレスがある
  • session を再開するたび、前回までの context や path 指定を毎回説明し直すのが面倒
  • 長時間の AI coding workflow で long context が膨らみ、重要な情報が埋もれてしまう
  • 「ここはこういう構造の repository」という説明を毎回チャットの冒頭で書く作業がマンネリ化している

こうした「context 管理の煩雑さ」や「作業の単調さ」を、ちょっとした演出や通知で和らげたいというニーズは、Antigravity ユーザーの間で意外と根強いものです。

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

一言サマリ: このスキルは、作業中にランダムな“謎のOSアップデート進捗バー”を表示し、AI coding workflow の緊張感を一瞬で脱力させる演出系 Skill です。

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

  • ターミナルやエディタでコマンド実行時、意味不明な進捗バーが現れて作業にクスッとした余白が生まれる
  • 長時間の repository understanding や path management の合間に、適度な気分転換が自動で挟まれる
  • monorepo でディレクトリ移動した瞬間など、context 切り替えのタイミングで“無意味な通知”が入り、単調な作業にリズムが加わる
  • onboarding や session 再開時の「また説明か…」という倦怠感が、謎演出によって一瞬リセットされる
  • AI coding workflow の中で「遊び心」を取り戻し、余裕を持ってリポジトリ作業に向き合える
QUICK INSTALL
このSkillをすぐ試す

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

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

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

使う側がイメージしやすいよう、擬似 terminal で出力例を3パターン示します。

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


> antigravity start

[OS Update Progress]
──────────────────────────────
バグ収穫中...         [███████-----]  67%
やる気パッチ適用中... [█████████---]  80%
怠惰アップグレード中... [█████-------]  45%
──────────────────────────────
※ 進捗が100%になっても何も起きません

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


> cd packages/api && antigravity analyze

[OS Update Progress]
──────────────────────────────
API幻想化中...        [███████-----]  70%
ディレクトリ迷子修正中... [█████-------]  50%
context 記憶拡張中...  [████████----]  75%
──────────────────────────────

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


> echo "こんにちは" | antigravity

[OS Update Progress]
──────────────────────────────
意味不明な依存関係を生成中... [██████--------]  60%
やる気ゲージリセット中...     [█████████-----]  85%
メモリ掃除機発動中...          [█████---------]  40%
──────────────────────────────

before / after の違い

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

発動方式

description マッチでの暗黙発動。

Skill の中身を全部見せる

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

.agent/skills/random-os-fake-update-progrebar/
├── SKILL.md
├── scripts/
│   └── random_os_fake_update_progressbar.py
└── references/
    └── design_notes.md

各ファイルの役割

ファイル 役割
SKILL.md Skill本体。frontmatter (name/description) と指示本文。Antigravity がこの内容をエージェント指示として読み込み、ユーザーのプロンプトに応じて発動します
scripts/random_os_fake_update_progressbar.py 0-100%までランダムなステップで進捗を生成
references/design_notes.md 概要 をまとめた参考資料

SKILL.md

---
name: random-os-fake-update-progrebar
description: Antigravityがユーザーのコマンド実行やエディタ操作を検知した際、ランダムな“OSアップデート進捗バー”を一時的に表示する演出系Skill。triggerType: semantic-match-only、キーワード例: update, progress, patch, apply。
---

# 機能概要
このSkillは、作業中に突如として“謎のOSアップデート進捗バー”をターミナルやエディタ画面端にランダム表示します。進捗内容は「バグ収穫中」「やる気パッチ適用中」「怠惰アップグレード中」など完全ランダムで、100%になっても何も起こりません。作業の緊張感を一瞬で脱力させる、100%無駄な遊び心を提供します。通知・演出・OS連携カテゴリに属し、実用性ゼロの癒し系Skillです。

# 使い方
このSkillは明示的な呼び出しは不要です。Antigravityがコマンド入力やファイル保存などの操作を検知した際、内部で自動的に発動します。semantic-match-onlyトリガーにより、「update」「progress」「patch」「apply」などの操作や文脈に反応します。明示的なAPI呼び出しや設定は不要です。

# 出力例
```
[OSアップデート進行中] バグ収穫中... [  7%] █▏         
[OSアップデート進行中] やる気パッチ適用中... [ 42%] █████▊     
[OSアップデート進行中] 怠惰アップグレード中... [ 99%] ██████████
[OSアップデート進行中] 仕様書の再解釈中... [ 23%] ██▊        
[OSアップデート進行中] 謎のプロセス最適化中... [ 61%] ██████▏   
```

# 注意点
- 進捗バーは完全にランダムで、実際のアップデートやシステム操作とは無関係です。
- 100%になっても何も起こらず、演出は数秒で自動的に消えます。
- ログや履歴への保存は行いません。
- 業務用途の通知や重要な進捗と混同しないよう注意してください。

# 参考資料
参考: references/design_notes.md
公式: https://docs.python.org/3/library/random.html

scripts/random_os_fake_update_progressbar.py

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

FAKE_TASKS = [
    'バグ収穫中',
    'やる気パッチ適用中',
    '怠惰アップグレード中',
    '仕様書の再解釈中',
    '謎のプロセス最適化中',
    '未定義動作の検証中',
    'メモリの気分転換中',
    '依存関係の迷子探索中',
    '無駄な再起動準備中',
    '冗長コメントの削除中',
    '仮想バグフィックス中',
    'やる気のインストール中',
    '自己矛盾の解消中',
    '仕様の再発明中',
    '気合いの注入中',
    'エンジニア魂の充填中',
    '無意味な最適化中',
    '未定義動作の実装中',
    '無限ループの脱出中',
    '謎のプロセス終了中'
]

PROGRESSBAR_LENGTH = 20


def random_task() -> str:
    return random.choice(FAKE_TASKS)


def random_progress_sequence() -> List[int]:
    """
    0-100%までランダムなステップで進捗を生成
    """
    seq = [0]
    while seq[-1] < 100:
        step = random.randint(3, 18)
        next_val = min(100, seq[-1] + step)
        if next_val == seq[-1]:
            break
        seq.append(next_val)
    return seq


def progressbar_str(percent: int) -> str:
    filled = int(PROGRESSBAR_LENGTH * percent / 100)
    bar = '█' * filled + ' ' * (PROGRESSBAR_LENGTH - filled)
    return f'[{bar}]'


def show_fake_update(task: str = None, duration: float = 2.5, fast: bool = False):
    if task is None:
        task = random_task()
    progress_seq = random_progress_sequence()
    if fast:
        duration = 0.8 + random.random() * 0.7
    step_time = duration / max(1, len(progress_seq) - 1)
    for idx, percent in enumerate(progress_seq):
        bar = progressbar_str(percent)
        sys.stdout.write(f'\r[OSアップデート進行中] {task}... [{percent:3}%] {bar}')
        sys.stdout.flush()
        if percent == 100:
            time.sleep(0.4)
            break
        time.sleep(step_time)
    sys.stdout.write('\n')
    sys.stdout.flush()


def list_tasks():
    print('利用可能なランダム進捗項目一覧:')
    for t in FAKE_TASKS:
        print(f'- {t}')


def main():
    parser = argparse.ArgumentParser(description='謎のOSアップデート進捗バーを表示')
    subparsers = parser.add_subparsers(dest='command')

    parser_run = subparsers.add_parser('run', help='ランダムな進捗バーを表示')
    parser_run.add_argument('--task', type=str, help='進捗内容を指定(省略時ランダム)')
    parser_run.add_argument('--fast', action='store_true', help='高速モード')

    parser_list = subparsers.add_parser('list', help='利用可能な進捗項目を表示')

    args = parser.parse_args()
    if args.command == 'run':
        try:
            show_fake_update(task=args.task, fast=args.fast)
        except KeyboardInterrupt:
            sys.stdout.write('\n[中断されました]\n')
    elif args.command == 'list':
        list_tasks()
    else:
        parser.print_help()

if __name__ == '__main__':
    main()

references/design_notes.md

# 概要
このSkillは、作業中に突発的な“謎のOSアップデート進捗バー”をランダム表示し、ユーザーの緊張を和らげる演出を目的としています。実用性はなく、完全に遊び心に特化した設計です。

# 公式ドキュメント抜粋
Python標準ライブラリのrandom, argparse, time, sysのみを利用し、外部依存を排除しています。

# 利用例
- ターミナルで `python random_os_fake_update_progressbar.py run` を実行すると、ランダムな進捗バーが表示されます。
- `--task` で進捗内容を指定可能、`--fast` で高速表示も可能です。

# 注意点
- 実際のOSやシステムには一切影響を与えません。
- ログや履歴への保存は行いません。
- 進捗内容は毎回異なり、100%になっても何も起きません。

# 設計方針
冗長な演出を避け、1回の表示は2〜3秒以内で完結します。進捗内容は日本語で完全ランダムに生成され、ユーザーの作業を邪魔しない範囲で表示されます。

導入手順

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

1. 前提

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

2. degit でフォルダ取得

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

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

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

3. ファイル配置確認

ls .agent/skills/random-os-fake-update-progrebar
# 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 でも有効か?
  • プロジェクト指示との連携をどう組み立てるか?
  • 進捗バーが作業時に毎回違う内容でランダム表示されるか
  • 100%になっても何も起きないことを確認
  • 通知や演出が冗長すぎず、すぐ消えること

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

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

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

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

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