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 から手動発火も可能
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記事を探す
本記事に付いているタグから、気になるテーマの記事を探せます。タグページで関連記事をまとめて読めるので、ぜひチェックしてみてください!
