Antigravity ユーザーが日常でぶつかる悩み
Antigravity を日常的に使っていると、AI coding workflow の中で「ちょっとした息抜き」や「気分転換」が欲しくなる瞬間があります。特に repository understanding や path management に集中していると、思わぬストレスや疲労が溜まりがちです。そんな時、ふとしたタイミングで現実離れした“通知”が画面に出てきたら…?
Antigravity 固有の context 管理や directory 構造の把握に追われる毎日、こんな困りごとがよく起きています。
- Antigravity が context を見失って違う場所のコードを参照するたびに、思わず苦笑いしてしまう
- monorepo で package を跨いだ瞬間、repo の構造説明をもう一度やり直す羽目になる
- session を再開すると、前回までの context や path 指定をまるごと再説明しないといけない
- 長時間の AI coding workflow で long context が膨らみすぎて、重要な情報が薄まる (stale context)
- 「ここはこういう構造のリポジトリ」と毎回チャット冒頭で書くのが習慣化し、無機質なやりとりになりがち
こうした「Antigravity あるある」の合間に、何か“非日常”な演出が差し込まれることで、リフレッシュや会話のネタになる体験が求められています。
この Skill が一言でいうと何を解決するか
一言サマリ: このスキルは作業中やコマンド実行の合間に、謎のOS風404通知を炸裂させるSkill。
もう少し具体化すると、このSkillを入れることで以下のような状態になる:
- Antigravity の session や repository 操作の合間に、完全に役に立たないが心に刺さる“偽エラー通知”で気分転換できる
- monorepo や directory 移動のタイミングで、思わぬタイミングでランダムなメッセージが現れ、作業のリズムが変わる
- AI coding workflow の長時間作業中も、context がマンネリ化しにくく、ちょっとした笑いで集中力をリセットできる
- onboarding や session 再開時の無機質な空気を和らげ、チーム内の会話やコミュニケーションのきっかけにもなる
- SKILL.md で明示的な設定不要、ただ配置するだけで“謎通知”が自動発動
GitHub から degit でコマンド1行、Antigravity の Skill ディレクトリに展開できます。Node.js があれば即時に動きます。
npx degit aazutaku/ai-note/antigravity/random-os-fake-404-notification .agent/skills/random-os-fake-404-notification実行したらこうなる (3つの利用シーン)
使う側がイメージしやすいよう、擬似 terminal で出力例を3パターン示します。
シーン1: session 開始時 (プロジェクト初動で)
> プロジェクトの初期化をお願いします
[Antigravity] Skill の中身を全部見せる
.agent/skills/random-os-fake-404-notification/ に配置するファイル一覧です。GitHub に push 済みなので、上記の degit コマンドで一発取得できます。
.agent/skills/random-os-fake-404-notification/
├── SKILL.md
├── scripts/
│ └── random_os_fake_404_notification.py
└── references/
└── design_notes.md
各ファイルの役割
ファイル
役割
SKILL.md
Skill本体。frontmatter (name/description) と指示本文。Antigravity がこの内容をエージェント指示として読み込み、ユーザーのプロンプトに応じて発動します
scripts/random_os_fake_404_notification.py
random-os-fake-404-notification
references/design_notes.md
概要 をまとめた参考資料
SKILL.md
---
name: random-os-fake-404-notification
description: 作業中の集中や進捗、やる気などに関する会話やコマンド実行時、または「エラー」「404」「通知」などのキーワードを含む状況でAntigravityが自動的に発動します。
---
# 機能概要
このSkillは、作業やコマンド実行の合間に、まるでOS公式のような“偽404エラー通知”をデスクトップまたはターミナルにランダム表示します。通知内容は「404: 今日の集中力が迷子です」「あなたのやる気が見つかりません」など、完全に役に立たないが妙に心に刺さるメッセージばかり。実用性はゼロですが、作業の合間に気分転換や笑いを提供し、単調な作業を和らげます。通知タイミング・内容は毎回ランダムで、非日常的な体験を演出します。
# 使い方
このSkillは明示的な呼び出し操作は不要です。Antigravityが「進捗」「やる気」「404」「エラー」「集中」などのキーワードを検知した際や、作業の合間に自動で発動します。ターミナル/デスクトップ通知として表示されます。
# 出力例
```
[通知] 404: 今日の集中力が迷子です
[通知] 404 Not Found: 予定されていた進捗が行方不明です
[通知] 404: あなたのやる気が見つかりません
[通知] 404 Error: コーヒーブレイクが必要です
[通知] 404: 残業回避モードが見つかりません
[通知] 404: 週末の気配が検出できません
```
# 注意点
本Skillは実際のエラーやシステム障害を通知するものではありません。誤解を避けるため、通知文言には「冗談」であることを示唆する要素を含めています。通知頻度はデフォルトで1時間に1回程度に抑制されていますが、環境や設定によっては異なる場合があります。ローカルにメッセージ履歴等は保存しません。
# 参考資料
本SkillはPythonの`random`と`time`、デスクトップ通知には`plyer`ライブラリを利用しています。詳細は`references/design_notes.md`および[plyer公式ドキュメント](https://plyer.readthedocs.io/en/latest/)を参照してください。
scripts/random_os_fake_404_notification.py
import random
import time
import sys
import argparse
import threading
from datetime import datetime
try:
from plyer import notification
except ImportError:
notification = None
FAKE_404_MESSAGES = [
'404: 今日の集中力が迷子です',
'404 Not Found: 予定されていた進捗が行方不明です',
'404: あなたのやる気が見つかりません',
'404 Error: コーヒーブレイクが必要です',
'404: 残業回避モードが見つかりません',
'404: 週末の気配が検出できません',
'404: タスク完了フラグが見つかりません',
'404: 眠気除去サービスが利用できません',
'404: クリエイティブモードが応答しません',
'404: 予定外のやる気が発生しました',
'404: 重要な締切が未検出です',
'404: 休憩時間がタイムアウトしました',
'404: 進捗の神様が不在です',
'404: モチベーションファイルが破損しています',
'404: 本日の生産性が見つかりません',
'404: 眠気が検出されました',
'404: 予定されていた集中力が見つかりません',
'404: 週明けのやる気が応答しません',
'404: 目標達成パスが見つかりません',
'404: 進捗報告書が消失しました'
]
NOTIFY_INTERVAL_MIN = 45 * 60 # 45分
NOTIFY_INTERVAL_MAX = 90 * 60 # 90分
HISTORY = []
def send_notification(message):
timestamp = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
HISTORY.append({'time': timestamp, 'message': message})
if notification:
notification.notify(
title='404 Notification',
message=message,
timeout=8
)
else:
print(f'[通知] {message}')
def random_notify_loop(stop_event):
while not stop_event.is_set():
wait_time = random.randint(NOTIFY_INTERVAL_MIN, NOTIFY_INTERVAL_MAX)
stop_event.wait(wait_time)
if stop_event.is_set():
break
message = random.choice(FAKE_404_MESSAGES)
send_notification(message)
def list_history():
if not HISTORY:
print('通知履歴はありません。')
return
for entry in HISTORY:
print(f"{entry['time']} - {entry['message']}")
def summary():
print(f'通知発火回数: {len(HISTORY)}')
if HISTORY:
print(f'最新通知: {HISTORY[-1]["time"]} - {HISTORY[-1]["message"]}')
def manual_notify():
message = random.choice(FAKE_404_MESSAGES)
send_notification(message)
def main():
parser = argparse.ArgumentParser(description='random-os-fake-404-notification')
subparsers = parser.add_subparsers(dest='command')
subparsers.add_parser('run', help='ランダムなタイミングで偽404通知を発火')
subparsers.add_parser('notify', help='今すぐ偽404通知を1回発火')
subparsers.add_parser('list', help='通知履歴を表示')
subparsers.add_parser('summary', help='通知回数などサマリーを表示')
args = parser.parse_args()
if args.command == 'run':
stop_event = threading.Event()
try:
print('random-os-fake-404-notification: 起動中 (Ctrl+Cで停止)')
random_notify_loop(stop_event)
except KeyboardInterrupt:
stop_event.set()
print('\n終了します')
elif args.command == 'notify':
manual_notify()
elif args.command == 'list':
list_history()
elif args.command == 'summary':
summary()
else:
parser.print_help()
if __name__ == '__main__':
main()
references/design_notes.md
# 概要
このSkillは、作業の合間や特定のキーワード検知時に“偽404エラー通知”をランダムに表示し、ユーザーの気分転換や笑いを誘うことを目的としています。実用性よりも遊び心を重視した設計です。
# 公式ドキュメント抜粋
通知にはPythonの`plyer`ライブラリを利用し、クロスプラットフォームなデスクトップ通知を実現しています。`random`と`time`でランダムな発火タイミングを制御しています。
# 利用例
- 長時間のコーディングや単調な作業の合間に、突然「404: 今日の集中力が迷子です」などの通知が表示され、思わず笑ってしまう
- チームで使うことで、ちょっとした話題やリフレッシュのきっかけに
# 注意点
本Skillは実際のシステムエラーや障害を通知するものではありません。通知内容はジョークであり、誤解を避けるために「本物のエラー」とは異なる文言や演出を採用しています。通知頻度はデフォルトで1時間に1回未満に抑えていますが、環境によって変動します。
# 設計方針
ユーザー体験を損なわないよう、通知頻度や内容のバリエーションに工夫を凝らしています。履歴はメモリ上のみで、プライバシーやストレージへの影響はありません。
導入手順
このSkillは GitHub で管理されているので、degit を使えば必要なフォルダだけを1コマンドで取得できます。Antigravity はファイル配置後に再起動するだけで自動認識します。
1. 前提
- Node.js v16 以上 (
degit 実行に必要)
- Antigravity がローカルで動いていること
2. degit でフォルダ取得
プロジェクトのルートで以下のコマンドを実行します。
npx degit aazutaku/ai-note/antigravity/random-os-fake-404-notification .agent/skills/random-os-fake-404-notification
.agent/skills/random-os-fake-404-notification の中に SKILL.md / scripts/ / references/ / README.md が展開されます。
3. ファイル配置確認
ls .agent/skills/random-os-fake-404-notification
# 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の謎404通知を使ってみた!ランダムで心に刺さるメッセージ炸裂体験 にまとめる予定 (公開準備中の場合あり)。
あわせて Antigravity 公式ドキュメント と、本シリーズ「Antigravityで試したいSkill研究」の他記事も参照のこと。
関連タグで他のSkill記事を探す
本記事に付いているタグから、気になるテーマの記事を探せます。タグページで関連記事をまとめて読めるので、ぜひチェックしてみてください!
