Antigravity ユーザーが日常でぶつかる悩み
Antigravity を日々使う中で、ふとした瞬間に「なんとなく味気ない」「作業が単調で没入感が薄れる」と感じることは少なくありません。AI coding workflow がどれだけ効率化されても、集中力が切れたり、長時間同じ画面を見続けて飽きてしまうことがあります。特に、context 管理や repository understanding に追われる合間、ほんの少し現実逃避したくなる瞬間もあるでしょう。
- 長時間の session で、Antigravity の通知や出力が淡々としすぎて気分転換が難しい
- monorepo で directory を跨いだ作業中、repository の構造把握や path management ばかりに意識が向き、遊び心がなくなる
- onboarding や新しい repo での初期作業時、AI の行動は実務的すぎて「面白み」が感じられない
- memory や long context の管理に追われ、作業がルーティン化しがち
- たまには現実を忘れて、電脳都市の住人になったような非日常感を味わいたい
Antigravity の context や path 指定、repo 構造説明などの面倒ごとが続く中、ほんの一瞬でも「未来SFの世界観」に没入できたら…そんな願いを叶える Skill が求められています。
この Skill が一言でいうと何を解決するか
一言サマリ: このスキルは、あなたのデスクトップを“謎のサイバーパンクOS通知”で彩り、作業中の現実逃避と没入感アップを実現します。
もう少し具体化すると、このSkillを入れることで以下のような状態になる:
- Antigravity の AI coding workflow に、SF・サイバーパンク風の演出を自然に組み込める
- 作業中に突然現れる“ありえない未来OSの警告”で、単調な repository understanding や path management に遊び心が生まれる
- onboarding や long context の合間にも、電脳都市の住人になった気分を味わえる
- 通知が現実のタスクと無関係なので、集中を妨げずリフレッシュできる
- Skill の導入・運用が簡単で、repo や directory 構造を問わずどこでも利用可能
GitHub から degit でコマンド1行、Antigravity の Skill ディレクトリに展開できます。Node.js があれば即時に動きます。
npx degit aazutaku/ai-note/antigravity/random-os-fake-cyberpunk-notifier .agent/skills/random-os-fake-cyberpunk-notifier実行したらこうなる (3つの利用シーン)
使う側がイメージしやすいよう、擬似 terminal で出力例を3パターン示します。
シーン1: session 開始時 (プロジェクト初動で)
> 新規プロジェクトで作業を開始
[NeuroSys OS] ニューロン接続不良を検出
推奨アクション: シンセ脳波再同期プロセスを実行してください
[通知ID: 0xA1C3F]
タイムスタンプ: 2099-04-13T09:42:17Z
影響範囲: /core/neural-interface/
シーン2: monorepo / package 跨ぎ作業時
> packages/payment に移動してコード修正
[CYBERPUNK OS] クローム義手アップデート推奨
バージョン: v4.2.8 → v5.0.0
アップデート対象: /packages/payment/chrome-arm/
[通知ID: 0xB7E21]
タイムスタンプ: 2099-04-13T10:17:05Z
シーン3: お遊び的な使い方
> ちょっと休憩したい時
[シンセティック警告] 仮想都市セキュリティレベル低下
推奨: バーチャルファイアウォール強化モードを有効化
[通知ID: 0xC3D8A]
タイムスタンプ: 2099-04-13T11:02:44Z
影響範囲: /virtual/city/security/
before / after の違い
| 場面 | Skill 無し | Skill 有り |
|---|---|---|
| session 再開時 | repo 構造から毎回説明、path も指定し直し | Antigravity が自動で context を復元、最小プロンプトで再開。加えて未来OS通知で気分転換 |
| monorepo 移動 | 違う package のコードを参照しがち | directory boundary を意識した通知演出で、作業の切り替えタイミングが明確に |
| 長時間 workflow | long context で重要箇所が薄まる | 定期的なSF通知でリフレッシュ、集中力維持に一役 |
発動方式
description マッチでの暗黙発動。
Skill の中身を全部見せる
.agent/skills/random-os-fake-cyberpunk-notifier/ に配置するファイル一覧です。GitHub に push 済みなので、上記の degit コマンドで一発取得できます。
.agent/skills/random-os-fake-cyberpunk-notifier/
├── SKILL.md
├── scripts/
│ └── cyberpunk_notifier.py
└── references/
└── design_notes.md
各ファイルの役割
| ファイル | 役割 |
|---|---|
SKILL.md |
Skill本体。frontmatter (name/description) と指示本文。Antigravity がこの内容をエージェント指示として読み込み、ユーザーのプロンプトに応じて発動します |
scripts/cyberpunk_notifier.py |
サイバーパンク風架空OS通知スクリプト |
references/design_notes.md |
概要 をまとめた参考資料 |
SKILL.md
---
name: random-os-fake-cyberpunk-notifier
description: 作業中のユーザーに対し、SF・サイバーパンク風の架空OS通知をデスクトップ標準通知領域へランダムに表示します。通知・演出・OS連携・現実逃避などのキーワードが含まれる場面で自動発動します。
---
# 機能概要
このSkillは、あなたのデスクトップに近未来SF世界の架空OS通知をランダムに表示します。通知内容は「ニューロン接続不良」や「シンセ脳波警告」など、現実には存在しないがサイバーパンク世界観に没入できるものばかりです。作業に行き詰まった時や、現実逃避したい時に気分転換として最適です。通知はOSの標準通知APIを用いて表示され、実用性はありませんが、無駄にかっこいい演出を提供します。
# 使い方
このSkillは明示的な呼び出しを必要とせず、「サイバーパンク」「通知」「演出」「現実逃避」などのキーワードや、長時間作業時・集中力低下時に自動発動します。skillの設定で通知頻度や稼働時間帯を調整可能です。
# 出力例
```
[CYBER OS NOTIFIER]
タイトル: ニューロン接続不良を検出
内容: システムは脳内ニューロン接続の不安定化を検出しました。バイオウェア再起動を推奨します。
タイトル: シンセ脳波警告
内容: 異常なシンセ脳波パターンを検出。メンタル・ファイアウォールの強化を推奨。
タイトル: クローム義手アップデート推奨
内容: 最新のクローム義手ドライバが利用可能です。アップデートをお勧めします。
```
# 注意点
本Skillは完全な演出目的であり、通知内容に実用的な意味はありません。通知頻度が高すぎる場合は設定で調整してください。ローカルに通知履歴は保存されません。セキュリティや業務用途には使用しないでください。
# 参考資料
詳細仕様や設計方針は references/design_notes.md を参照してください。Pythonの標準通知API(win10toast, notify2, pync等)を活用しています。
scripts/cyberpunk_notifier.py
import sys
import argparse
import random
import time
import platform
import threading
# OSごとの通知モジュール準備
def get_notifier():
current_os = platform.system()
if current_os == 'Windows':
try:
from win10toast import ToastNotifier
return ToastNotifier()
except ImportError:
print('win10toast が必要です: pip install win10toast')
sys.exit(1)
elif current_os == 'Darwin':
try:
import pync
return pync
except ImportError:
print('pync が必要です: pip install pync')
sys.exit(1)
elif current_os == 'Linux':
try:
import notify2
notify2.init('Cyberpunk Notifier')
return notify2
except ImportError:
print('notify2 が必要です: pip install notify2')
sys.exit(1)
else:
print('未対応OSです')
sys.exit(1)
# サイバーパンク風の通知メッセージ生成
def generate_notification():
titles = [
'ニューロン接続不良を検出',
'シンセ脳波警告',
'クローム義手アップデート推奨',
'バイオウェア温度異常',
'データシャード破損警告',
'サイバーデッキ再起動推奨',
'ホログラム投影エラー',
'AIパーソナリティ競合',
'ナノマシン活動低下',
'メンタル・ファイアウォール侵害',
'リフレックスブースター異常',
'光学迷彩バッテリー低下',
'クローム義眼キャリブレーション失敗',
'ネットランナー認証失敗',
'仮想人格同期エラー'
]
bodies = [
'システムは脳内ニューロン接続の不安定化を検出しました。バイオウェア再起動を推奨します。',
'異常なシンセ脳波パターンを検出。メンタル・ファイアウォールの強化を推奨。',
'最新のクローム義手ドライバが利用可能です。アップデートをお勧めします。',
'バイオウェアの温度が規定値を超えました。冷却システムの点検を推奨します。',
'データシャードの一部が破損しています。バックアップを確認してください。',
'サイバーデッキの応答が遅延しています。再起動を推奨します。',
'ホログラム投影に失敗しました。プロジェクターモジュールの再設定を推奨。',
'AIパーソナリティ間で競合が発生しました。優先順位を再設定してください。',
'ナノマシン活動が低下しています。補充を検討してください。',
'メンタル・ファイアウォールが外部からの侵害を検出しました。即時対策を推奨。',
'リフレックスブースターの応答速度が低下しています。診断を実施してください。',
'光学迷彩バッテリーが残り10%です。充電を推奨します。',
'クローム義眼のキャリブレーションに失敗しました。再調整が必要です。',
'ネットランナー認証に失敗しました。アクセス権を確認してください。',
'仮想人格との同期にエラーが発生しました。再同期を推奨します。'
]
idx = random.randint(0, len(titles) - 1)
return titles[idx], bodies[idx]
# 通知を表示する関数
def show_notification(notifier, title, body):
current_os = platform.system()
if current_os == 'Windows':
notifier.show_toast(title, body, duration=6, threaded=True)
elif current_os == 'Darwin':
notifier.notify(body, title=title)
elif current_os == 'Linux':
n = notifier.Notification(title, body)
n.set_timeout(6000)
n.show()
# 通知履歴を保持する
notification_history = []
def log_notification(title, body):
timestamp = time.strftime('%Y-%m-%d %H:%M:%S')
notification_history.append({'time': timestamp, 'title': title, 'body': body})
# 通知をランダムな間隔で自動発火
def auto_notify_loop(notifier, min_interval, max_interval, count):
for _ in range(count):
title, body = generate_notification()
show_notification(notifier, title, body)
log_notification(title, body)
interval = random.uniform(min_interval, max_interval)
time.sleep(interval)
# 履歴表示
def print_history(limit=None):
print('--- 通知履歴 ---')
entries = notification_history[-limit:] if limit else notification_history
for entry in entries:
print(f"[{entry['time']}] {entry['title']} : {entry['body']}")
# サマリー表示
def print_summary():
print(f'通知回数: {len(notification_history)}')
titles = set([entry['title'] for entry in notification_history])
print(f'ユニーク通知種別: {len(titles)}')
# CLIエントリポイント
def main():
parser = argparse.ArgumentParser(description='サイバーパンク風架空OS通知スクリプト')
subparsers = parser.add_subparsers(dest='command')
notify_parser = subparsers.add_parser('notify', help='ランダム通知を一定回数発火')
notify_parser.add_argument('--min-interval', type=float, default=30, help='通知間隔の最小秒数')
notify_parser.add_argument('--max-interval', type=float, default=120, help='通知間隔の最大秒数')
notify_parser.add_argument('--count', type=int, default=5, help='通知回数')
list_parser = subparsers.add_parser('list', help='通知履歴を表示')
list_parser.add_argument('--limit', type=int, default=None, help='直近N件のみ表示')
summary_parser = subparsers.add_parser('summary', help='通知サマリーを表示')
args = parser.parse_args()
notifier = get_notifier()
if args.command == 'notify':
auto_notify_loop(notifier, args.min_interval, args.max_interval, args.count)
elif args.command == 'list':
print_history(args.limit)
elif args.command == 'summary':
print_summary()
else:
parser.print_help()
if __name__ == '__main__':
main()
references/design_notes.md
# 概要
このSkillは、ユーザーの作業環境にサイバーパンクSF世界の架空OS通知をランダム表示し、現実逃避や気分転換を促すために設計されています。通知内容は実在せず、完全に演出目的です。
# 公式ドキュメント抜粋
通知表示にはOS標準APIを利用します。Windows: win10toast, macOS: pync, Linux: notify2。詳細は各公式ドキュメントを参照してください。
- win10toast: https://github.com/jithurjacob/Windows-10-Toast-Notifications
- pync: https://github.com/setem/pync
- notify2: https://github.com/caronc/notify2
# 利用例
長時間作業や集中力低下時に、現実離れした通知で一時的なリフレッシュや遊び心を提供します。通知履歴やサマリー表示も可能で、演出の記録として活用できます。
# 注意点
通知内容は全て架空であり、実用的な意味や警告はありません。業務用途や重要な通知と混同しないよう注意してください。通知頻度が高すぎる場合はスクリプトの引数で調整してください。
# 設計方針
実在APIのみを使用し、OSごとに最適な通知方法を選択。スクリプトはCLIサブコマンドで柔軟に操作可能とし、Skill本体からも直接呼び出せる設計です。
導入手順
このSkillは GitHub で管理されているので、degit を使えば必要なフォルダだけを1コマンドで取得できます。Antigravity はファイル配置後に再起動するだけで自動認識します。
1. 前提
- Node.js v16 以上 (
degit実行に必要) - Antigravity がローカルで動いていること
2. degit でフォルダ取得
プロジェクトのルートで以下のコマンドを実行します。
npx degit aazutaku/ai-note/antigravity/random-os-fake-cyberpunk-notifier .agent/skills/random-os-fake-cyberpunk-notifier
.agent/skills/random-os-fake-cyberpunk-notifier の中に SKILL.md / scripts/ / references/ / README.md が展開されます。
3. ファイル配置確認
ls .agent/skills/random-os-fake-cyberpunk-notifier
# 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 を取りたい
- 気分転換したい時: 未来OS風通知で作業のリズムを変えたい
- チームの雑談ネタ: サイバーパンク演出でオンボーディングを盛り上げたい
気になるポイント (壊れそうな箇所)
実運用に乗せる前に頭に入れておきたい懸念。後で検証する観点でもある:
- 通知頻度のバランス: 頻繁すぎると作業の妨げになる可能性
- 通知内容のバリエーション: メッセージが単調だと飽きやすい
- OS 標準通知との競合: 他アプリの通知と重なって見逃す場合がある
- セマンティックマッチ精度: Antigravity の description マッチで想定通り発動するか
- 実用性ゼロ問題: チームや運用ルールによっては無効化推奨になることも
試す前に確かめたいこと
この Skill を実運用に投入する前に確かめたい問いを並べる:
- 通知が本当にSF・サイバーパンク風になっているか?
- 通知頻度やタイミングが迷惑にならないか?
- OSの標準通知領域にしっかり出るか?
- プロジェクト指示や他 Skill との発動競合は起きないか?
- 長時間 workflow でも通知が適度にリフレッシュ効果を発揮するか?
実際に Antigravity で試した検証ログは Antigravityで謎のサイバーパンク通知を出してみた!未来感MAXの演出を体験 にまとめる予定 (公開準備中の場合あり)。
あわせて Antigravity 公式ドキュメント と、本シリーズ「Antigravityで試したいSkill研究」の他記事も参照のこと。
関連タグで他のSkill記事を探す
本記事に付いているタグから、気になるテーマの記事を探せます。タグページで関連記事をまとめて読めるので、ぜひチェックしてみてください!
