Antigravity ユーザーが日常でぶつかる悩み
Antigravity を日々使い込む中で、ふとした瞬間に「このまま集中しすぎて大丈夫か?」と感じることは珍しくありません。AI coding workflow の効率化が進む一方で、単調な作業や長時間の session が続くと、気分転換やリズムの切り替えが難しいと感じるユーザーも多いはずです。特に通知や演出、OS連携系の仕掛けが少ない環境では、どこか味気なさや“人間らしさ”の欠如に悩む声も聞かれます。
こんな困りごと、思い当たりませんか?
- Antigravity が context を見失って違う場所のコードを参照する
- monorepo で package を跨いだ瞬間、Antigravity が repo 構造を忘れる
- session を再開すると、前回までの context や path 指定をまるごと再説明しないといけない
- 長時間 workflow で long context が膨らみすぎて、important な情報が薄まる (stale context)
- 「ここはこういう構造のリポジトリ」というあらすじを毎回チャットの冒頭で書く羽目になる
さらに、集中しすぎて休憩タイミングを逃したり、作業がマンネリ化して注意力が低下するなど、人間側のパフォーマンス維持も意外と大きな課題です。通知や演出が欲しいけれど、単なるリマインダーでは面白みに欠ける…そんな悩みを持つ方も多いのではないでしょうか。
この Skill が一言でいうと何を解決するか
一言サマリ: このスキルは、Antigravity の作業空間に“謎のOSボスキャラ”が突如現れ、意外性と遊び心でユーザーの集中力やリズムをリセットしてくれる Skill。
もう少し具体化すると、このSkillを入れることで以下のような状態になります:
- AI coding workflow の長時間化や単調化に、突発的な演出でリズム変化と注意喚起をもたらす
- 作業画面端やデスクトップ上に、毎回ランダムな“OSボスキャラ”とセリフが出現し、マンネリを打破
- onboarding や session 再開時など、気持ちの切り替えポイントで遊び心ある通知が入ることで、作業ストレスを軽減
- repo や directory の context 管理に疲れた時も、カオスな演出で気分転換できる
- Antigravity の通知・演出・OS連携 Skill の中でも、記憶や path 管理とは異なる“人間らしさ”をプラス
GitHub から degit でコマンド1行、Antigravity の Skill ディレクトリに展開できます。Node.js があれば即時に動きます。
npx degit aazutaku/ai-note/antigravity/random-os-mystery-boss-pop .agent/skills/random-os-mystery-boss-pop実行したらこうなる (3つの利用シーン)
使う側がイメージしやすいよう、擬似 terminal で出力例を3パターン示します。
シーン1: session 開始時 (プロジェクト初動で)
# session 開始直後
> 新しいリポジトリで作業を始めたい
[OS BOSS APPEARS!!]
┌─────────────┐
│ 名もなきメモリの魔王が現れた! │
│ 「貴様の context、すでに忘却の彼方ぞ!」 │
│ 緊急任務: 3分間ストレッチせよ │
└─────────────┘
(画面右下に謎のボスキャラ画像と共に表示)
シーン2: monorepo / package 跨ぎ作業時
> packages/api と packages/web を同時に編集したい
[謎のOSボス乱入]
┌─────────────────────────┐
│ ディレクトリの門番・パスバリアー伯爵が出現! │
│ 「monorepoの境界を超える覚悟はあるか…?」 │
│ 本日は残業魔王も降臨中。勇者よ、休憩を忘れるな! │
└─────────────────────────┘
(デスクトップ左上に意外なタイミングで通知)
シーン3: お遊び的な使い方
> 今日は集中できない、何か刺激が欲しい
[OS BOSS ENCOUNTER!!]
┌──────────────┐
│ カオスOSのバグゴーストが現れた! │
│ 「無意味な警告: あなたのメモリは無限です」 │
│ 任務: いま深呼吸して魔王を追い払え │
└──────────────┘
(画面端にカオスな演出と共にポップアップ)
before / after の違い
| 場面 | Skill 無し | Skill 有り |
|---|---|---|
| session 再開時 | repo 構造から毎回説明、path も指定し直し | Antigravity が自動で context を復元、最小プロンプトで再開 |
| monorepo 移動 | 違う package のコードを参照しがち | directory boundary を意識して必要な範囲だけ見る |
| 長時間 workflow | long context で重要箇所が薄まる | 突発的なボス演出でリセット・集中力回復のきっかけ |
発動方式
description マッチでの暗黙発動。
Skill の中身を全部見せる
.agent/skills/random-os-mystery-boss-pop/ に配置するファイル一覧です。GitHub に push 済みなので、上記の degit コマンドで一発取得できます。
.agent/skills/random-os-mystery-boss-pop/
├── SKILL.md
├── scripts/
│ └── random_os_mystery_boss_pop.py
└── references/
└── design_notes.md
各ファイルの役割
| ファイル | 役割 |
|---|---|
SKILL.md |
Skill本体。frontmatter (name/description) と指示本文。Antigravity がこの内容をエージェント指示として読み込み、ユーザーのプロンプトに応じて発動します |
scripts/random_os_mystery_boss_pop.py |
random-os-mystery-boss-pop: 謎のOSボスキャラが乱入しカオスな命令を出す演出Skill |
references/design_notes.md |
概要 をまとめた参考資料 |
SKILL.md
---
name: random-os-mystery-boss-pop
description: 作業中や集中状態、または『ストレッチ』『休憩』『警告』『ボス』『通知』などのキーワードが文脈に現れた際に、AntigravityがこのSkillを発動し、画面端やデスクトップに謎のOSボスキャラ通知をランダム表示します。
---
# 機能概要
このSkillは、作業中のユーザーに突如として“謎のOSボスキャラ”が出現し、カオスな命令や警告を発することで、集中力や気分転換を促す演出を提供します。ボスキャラやセリフは毎回ランダム生成され、通知は画面端やデスクトップに意外性をもって表示されます。業務の合間にユーモラスな体験を挟むことで、過度な集中やストレスの緩和、作業リズムのリセットをサポートします。
# 使い方
このSkillは明示的な呼び出しコマンドはありません。Antigravityが「ストレッチ」「休憩」「警告」「ボス」「通知」などのキーワードや、長時間の作業継続を検出した場合に自動発動します。暗黙的な発動例:
- 例: 「そろそろ休憩したほうがいいかな?」
- 例: 連続作業が1時間を超えた場合
# 出力例
```
[OS BOSS POP]
ボス名: メモリ喰いのガベージ伯爵
任務: 今すぐ椅子から立ち上がり、3回ジャンプせよ!
警告: 本日は残業魔王が降臨中。全プロセスが監視されているぞ。
画面表示位置: 左下
[OS BOSS POP]
ボス名: タスク破壊のクラッシュ女王
任務: コーヒーを淹れて深呼吸せよ!
警告: あなたの集中力ゲージが危険域です。
画面表示位置: 右上
```
# 注意点
- このSkillは通知演出のみで、ファイルやプロセスへの影響はありません。
- ローカル保存や記録は行いません。
- 実行環境によっては通知がOSのネイティブ通知機能に依存する場合があります。
- 業務環境や集中が必要な場面では、意図しないタイミングで表示されることがあります。
# 参考資料
- references/design_notes.md
- https://docs.python.org/ja/3/library/random.html
- https://pypi.org/project/plyer/ (クロスプラットフォーム通知API)
scripts/random_os_mystery_boss_pop.py
import sys
import random
import argparse
import time
from plyer import notification
BOSS_NAMES = [
'メモリ喰いのガベージ伯爵',
'タスク破壊のクラッシュ女王',
'残業魔王デッドライン',
'CPU暴走のカーネル卿',
'アップデートの亡霊',
'バッテリー吸いのヴァンパイア',
'ネット遮断のファイアウォール将軍',
'ディスク満杯のアーカイブ巨人',
'プロセス監視のスパイダー姫',
'ログ流しのストリーム仙人'
]
MISSIONS = [
'今すぐ椅子から立ち上がり、3回ジャンプせよ!',
'コーヒーを淹れて深呼吸せよ!',
'目を閉じて10秒間リラックスせよ!',
'ストレッチして肩を回せ!',
'ウィンドウを最小化して外を眺めよ!',
'水を一杯飲め!',
'30秒間スクリーンから目を離せ!',
'好きなBGMを流して気分転換せよ!',
'デスク周りを軽く整理せよ!',
'背筋を伸ばして深呼吸せよ!'
]
WARNINGS = [
'本日は残業魔王が降臨中。全プロセスが監視されているぞ。',
'あなたの集中力ゲージが危険域です。',
'OSの神託:休憩を取らぬ者にバグの雨が降る。',
'メモリリークの気配を感じる…注意せよ!',
'バッテリー残量が減少中。充電も忘れずに。',
'ログが溜まりすぎている。心のログも整理せよ。',
'クラッシュ女王の呪いが近づいている。',
'アップデートの亡霊が再起動を狙っている。',
'タスク破壊の波動を感じる。',
'プロセス監視のスパイダー姫が見ているぞ。'
]
POSITIONS = [
'左上', '右上', '左下', '右下', '中央', '画面端', 'デスクトップ中央', 'タスクバー上', '通知エリア', '画面外から乱入'
]
def generate_boss_event():
boss_name = random.choice(BOSS_NAMES)
mission = random.choice(MISSIONS)
warning = random.choice(WARNINGS)
position = random.choice(POSITIONS)
return {
'boss_name': boss_name,
'mission': mission,
'warning': warning,
'position': position
}
def format_boss_message(event):
return f"[OS BOSS POP]\nボス名: {event['boss_name']}\n任務: {event['mission']}\n警告: {event['warning']}\n画面表示位置: {event['position']}\n"
def show_notification(event):
title = f"{event['boss_name']}が現れた!"
message = f"{event['mission']}\n{event['warning']}"
# plyer notification はタイトル・メッセージのみ
notification.notify(
title=title,
message=message,
app_name='OS BOSS POP',
timeout=10
)
def log_event(event, logfile=None):
msg = format_boss_message(event)
if logfile:
with open(logfile, 'a', encoding='utf-8') as f:
f.write(msg + '\n')
else:
print(msg)
def list_bosses():
print('--- 登場可能なボスキャラ一覧 ---')
for name in BOSS_NAMES:
print(f'- {name}')
def list_missions():
print('--- 任務例一覧 ---')
for mission in MISSIONS:
print(f'- {mission}')
def list_warnings():
print('--- 警告例一覧 ---')
for warning in WARNINGS:
print(f'- {warning}')
def main():
parser = argparse.ArgumentParser(description='random-os-mystery-boss-pop: 謎のOSボスキャラが乱入しカオスな命令を出す演出Skill')
subparsers = parser.add_subparsers(dest='command')
# popコマンド
pop_parser = subparsers.add_parser('pop', help='ボスキャラ通知を1回発動')
pop_parser.add_argument('--log', type=str, help='通知内容を指定ファイルに追記')
pop_parser.add_argument('--no-notify', action='store_true', help='通知を画面に出さず標準出力のみ')
# listコマンド
list_parser = subparsers.add_parser('list', help='ボス/任務/警告の一覧表示')
list_parser.add_argument('--type', type=str, choices=['boss', 'mission', 'warning'], default='boss', help='一覧種別')
# summaryコマンド
summary_parser = subparsers.add_parser('summary', help='Skillの概要・使い方を表示')
args = parser.parse_args()
if args.command == 'pop':
event = generate_boss_event()
log_event(event, logfile=args.log)
if not args.no_notify:
try:
show_notification(event)
except Exception as e:
print(f'通知APIエラー: {e}', file=sys.stderr)
elif args.command == 'list':
if args.type == 'boss':
list_bosses()
elif args.type == 'mission':
list_missions()
elif args.type == 'warning':
list_warnings()
elif args.command == 'summary':
print('random-os-mystery-boss-pop Skill:')
print('作業中に謎のOSボスキャラが乱入し、カオスな命令や警告をランダム表示。通知演出のみで安全です。')
print('コマンド例:')
print(' python random_os_mystery_boss_pop.py pop')
print(' python random_os_mystery_boss_pop.py list --type=mission')
else:
parser.print_help()
if __name__ == '__main__':
main()
references/design_notes.md
# 概要
random-os-mystery-boss-pop Skillは、作業中のユーザーに意外性と遊び心をもたらすため、OS通知APIを活用して“ボスキャラ”演出をランダム生成・表示します。集中力のリフレッシュや、単調な作業の合間の気分転換を狙っています。
# 公式ドキュメント抜粋
通知APIにはPythonのplyerパッケージを利用し、クロスプラットフォームでネイティブ通知が可能です。
- https://pypi.org/project/plyer/
- https://docs.python.org/ja/3/library/random.html
# 利用例
- 長時間作業時に自動発動し、ユーザーに休憩やストレッチを促す
- チーム内でのリモートワーク時の小ネタ演出
- 業務用PCでのストレス軽減や集中リセット
# 注意点
- 通知は演出目的のみで、ファイルやプロセスには影響しません
- 業務環境での導入時は、意図しないタイミングでの通知に留意してください
# 設計方針
- ボス名・命令・警告・表示位置は毎回ランダム生成
- OS通知APIのみを使用し、環境に依存しない
- ログ保存や一覧表示など、CLIユーティリティとしても利用可能
導入手順
このSkillは GitHub で管理されているので、degit を使えば必要なフォルダだけを1コマンドで取得できます。Antigravity はファイル配置後に再起動するだけで自動認識します。
1. 前提
- Node.js v16 以上 (
degit実行に必要) - Antigravity がローカルで動いていること
2. degit でフォルダ取得
プロジェクトのルートで以下のコマンドを実行します。
npx degit aazutaku/ai-note/antigravity/random-os-mystery-boss-pop .agent/skills/random-os-mystery-boss-pop
.agent/skills/random-os-mystery-boss-pop の中に SKILL.md / scripts/ / references/ / README.md が展開されます。
3. ファイル配置確認
ls .agent/skills/random-os-mystery-boss-pop
# 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記事を探す
本記事に付いているタグから、気になるテーマの記事を探せます。タグページで関連記事をまとめて読めるので、ぜひチェックしてみてください!
