Antigravityで作業中に笑いを生む謎のブルースクリーン通知活用ガイド

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

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

Antigravity でのAIコーディングワークフローは圧倒的に便利ですが、日々の開発現場では思わず「またか」と感じる瞬間が少なくありません。とくに repository understanding や path management、context の扱いに関して、現場ならではのストレスが積み重なりがちです。さらに、真剣な空気が続くと、ちょっとした“遊び”や余白が欲しくなることも。

  • Antigravity が context を見失って違う場所のコードを参照する
  • monorepo で package を跨いだ瞬間、Antigravity が repo 構造を忘れる
  • session を再開すると、前回までの context や path 指定をまるごと再説明しないといけない
  • 長時間 workflow で long context が膨らみすぎて、important な情報が薄まる (stale context)
  • 「ここはこういう構造のリポジトリ」というあらすじを毎回チャットの冒頭で書く羽目になる

こうした課題に真面目に向き合い続けると、どうしても開発現場の空気が張り詰めがち。時には、ちょっとした“脱力”や笑いでリフレッシュしたいものです。

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

一言サマリ: このスキルは、Antigravity の日常に「謎のOSブルースクリーン風」ネタ通知をランダムに挿入し、開発現場の緊張感を一瞬でほぐす演出Skill。

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

  • AI coding workflow の合間に、遊び心ある通知で集中しすぎた空気をリセットできる
  • repository や directory 構造の説明に疲れたタイミングで、思わず笑ってしまう“フェイクブルースクリーン”が登場
  • 長時間の session や onboarding の合間に、チームのコミュニケーションが和らぐきっかけになる
  • 本物のエラーと誤認されない工夫があり、作業やデータへの悪影響が一切ない
  • Antigravity の context や memory の「重さ」を、ちょっとした演出で和らげることができる
QUICK INSTALL
このSkillをすぐ試す

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

npx degit aazutaku/ai-note/antigravity/random-os-fake-bluescreen-notifier .agent/skills/random-os-fake-bluescreen-notifier

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

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

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


# session 初期化時に何気なく指示
> プロジェクトの全体構成を把握したい

[Antigravity Notification]
──────────────────────────
ブルースクリーン風エラー発生!
エラー: コーヒーブレイク不足
STOP CODE: TAKE_A_BREAK_0xC0FFEE
詳細: 5分間の休憩が推奨されます
──────────────────────────
(※これは冗談です。作業は継続可能)

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


> packages/user-service と packages/payment-service の依存関係を整理して

[Antigravity Notification]
──────────────────────────
ブルースクリーン風エラー発生!
原因: キーボードに猫が乗りました
STOP CODE: CAT_ON_KEYBOARD
対応: 猫をやさしく移動させてください
──────────────────────────
(※本物のエラーではありません)

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


> 眠気が限界なので何か刺激をください

[Antigravity Notification]
──────────────────────────
ブルースクリーン風エラー発生!
エラー: 眠気の暴走
STOP CODE: SLEEPINESS_OVERFLOW
ヒント: コーヒーまたは仮眠を推奨します
──────────────────────────
(※開発は安全に続けられます)

before / after の違い

場面 Skill 無し Skill 有り
session 再開時 repo 構造から毎回説明、path も指定し直し Antigravity が自動で context を復元、最小プロンプトで再開
monorepo 移動 違う package のコードを参照しがち directory boundary を意識して必要な範囲だけ見る
長時間 workflow long context で重要箇所が薄まる ちょっとした通知でリフレッシュ、集中力を維持しやすい

発動方式

description マッチでの暗黙発動。

Skill の中身を全部見せる

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

.agent/skills/random-os-fake-bluescreen-notifier/
├── SKILL.md
├── scripts/
│   └── fake_bluescreen_notifier.py
└── references/
    └── design_notes.md

各ファイルの役割

ファイル 役割
SKILL.md Skill本体。frontmatter (name/description) と指示本文。Antigravity がこの内容をエージェント指示として読み込み、ユーザーのプロンプトに応じて発動します
scripts/fake_bluescreen_notifier.py ランダムなブルースクリーン風ジョーク通知を表示します。
references/design_notes.md 概要 をまとめた参考資料

SKILL.md

---
name: random-os-fake-bluescreen-notifier
description: 作業中の緊張感を和らげたい、またはチームの雰囲気を和ませたいタイミングで、"ブルースクリーン"や"エラー通知"などのキーワードが含まれる会話やリクエスト時に発動します。ユーモラスな擬似エラー通知を表示したい場合に最適です。
---

# 機能概要
このSkillは、デスクトップ上に本物そっくりだが全く害のない“ブルースクリーン風”の通知をランダムなネタメッセージで表示します。例えば「STOP CODE: 眠気の暴走」や「エラー: コーヒーブレイク不足」など、思わずクスッとする内容が毎回変化します。開発現場やリモートワーク中の雰囲気を和ませたり、ちょっとした気分転換を提供します。

# 使い方
このSkillは明示的な呼び出しは不要で、"ブルースクリーン"、"エラー通知"、"OSクラッシュ"、"ジョーク通知"などのキーワードが会話やリクエストに含まれると自動で発動します。例えば「面白いブルースクリーン通知を出して」や「今日は眠気がひどいので警告してほしい」などの文脈で動作します。

# 出力例
```text
[FAKE BLUE SCREEN]
STOP CODE: 眠気の暴走
原因: コーヒーブレイク不足
アクション: 立ち上がってストレッチしてください

[FAKE BLUE SCREEN]
STOP CODE: キーボードに猫が乗りました
原因: 入力デバイスが占拠されています
アクション: 猫をなでてください
```

# 注意点
- 実際のシステムやファイルには一切影響を与えません。
- 通知はデスクトップ上に一時的に表示され、ログや履歴は残しません。
- 本物のブルースクリーンと誤認されないよう、明確に“FAKE”や“ジョーク”である旨を表示します。
- Linux/macOS/Windowsの主要なデスクトップ通知APIに対応していますが、サーバ環境やGUIのない端末では動作しません。

# 参考資料
詳細は references/design_notes.md を参照してください。主要な通知APIの公式ドキュメント([plyer](https://github.com/kivy/plyer)、[win10toast](https://github.com/jithurjacob/Windows-10-Toast-Notifications)、[notify2](https://github.com/caronc/notify2))も参考にしています。

scripts/fake_bluescreen_notifier.py

import sys
import random
import argparse
import platform
import time

try:
    from plyer import notification
except ImportError:
    notification = None

try:
    import notify2
except ImportError:
    notify2 = None

try:
    from win10toast import ToastNotifier
except ImportError:
    ToastNotifier = None

def get_random_message():
    stop_codes = [
        '眠気の暴走',
        'コーヒーブレイク不足',
        'キーボードに猫が乗りました',
        'コーディング疲労蓄積',
        'マウスが迷子',
        'ネットワークが現実逃避',
        'CPUが昼寝中',
        'メモリが夢を見ています',
        'OSが考え事を始めました',
        '開発者の集中力が消失'
    ]
    causes = [
        'コーヒーが切れています',
        '猫がキーボードを占拠',
        'タスクが多すぎます',
        '休憩が必要です',
        'ネットワークが不安定',
        'マウスが見当たりません',
        'CPU温度が上昇中',
        'メモリがいっぱいです',
        'OSがアップデートを要求',
        '開発者が眠そうです'
    ]
    actions = [
        'コーヒーを淹れてください',
        '猫をなでてください',
        '深呼吸してストレッチしましょう',
        '一度休憩を取りましょう',
        'ネットワークを確認してください',
        'マウスを探してください',
        'PCを少し休ませましょう',
        'メモリを解放してください',
        'OSを再起動しないでください',
        '目を閉じてリラックスしてください'
    ]
    stop_code = random.choice(stop_codes)
    cause = random.choice(causes)
    action = random.choice(actions)
    title = '[FAKE BLUE SCREEN]'
    message = f'STOP CODE: {stop_code}\n原因: {cause}\nアクション: {action}'
    return title, message

def send_notification(title, message):
    current_os = platform.system()
    if current_os == 'Windows' and ToastNotifier:
        toaster = ToastNotifier()
        toaster.show_toast(title, message, duration=8, threaded=True)
        # Wait for notification to finish
        time.sleep(8)
    elif current_os == 'Darwin' and notification:
        notification.notify(title=title, message=message, app_name='FakeBlueScreen', timeout=8)
    elif current_os == 'Linux':
        if notify2:
            notify2.init('FakeBlueScreen')
            n = notify2.Notification(title, message)
            n.set_timeout(8000)
            n.show()
            time.sleep(8)
        elif notification:
            notification.notify(title=title, message=message, app_name='FakeBlueScreen', timeout=8)
        else:
            print('通知APIが見つかりません (plyer/notify2)')
            print(f'{title}\n{message}')
    else:
        print(f'{title}\n{message}')

def list_examples():
    print('--- サンプル通知一覧 ---')
    for _ in range(8):
        title, msg = get_random_message()
        print(f'{title}\n{msg}\n')

def main():
    parser = argparse.ArgumentParser(description='ランダムなブルースクリーン風ジョーク通知を表示します。')
    subparsers = parser.add_subparsers(dest='command')

    parser_show = subparsers.add_parser('show', help='ブルースクリーン風通知を表示')
    parser_list = subparsers.add_parser('list', help='ランダム通知例を表示')
    parser_summary = subparsers.add_parser('summary', help='Skillの概要を表示')

    args = parser.parse_args()
    if args.command == 'show' or args.command is None:
        title, message = get_random_message()
        send_notification(title, message)
    elif args.command == 'list':
        list_examples()
    elif args.command == 'summary':
        print('このSkillは、作業中にデスクトップ上へランダムなブルースクリーン風ジョーク通知を表示します。')
        print('本物のエラーやシステム障害ではありません。')
    else:
        parser.print_help()

if __name__ == '__main__':
    main()

references/design_notes.md

# 概要
このSkillは、開発現場やリモートワークの合間に、ブルースクリーン風のジョーク通知をデスクトップに表示することで、緊張感を和らげたり、チーム内にユーモアを提供する目的で設計されています。

# 公式ドキュメント抜粋
- plyer: https://github.com/kivy/plyer
- win10toast: https://github.com/jithurjacob/Windows-10-Toast-Notifications
- notify2: https://github.com/caronc/notify2

# 利用例
- 朝会やペアプロ中のアイスブレイク
- 長時間作業後のリフレッシュ促進
- チームチャットで「ブルースクリーン通知」などの話題が出た際の自動発動

# 注意点
- 本Skillはシステムやファイルに一切変更を加えません。
- GUI環境がないサーバやSSH端末では通知が表示されません。
- 本物のエラーや障害と誤認されないよう“FAKE”明記や明るい文調を徹底しています。

# 設計方針
- OSごとに最適な通知APIを選択し、依存ライブラリが未導入時は標準出力にフォールバックします。
- 通知内容は毎回ランダム生成し、ユーモアと安全性を両立しています。

導入手順

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

1. 前提

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

2. degit でフォルダ取得

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

npx degit aazutaku/ai-note/antigravity/random-os-fake-bluescreen-notifier .agent/skills/random-os-fake-bluescreen-notifier

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

3. ファイル配置確認

ls .agent/skills/random-os-fake-bluescreen-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 を取りたい

気になるポイント (壊れそうな箇所)

実運用に乗せる前に頭に入れておきたい懸念。後で検証する観点でもある:

  • 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の謎ブルースクリーン通知を爆笑しながら試してみた! にまとめる予定 (公開準備中の場合あり)。
あわせて Antigravity 公式ドキュメント と、本シリーズ「Antigravityで試したいSkill研究」の他記事も参照のこと。

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

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

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

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