Codexで作業中に古代予言風通知を活用する楽しみ方ガイド

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

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

AI coding workflow の現場では、真面目な開発作業の合間にちょっとした気分転換や“遊び心”が欲しくなる瞬間が意外と多いものです。Codex を使っていると、context や repository understanding の精度・path management の工夫などに神経を使いがちですが、長時間のセッションや monorepo の directory 構造を相手にしていると、どうしても作業が単調になりがちです。そんなとき、ふとした“演出”や通知があるだけで、気持ちがリフレッシュされることがあります。

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

こうした“context 管理疲れ”や“単調な作業感”を、ちょっとした通知や演出で和らげたい――そんな声に応えるのが、通知・演出・OS連携系の Skill です。

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

一言サマリ: このスキルは、Codex 作業中に突如「謎のOS古代予言通知」を炸裂させ、単調な開発現場に遊び心とリフレッシュをもたらす Skill。

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

  • 長時間の repository 作業や monorepo の context 管理に疲れたタイミングで、思わず笑ってしまう“古代予言”が唐突に現れ、気分転換できる
  • AI coding workflow の合間に“作業中断型エンタメ演出”が走り、チーム内コミュニケーションやオンボーディング時のアイスブレイクにも使える
  • 毎回ランダムな予言文が context や path、directory 名に紐づいて出現し、repo の奥深さや作業の進捗にちょっとした彩りが加わる
  • 通知・演出系 Skill の活用で、Codex の長時間利用による stale context や作業マンネリ化を防ぐ“意図的な interruption”が実現できる
  • Skill の発動は明示・暗黙どちらにも対応し、/skills menu から手動発火も可能
QUICK INSTALL
このSkillをすぐ試す

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

npx degit aazutaku/ai-note/codex/random-os-fake-ancient-prophecy-alert .agents/skills/random-os-fake-ancient-prophecy-alert

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

使う側がイメージしやすいよう、擬似 terminal で出力例を3パターン示す。Skill が返す出力は推測だが、現実的なフォーマット・現実的な長さで書く。

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


# /skills menu
> random-os-fake-ancient-prophecy-alert

【古代OS予言】
「西のウィンドウズに赤きバグ現る時、選ばれし者は main.py をリブートせよ」

(予言は空より降り注ぐ。あなたの repository に新たな風が吹く。)

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


> cd packages/auth && ls

【古代OS予言】
「2024年、auth/ 内に隠されし token の名を知る者は、全ての gate を開くだろう」

(意味深な予言がターミナルに表示され、思わず二度見。)

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


> /skills random-os-fake-ancient-prophecy-alert

【古代OS予言】
「README.md を書きし者、未来永劫バグに悩まされず」

(チームメンバーが思わずクスッと笑う。)

before / after の違い

場面 Skill 無し Skill 有り
session 再開時 repo 構造から毎回説明、path も指定し直し Codex が自動で context を復元、最小プロンプトで再開
monorepo 移動 違う package のコードを参照しがち directory boundary を意識して必要な範囲だけ見る
長時間 workflow long context で重要箇所が薄まる 突発的な予言通知で集中力が一時リセット、気分転換できる

発動方式

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

Skill の中身を全部見せる

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

.agents/skills/random-os-fake-ancient-prophecy-alert/
├── SKILL.md
├── scripts/
│   └── prophecy_alert.py
└── references/
    └── design_notes.md

各ファイルの役割

ファイル 役割
SKILL.md Skill本体。frontmatter (name/description) と指示本文。Codex がこの内容をエージェント指示として読み込み、ユーザーのプロンプトに応じて発動します
scripts/prophecy_alert.py OS Ancient Prophecy Alert: 古代OS予言通知スクリプト
references/design_notes.md 概要 をまとめた参考資料

SKILL.md

---
name: random-os-fake-ancient-prophecy-alert
description: Codexは、ユーザーがコマンド実行や作業中に“古代OS予言通知”で場を和ませたい場合、または/skillsメニューやスキル名の明示呼び出しがあった際に本Skillを発動してください。発動キーワード例: 予言, 通知, エンタメ, 中断, alert。
---

# 機能概要
このSkillは、日常の開発作業やコマンド実行時に、まるで古代のOS預言者が降臨したかのような“謎の予言通知”を突如表示します。通知内容は毎回ランダムで生成され、例えば「西のウィンドウズに赤きバグ現る時、選ばれし者はリブートせよ」や「2024年、ファイル名にパワー宿る」など、意味不明かつ古代書物風の言い回しが炸裂。真面目な現場にユーモアと中断型エンタメを注入し、思わず二度見してしまう体験を提供します。

# 使い方
- 明示呼び出し: `/skills random-os-fake-ancient-prophecy-alert` またはスキル名をmention
- 暗黙発動: 「予言」「通知」「alert」「エンタメ」「古代」などのキーワードを含む会話やコマンド実行時に自動発動
- CLIからは `python prophecy_alert.py` で即時発動、または `--interval` オプションで一定間隔ごとに自動発動

# 出力例
```
[OS Ancient Prophecy Alert]
西のウィンドウズに赤きバグ現る時、選ばれし者はリブートせよ。
---
[OS Ancient Prophecy Alert]
2024年、ファイル名にパワー宿る。
---
[OS Ancient Prophecy Alert]
sudoの呪文三度唱えし者、未知の権限を得るだろう。
---
[OS Ancient Prophecy Alert]
ターミナルに光差す時、隠されたプロセス目覚める。
---
```

# 注意点
- 本Skillは通知演出のみで、実際のシステムやファイルには一切影響を与えません
- ローカル保存や履歴機能はありません
- 環境構築不要で副作用ゼロ、データ損失リスクもありません
- 通知頻度はコマンドライン引数で調整可能

# 参考資料
- references/design_notes.md を参照
- 公式Python通知API: https://pypi.org/project/plyer/ , https://docs.python.org/ja/3/library/random.html

scripts/prophecy_alert.py

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

PROPHECY_TEMPLATES = [
    "西のウィンドウズに赤きバグ現る時、選ばれし者はリブートせよ。",
    "2024年、ファイル名にパワー宿る。",
    "sudoの呪文三度唱えし者、未知の権限を得るだろう。",
    "ターミナルに光差す時、隠されたプロセス目覚める。",
    "古きログファイルに真実は眠る。",
    "パスワード忘れし者、再び始まりの地へ戻るべし。",
    "カーネルの叫びが聞こえし夜、システムは揺らぐ。",
    "選ばれし者、configを書き換えよ。",
    "パーミッション拒まれし時、己を省みよ。",
    "未知のポート開かれし時、闇より使者現る。",
    "cronの鐘が三度鳴る時、スクリプトは蘇る。",
    "ディレクトリの奥底に、忘れられしreadme眠る。",
    "バージョンアップの風が吹く時、古きエラー蘇る。",
    "gitの迷宮に迷いし者、commitで光を見出す。",
    "セグメンテーションの壁を越えし者、無限のRAMを手にする。"
]

def generate_prophecy() -> str:
    return random.choice(PROPHECY_TEMPLATES)

def print_prophecy():
    msg = generate_prophecy()
    print("[OS Ancient Prophecy Alert]\n" + msg + "\n---")
    return msg

def notify_desktop(msg: str):
    sys_platform = platform.system()
    try:
        if sys_platform == "Darwin":  # macOS
            subprocess.run([
                "osascript", "-e",
                f'display notification "{msg}" with title "OS Ancient Prophecy Alert"'
            ], check=True)
        elif sys_platform == "Linux":
            subprocess.run([
                "notify-send", "OS Ancient Prophecy Alert", msg], check=True)
        elif sys_platform == "Windows":
            from win10toast import ToastNotifier
            toaster = ToastNotifier()
            toaster.show_toast("OS Ancient Prophecy Alert", msg, duration=5)
        else:
            print("[通知未対応プラットフォーム]")
    except Exception as e:
        print(f"[通知エラー]: {e}")

def prophecy_loop(interval: int, desktop: bool, count: int):
    shown = 0
    try:
        while count == 0 or shown < count:
            msg = print_prophecy()
            if desktop:
                notify_desktop(msg)
            shown += 1
            if count == 0 or shown < count:
                time.sleep(interval)
    except KeyboardInterrupt:
        print("\n[Prophecy Alert] 中断されました。")

def list_prophecies():
    print("# 予言テンプレート一覧:")
    for idx, p in enumerate(PROPHECY_TEMPLATES, 1):
        print(f"{idx}. {p}")

def summary():
    print("このSkillは、作業中に古代OS予言通知をランダムに生成・表示します。\n通知は毎回異なり、デスクトップ通知も対応可能。\n副作用ゼロ・データ損失なし。")

def parse_args():
    parser = argparse.ArgumentParser(description="OS Ancient Prophecy Alert: 古代OS予言通知スクリプト")
    subparsers = parser.add_subparsers(dest="command")

    parser_run = subparsers.add_parser("run", help="予言を即時または定期的に表示")
    parser_run.add_argument("--interval", type=int, default=0, help="繰り返し表示の間隔(秒)。0なら1回のみ")
    parser_run.add_argument("--desktop", action="store_true", help="デスクトップ通知も送信")
    parser_run.add_argument("--count", type=int, default=0, help="表示回数。0なら無限ループ")

    parser_list = subparsers.add_parser("list", help="予言テンプレート一覧を表示")
    parser_summary = subparsers.add_parser("summary", help="Skill概要を表示")

    return parser.parse_args()

if __name__ == "__main__":
    args = parse_args()
    if args.command == "run":
        interval = args.interval if args.interval > 0 else 0
        count = args.count if args.count > 0 else 1 if interval == 0 else 0
        prophecy_loop(interval, args.desktop, count)
    elif args.command == "list":
        list_prophecies()
    elif args.command == "summary":
        summary()
    else:
        print("使い方: python prophecy_alert.py run|list|summary [--interval N] [--desktop] [--count N]")

references/design_notes.md

# 概要
本Skillは、開発現場に“古代OS預言”というユーモアを即時注入するための通知演出ツールです。通知内容は毎回ランダム生成され、ターミナル・デスクトップ両対応。副作用ゼロで安全です。

# 公式ドキュメント抜粋
- Python標準random: https://docs.python.org/ja/3/library/random.html
- notify-send (Linux): https://specifications.freedesktop.org/notification-spec/latest/
- osascript (macOS): https://ss64.com/osx/osascript.html
- win10toast (Windows): https://pypi.org/project/win10toast/

# 利用例
- `/skills random-os-fake-ancient-prophecy-alert` で即時発動
- `python prophecy_alert.py run --interval 300 --desktop` で5分ごとに通知

# 注意点
- データ損失や副作用は一切ありません
- 通知頻度・回数はCLI引数で柔軟に調整可能

# 設計方針
- どのOS環境でも動作するよう通知APIを分岐実装
- 予言テンプレートは拡張容易なリスト構造
- 明示/暗黙トリガー両対応で多様な現場に適応

導入手順

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

1. 前提

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

2. degit でフォルダ取得

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

npx degit aazutaku/ai-note/codex/random-os-fake-ancient-prophecy-alert .agents/skills/random-os-fake-ancient-prophecy-alert

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

3. ファイル配置確認

ls .agents/skills/random-os-fake-ancient-prophecy-alert
# 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で謎の古代予言通知を炸裂させてみた!作業中に笑える演出を体験 にまとめる予定 (公開準備中の場合あり)。
あわせて Codex 公式ドキュメント と、本シリーズ「Codexを使いこなすSkillアイデア」の他記事も参照のこと。

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

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

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

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