Codexで謎のフェイク通知を活用して作業中の緊張感を和らげる方法

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

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

Codex を日々使い込むユーザーなら、作業中にふとした瞬間に「ちょっと気が抜ける演出が欲しい」「単調な AI coding workflow に何かスパイスが欲しい」と感じた経験があるはずです。特に通知や演出、OS連携まわりの機能は、集中力が切れがちな長時間作業や、同じようなリポジトリ構造説明の繰り返しでマンネリ化したタイミングにこそ、ちょっとした“遊び”が求められます。

  • Codex が context を見失って違う場所のコードを参照し、思わず「今どこ見てるの?」と混乱する
  • monorepo で package を跨いだ瞬間、Codex が repository 構造を忘れて path 管理が煩雑になる
  • session を再開すると、前回までの directory context や repository understanding をまるごと再説明する手間が発生する
  • 長時間の AI coding workflow で long context が膨らみ、重要な情報が stale context に埋もれてしまう
  • 通知や演出が単調すぎて、作業の合間に気分転換できる“遊び心”が不足している

こうした状況で「現実離れした通知で一気に空気を変えたい」「意味不明なフェイクアラートでチームの話題をさらいたい」と思う瞬間、ありませんか?

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

一言サマリ: このスキルは、作業中に“謎のOSディスク残量危機通知”をランダムに炸裂させ、単調なAI coding workflowに強制的な笑いと混乱をもたらすSkill。

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

  • Codex の session や repo onboarding の合間に、現実離れした context の通知が挟まることで、作業に新鮮な刺激が生まれる
  • monorepo や複雑な directory 構造で path 管理に疲れたタイミングに、意味不明なフェイクアラートで一息つける
  • AI coding workflow の長時間 session で stale context が溜まっても、Skill の演出で場が和む
  • 実際のディスク容量や repository 状態とは無関係に、毎回違う“例え”や“単位”で通知が届くため、飽きずに楽しめる
  • Codex の通知・演出系 Skill 活用例として、チームやコミュニティで話題にしやすい
QUICK INSTALL
このSkillをすぐ試す

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

npx degit aazutaku/ai-note/codex/random-os-fake-disk-space-crisis .agents/skills/random-os-fake-disk-space-crisis

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

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

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


# /skills menu or random-os-fake-disk-space-crisis

警告: あなたの残ディスク容量は「カブトムシ2匹分」です。
推奨: いますぐ「カブトムシ増量コマンド」を実行してください。

/Users/yourname/projects/awesome-monorepo
├── packages/
│   ├── core/
│   └── utils/
└── README.md

(この通知は現実の残容量とは一切関係ありません)

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


> cd packages/utils
> ls

緊急: SSDの空きが「ギャラクシー級に不足」しています。
残容量: 約 0.0003 ピコ宇宙 (推定)

ヒント: packages/utils ディレクトリの不要ファイルを「ブラックホール」に投棄してください。

(この通知は完全なフェイクです)

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


> /skills menu

重大警告: ディスク残量が「納豆 1パック分」以下です。
至急、納豆の補充を検討してください。

(実際のディスク容量には影響しません)

before / after の違い

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

発動方式

明示呼び出し (/skills menu or $skill-name mention) と暗黙発動 (description マッチ) の両方に対応。

Skill の中身を全部見せる

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

.agents/skills/random-os-fake-disk-space-crisis/
├── SKILL.md
├── scripts/
│   └── random_os_fake_disk_space_crisis.py
└── references/
    └── design_notes.md

各ファイルの役割

ファイル 役割
SKILL.md Skill本体。frontmatter (name/description) と指示本文。Codex がこの内容をエージェント指示として読み込み、ユーザーのプロンプトに応じて発動します
scripts/random_os_fake_disk_space_crisis.py random-os-fake-disk-space-crisis: フェイクなディスク残量危機通知を炸裂させるジョークSkill
references/design_notes.md 概要 をまとめた参考資料

SKILL.md

---
name: random-os-fake-disk-space-crisis
description: このSkillは、ターミナルやデスクトップ作業中に“ディスク残量危機”を装った現実離れしたジョーク通知をランダム生成し表示します。明示呼び出し(/skills menuやskill名メンション)や、disk/disk space/容量/空き/警告/残量/危機/alert/alert disk などのキーワード検出時に発動します。
---

# 機能概要
このSkillは、作業中のユーザーに対し「謎のOSディスク残量危機通知」をランダムに炸裂させるジョーク演出ツールです。現実離れした比喩や意味不明な単位(例:「カブトムシ2匹分」「ギャラクシー級に不足」)で、実際のディスク容量とは無関係なアラートを生成し、端末やデスクトップに通知します。ユーザーの正気度を試す“混乱と笑い”のためのSkillであり、実害やシステム操作は一切行いません。

# 使い方
- 明示呼び出し例:
  - `/skills menu` から選択
  - `$random-os-fake-disk-space-crisis` メンション
- 暗黙発動キーワード例:
  - 「ディスク」「disk」「容量」「空き」「警告」「残量」「危機」「alert disk」などを含む発話時

# 出力例
```
警告: あなたのディスク残量は“カブトムシ2匹分”です。至急ご確認ください。
緊急: SSDの空きが“ギャラクシー級に不足”しています。宇宙的対策が必要です。
注意: 残り容量は“ラーメンどんぶり0.5杯”分です。お腹が空きます。
警告: ディスクスペースが“時空間のひずみ”レベルで不足中。
アラート: 空きディスク容量が“18世紀の蒸気機関車1両分”です。
```

# 注意点
- 本Skillは実際のディスク容量取得やシステム操作を一切行いません。
- 通知内容は完全にランダム生成され、現実のストレージ状況とは無関係です。
- ローカルに情報を保存したり、履歴を残すことはありません。
- 一部環境ではデスクトップ通知が表示されない場合があります。

# 参考資料
- [Python公式: notifications/toast/notify2](https://pypi.org/project/notify2/)
- references/design_notes.md も参照。

scripts/random_os_fake_disk_space_crisis.py

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

# 通知文テンプレート
TEMPLATES = [
    '警告: あなたのディスク残量は“{unit}”です。至急ご確認ください。',
    '緊急: SSDの空きが“{unit}”にまで減少!宇宙的対策が必要です。',
    '注意: 残り容量は“{unit}”分です。お腹が空きます。',
    '警告: ディスクスペースが“{unit}”レベルで不足中。',
    'アラート: 空きディスク容量が“{unit}”です。',
    '重大: ストレージ残量が“{unit}”しかありません。',
    '警告: ディスク空きが“{unit}”となっています。',
    '警告: あなたのストレージは“{unit}”の危機に瀕しています。',
    '注意: ディスク残量が“{unit}”です。',
    '緊急: ディスクスペースが“{unit}”しかありません。',
]

# 現実離れした単位リスト
UNITS = [
    'カブトムシ2匹分',
    'ギャラクシー級に不足',
    'ラーメンどんぶり0.5杯',
    '時空間のひずみ',
    '18世紀の蒸気機関車1両分',
    'ブラックホールのエッセンス',
    'ネコのヒゲ3本分',
    '量子もつれ状態',
    '宇宙船の燃料タンク1滴分',
    'ピザ1スライス',
    'マシュマロ4個分',
    '無限小',
    'シュレディンガーの猫1匹分',
    'バナナの皮2枚',
    '小惑星帯の砂粒1粒',
    'ペンギンの涙1滴',
    'パンダのくしゃみ1回分',
    '恐竜の卵1個分',
    '宇宙の果ての静寂',
    'カップラーメンのスープ1cc',
]

# OSごとの通知実装

def send_notification(title: str, message: str):
    system = platform.system()
    try:
        if system == 'Darwin':  # macOS
            subprocess.run([
                'osascript',
                '-e', f'display notification "{message}" with title "{title}"'
            ], check=True)
        elif system == 'Linux':
            subprocess.run([
                'notify-send', title, message
            ], check=True)
        elif system == 'Windows':
            try:
                from win10toast import ToastNotifier
                toaster = ToastNotifier()
                toaster.show_toast(title, message, duration=5, threaded=True)
            except ImportError:
                print('[!] win10toastモジュールが必要です: pip install win10toast')
                print(f'{title}: {message}')
        else:
            print(f'{title}: {message}')
    except Exception as e:
        print(f'[通知失敗] {e}')
        print(f'{title}: {message}')

# ランダム通知文生成

def generate_random_message() -> str:
    template = random.choice(TEMPLATES)
    unit = random.choice(UNITS)
    return template.format(unit=unit)

# CLIコマンド実装

def cmd_notify(args):
    msg = generate_random_message()
    send_notification('ディスク残量危機', msg)
    print(f'[通知] {msg}')

def cmd_batch(args):
    count = args.count if args.count > 0 else 5
    interval = args.interval if args.interval > 0 else 3
    for i in range(count):
        msg = generate_random_message()
        send_notification('ディスク残量危機', msg)
        print(f'[{i+1}/{count}] {msg}')
        if i < count - 1:
            time.sleep(interval)

def cmd_list(args):
    print('--- 通知テンプレート ---')
    for t in TEMPLATES:
        print(f'- {t}')
    print('\n--- 単位例 ---')
    for u in UNITS:
        print(f'- {u}')

def cmd_summary(args):
    print('このSkillは、現実離れしたディスク残量危機通知をランダム生成し通知します。')
    print('実際のディスク容量やシステム操作は一切行いません。')
    print('通知内容は完全にフェイクです。')

# メイン関数

def main():
    parser = argparse.ArgumentParser(description='random-os-fake-disk-space-crisis: フェイクなディスク残量危機通知を炸裂させるジョークSkill')
    subparsers = parser.add_subparsers(dest='command')

    # notify
    parser_notify = subparsers.add_parser('notify', help='ランダムな危機通知を1回表示')
    parser_notify.set_defaults(func=cmd_notify)

    # batch
    parser_batch = subparsers.add_parser('batch', help='複数回ランダム通知を連続表示')
    parser_batch.add_argument('--count', type=int, default=5, help='通知回数 (デフォルト5)')
    parser_batch.add_argument('--interval', type=int, default=3, help='通知間隔秒 (デフォルト3)')
    parser_batch.set_defaults(func=cmd_batch)

    # list
    parser_list = subparsers.add_parser('list', help='テンプレートと単位リストを表示')
    parser_list.set_defaults(func=cmd_list)

    # summary
    parser_summary = subparsers.add_parser('summary', help='Skill概要を表示')
    parser_summary.set_defaults(func=cmd_summary)

    args = parser.parse_args()
    if hasattr(args, 'func'):
        args.func(args)
    else:
        parser.print_help()

if __name__ == '__main__':
    main()

references/design_notes.md

# 概要
このSkillは、現実のストレージ状況と無関係な“ディスク残量危機”通知をランダム生成し、ユーザーの端末に表示することを目的としたジョーク系演出ツールです。実害やシステム操作は一切ありません。

# 公式ドキュメント抜粋
- [notify-send (Linux)](https://specifications.freedesktop.org/notification-spec/latest/)
- [osascript (macOS)](https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/introduction/ASLR_intro.html)
- [win10toast (Windows)](https://pypi.org/project/win10toast/)

# 利用例
- チームのリモート会議で突然フェイク通知を発生させて笑いを誘う
- プログラミング学習やペアプロ中に“正気度テスト”として利用

# 注意点
- 実際のディスク容量やファイルシステムには一切アクセスしません
- 通知内容は完全なランダム生成です
- 一部Linux環境ではnotify-sendが未インストールの場合があります

# 設計方針
- OSごとに標準API/CLIのみ利用し、追加依存は最小限
- テンプレートと単位は拡張容易なリスト構造
- 履歴やローカル保存は行わず、純粋な“その場限り”の演出に徹する

導入手順

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

1. 前提

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

2. degit でフォルダ取得

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

npx degit aazutaku/ai-note/codex/random-os-fake-disk-space-crisis .agents/skills/random-os-fake-disk-space-crisis

.agents/skills/random-os-fake-disk-space-crisis の中に SKILL.md / scripts/ / references/ / README.md が展開されます。

3. ファイル配置確認

ls .agents/skills/random-os-fake-disk-space-crisis
# SKILL.md, scripts/, references/, README.md があればOK

4. Codex を再起動 (or Skill 自動検出を待つ)

新しいSkillが自動で認識されます。リスト確認したい場合は /skills menu or $skill-name mention と Skill 名で出てきます。

5. 動作確認

/skills menu or $skill-name mention で呼び出すか、自然言語で発動条件にマッチする指示を出すと Skill が動きます。期待される出力イメージは「実行したらこうなる」セクションを参照してください。

こんな瞬間に便利

  • session 開始時: 前回までの repo 把握を Codex に一発で復元させたい
  • monorepo 移動時: packages を跨いだ瞬間に context を切り替えたい
  • onboarding 時: 新しい repo を Codex に把握させ、こちらが 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 コードを拾ってしまう可能性
  • Codex 固有の引っかかり: description のセマンティックマッチ精度が要件次第
  • 発動しないケース: description が漠然 / 他の Skill が優先 / git管理外 directory

試す前に確かめたいこと

この Skill を実運用に投入する前に確かめたい問いを並べる:

  • 実 repo での token 消費は許容範囲か?
  • monorepo (packages 多数) で安定して動くか?
  • stale context にならず、長時間 workflow でも有効か?
  • AGENTS.md との連携設計はどうあるべきか?
  • 現実離れした通知文が毎回ランダムで生成されること
  • 本物のディスク容量取得や操作は一切行っていないこと
  • 通知が端末やデスクトップにきちんと表示されること

実際に Codex で試した検証ログは Codexで謎のOSディスク残量危機通知を炸裂させてみた! にまとめる予定 (公開準備中の場合あり)。
あわせて Codex 公式ドキュメント と、本シリーズ「Codexを使いこなすSkillアイデア」の他記事も参照のこと。

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

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

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

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