Codex ユーザーが日常でぶつかる悩み
Codex を日々使い込んでいると、AI coding workflow の中で「context の迷子」「repo 構造の混乱」「directory や path の管理ストレス」など、地味に神経を削る瞬間が多々あります。特に monorepo のような巨大リポジトリや、複数の package を行き来する現場では、Codex の repository understanding にも限界が見え隠れします。そんな中で、ふとした瞬間に「現実感覚が壊れるような演出」があれば、マンネリな作業や会議の空気も一変します。
- Codex が context を見失って違う場所のコードを参照する
- monorepo で package を跨いだ瞬間、Codex が repo 構造を忘れる
- session を再開すると、前回までの context や path 指定をまるごと再説明しないといけない
- 長時間 workflow で long context が膨らみすぎて、important な情報が薄まる (stale context)
- 「ここはこういう構造のリポジトリ」というあらすじを毎回チャットの冒頭で書く羽目になる
そして、真面目な現場ほど「空気が重い」「集中しすぎて逆に効率が落ちる」といった悩みも。通知や演出系 Skill で、そんな閉塞感を一瞬でリセットしたい場面も少なくありません。
この Skill が一言でいうと何を解決するか
一言サマリ: このスキルは、現実味ゼロの“謎のOSシステムメンテナンス通知”をランダム表示し、Codex の単調な作業フローに強烈なカオスと笑いを差し込みます。
もう少し具体化すると、このSkillを入れることで以下のような状態になる:
- AI coding workflow の合間に、突如として現実離れした「OSメンテナンス予告」が表示され、集中しすぎた空気を一気にリセット
- session 再開や monorepo 移動時など、context 切り替えのタイミングで絶妙な“余白”やネタを提供
- onboarding やペアプロ時、会議の場で「なんだこれ!?」と話題を呼び、チームのアイスブレイク効果
- 通知・演出・OS連携 Skill の面白さを体感しつつ、Codex の repository understanding や path management への意識を適度にほぐす
- 完全ランダムな fake alert なので、飽きずに何度も楽しめる
GitHub から degit でコマンド1行、Codex の Skill ディレクトリに展開できます。Node.js があれば即時に動きます。
npx degit aazutaku/ai-note/codex/random-os-fake-system-maintenance-alert .agents/skills/random-os-fake-system-maintenance-alert実行したらこうなる (3つの利用シーン)
使う側がイメージしやすいよう、擬似 terminal で出力例を3パターン示します。
シーン1: session 開始時 (プロジェクト初動で)
# /skills menu or random-os-fake-system-maintenance-alert mention
> 開発を始める
[通知] 重要: 本日21:00より全システムを逆さまにします。作業中のファイルは上下が入れ替わる可能性があります。
[通知] 緊急: /src/components/ ディレクトリが一時的に「透明」になります。見えなくても驚かないでください。
[通知] 注意: マウス左クリック機能が右クリックに統合されます。設定変更は不要です。
シーン2: monorepo / package 跨ぎ作業時
> packages/api/ から packages/web/ へ移動
[通知] 予定: 23:00より packages/web/ 配下の全ファイル名がランダムな絵文字に変換されます。
[通知] メンテナンス: node_modules/ ディレクトリが一時的に「宇宙空間」にワープします。ご理解ください。
[通知] 重要: repository understanding を一時停止します。path management は自己責任でお願いします。
シーン3: お遊び的な使い方
> 気分転換したい
[通知] 緊急: すべてのコードコメントが「AIのポエム」に置換される予定です。
[通知] お知らせ: /README.md が「今日の献立」に差し替わります。ご迷惑をおかけします。
[通知] ご注意: long context が膨らみすぎたため、一部の記憶が消去されます。
before / after の違い
| 場面 | Skill 無し | Skill 有り |
|---|---|---|
| session 再開時 | repo 構造から毎回説明、path も指定し直し | Codex が自動で context を復元、最小プロンプトで再開+謎通知で一瞬現実が壊れる |
| monorepo 移動 | 違う package のコードを参照しがち | directory boundary を意識しつつ、唐突な fake alert で空気が和む |
| 長時間 workflow | long context で重要箇所が薄まる | 集中が途切れたタイミングで意味不明な通知が入り、脳がリセットされる |
発動方式
明示呼び出し (/skills menu or $skill-name mention) と暗黙発動 (description マッチ) の両方に対応。
Skill の中身を全部見せる
.agents/skills/random-os-fake-system-maintenance-alert/ に配置するファイル一覧です。GitHub に push 済みなので、上記の degit コマンドで一発取得できます。
.agents/skills/random-os-fake-system-maintenance-alert/
├── SKILL.md
├── scripts/
│ └── random_os_fake_system_maintenance_alert.py
└── references/
└── design_notes.md
各ファイルの役割
| ファイル | 役割 |
|---|---|
SKILL.md |
Skill本体。frontmatter (name/description) と指示本文。Codex がこの内容をエージェント指示として読み込み、ユーザーのプロンプトに応じて発動します |
scripts/random_os_fake_system_maintenance_alert.py |
ランダムな偽システムメンテナンス通知を表示します |
references/design_notes.md |
概要 をまとめた参考資料 |
SKILL.md
---
name: random-os-fake-system-maintenance-alert
description: 会議やペアプロ、集中作業中など『システム』『メンテナンス』『通知』『アラート』などのキーワードや、/skills メニュー呼び出し時に発動。現実味ゼロの偽OS保守案内をランダム表示し、場を和ませたり現実感覚を攪乱します。
---
# 機能概要
このSkillは、作業中や会議中に突然「謎のOSシステムメンテナンス予告通知」をランダムに生成・表示します。通知内容は「重要:本日21:00より全システムを逆さまにします」「緊急:マウス左クリック機能が右クリックに統合されます」など、現実離れしたカオスな文面。真面目な現場や集中した作業空間で、ユーモアと混乱を提供し、場の空気を和ませたり、気分転換に最適です。データ損失や実害は一切ありません。
# 使い方
- 明示呼び出し例:`/skills random-os-fake-system-maintenance-alert` または `$random-os-fake-system-maintenance-alert`
- 暗黙発動キーワード例:`システム`, `メンテナンス`, `通知`, `アラート`, `保守`, `サーバー`, `アップデート` などの文脈で自動発動
# 出力例
```
[OS ALERT] 重要: 本日23:00より全ウィンドウが自動的に上下逆転されます。
[MAINTENANCE] 緊急: マウス左クリック機能は右クリックに統合されます。
[NOTICE] 予告: 全フォルダ名が一時的に「ねこ」にリネームされます。
[ALERT] 注意: システム時刻がランダムな未来日にジャンプします。
[INFO] お知らせ: 本日のログイン画面はモールス信号入力のみ対応となります。
```
# 注意点
- このSkillは完全なジョーク通知のみを出力し、実際のシステムやファイルには一切影響を与えません。
- 通知内容は毎回ランダム生成され、現実味はありません。
- ローカル保存や履歴機能はありません。
- 本Skillは通知・演出目的であり、業務用途や本番環境での誤解にはご注意ください。
# 参考資料
- [参考: Python公式 random モジュール](https://docs.python.org/ja/3/library/random.html)
- references/design_notes.md も参照
scripts/random_os_fake_system_maintenance_alert.py
import argparse
import random
import sys
import datetime
ALERT_PREFIXES = [
'[OS ALERT] 重要:',
'[MAINTENANCE] 緊急:',
'[NOTICE] 予告:',
'[ALERT] 注意:',
'[INFO] お知らせ:'
]
ALERT_MESSAGES = [
'本日{time}より全ウィンドウが自動的に上下逆転されます。',
'マウス左クリック機能は右クリックに統合されます。',
'全フォルダ名が一時的に「ねこ」にリネームされます。',
'システム時刻がランダムな未来日にジャンプします。',
'本日のログイン画面はモールス信号入力のみ対応となります。',
'全ユーザーのパスワードが「password1234」に一時変更されます。',
'デスクトップの壁紙が1分ごとにランダムな動物写真に切り替わります。',
'全アプリのウィンドウが円形に整列されます。',
'本日限定でCtrl+CがCtrl+Vの動作になります。',
'全ファイルの拡張子が「.nya」に自動変換されます。',
'一部のキー入力がランダムにカタカナへ変換されます。',
'システム音声が関西弁になります。',
'本日21:00より全システムを逆さまにします。',
'マウスポインタが2倍速で移動します。',
'全ユーザーのデスクトップに「謎の猫」のショートカットが追加されます。',
'全ての通知が5分遅延して表示されます。',
'一時的に全アプリがグレースケール表示になります。',
'システムフォントが手書き風に変更されます。',
'ランダムなタイミングで「ピコーン!」と通知音が鳴ります。',
'全ユーザーのログインメッセージが「おつかれさまです」になります。',
'本日だけCapsLockキーが常時ONになります。',
'システム再起動時に「じゃんけん大会」が開催されます。',
'一部のファイル名が逆さ文字で表示されます。',
'一時的にファイル検索が「しりとり」順になります。',
'全ユーザーのアイコンが「謎の生物」に変更されます。',
'本日限定でタスクバーが画面上部に移動します。',
'全ユーザーのスタートメニューが五十音順に並び替えられます。',
'一時的に全アプリのタイトルバーが虹色になります。',
'システム時刻が「平成元年」に戻ります。',
'全ユーザーのデスクトップが「砂漠」テーマに変更されます。',
'全フォルダのアイコンが「おにぎり」になります。',
'本日23:59より全ファイルが自動でバックアップされます(嘘)。',
'一時的に全ユーザー名が「ゲスト」になります。',
'全てのウィンドウが半透明表示になります。',
'本日だけ右クリックメニューが3倍の項目数になります。',
'全ユーザーの壁紙が「謎の数式」になります。',
'システム通知音が「太鼓」に変更されます。',
'一時的に全アプリのウィンドウ枠が消失します。',
'全ユーザーのログイン画面が「迷路」になります。',
'一時的に全ファイルのサイズが2倍に表示されます。',
'全ユーザーのマイドキュメントが「マイ猫」にリネームされます。'
]
def generate_random_alert():
prefix = random.choice(ALERT_PREFIXES)
message_template = random.choice(ALERT_MESSAGES)
now = datetime.datetime.now()
random_hour = random.randint(0, 23)
random_min = random.randint(0, 59)
time_str = f'{random_hour:02d}:{random_min:02d}'
message = message_template.format(time=time_str)
return f'{prefix} {message}'
def print_alerts(count=5):
for _ in range(count):
print(generate_random_alert())
def list_alerts():
print('# 収録されているカオスな通知例一覧:')
for i, template in enumerate(ALERT_MESSAGES, 1):
print(f'{i:2d}. {template}')
def summary():
print('random-os-fake-system-maintenance-alert Skill 概要:')
print('・現実味ゼロの偽システムメンテナンス通知をランダム生成')
print('・通知内容は全てジョークで、実際のシステムには影響なし')
print(f'・登録通知パターン数: {len(ALERT_MESSAGES)}')
print('・CLIサブコマンド: alert, list, summary')
def main():
parser = argparse.ArgumentParser(description='ランダムな偽システムメンテナンス通知を表示します')
subparsers = parser.add_subparsers(dest='command')
parser_alert = subparsers.add_parser('alert', help='ランダム通知を表示')
parser_alert.add_argument('-n', '--number', type=int, default=5, help='表示する通知数 (デフォルト5)')
parser_list = subparsers.add_parser('list', help='全通知テンプレートを一覧表示')
parser_summary = subparsers.add_parser('summary', help='Skillの概要を表示')
args = parser.parse_args()
if args.command == 'alert':
print_alerts(args.number)
elif args.command == 'list':
list_alerts()
elif args.command == 'summary':
summary()
else:
parser.print_help()
if __name__ == '__main__':
main()
references/design_notes.md
# 概要
本Skillは、現実味ゼロの“偽システムメンテナンス通知”をランダム生成し、作業現場や会議中の空気を和ませるための演出系ツールです。通知内容は全てジョークであり、実際のシステムやファイルに一切影響を与えません。
# 公式ドキュメント抜粋
通知文のランダム生成にはPython標準のrandomモジュールを利用し、テンプレート内の時刻や日付もランダムに埋め込みます。通知テンプレートは40種以上を収録。
# 利用例
- `/skills random-os-fake-system-maintenance-alert alert -n 3` で3件のカオス通知を即時出力
- 会議やペアプロで突然“謎通知”を流して場を和ませる
# 注意点
- 出力内容は全てジョークであり、実際のシステムやファイル操作は行いません
- ログや履歴の自動保存機能はありません
- 本Skillの通知を本物と誤解しないよう、利用シーンにご注意ください
# 設計方針
- 実害ゼロ・誤動作リスクゼロを最優先
- カオスかつ現実離れした通知文を厳選
- 10分以内に即体験できるシンプル設計
- CLIサブコマンドで用途別に柔軟に呼び出し可能
導入手順
このSkillは GitHub で管理されているので、degit を使えば必要なフォルダだけを1コマンドで取得できます。Codex はファイル配置後に再起動するだけで自動認識します。
1. 前提
- Node.js v16 以上 (
degit実行に必要) - Codex がローカルで動いていること
2. degit でフォルダ取得
プロジェクトのルートで以下のコマンドを実行します。
npx degit aazutaku/ai-note/codex/random-os-fake-system-maintenance-alert .agents/skills/random-os-fake-system-maintenance-alert
.agents/skills/random-os-fake-system-maintenance-alert の中に SKILL.md / scripts/ / references/ / README.md が展開されます。
3. ファイル配置確認
ls .agents/skills/random-os-fake-system-maintenance-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 との連携設計はどうあるべきか?
- 10分程度で即試せるか?
- 通知内容が毎回ランダムでカオスであるか?
- データ損失や誤動作リスクがゼロか?
実際に Codex で試した検証ログは Codexで通知・演出・OS連携Skillを試してみた結果 にまとめる予定 (公開準備中の場合あり)。
あわせて Codex 公式ドキュメント と、本シリーズ「Codexを使いこなすSkillアイデア」の他記事も参照のこと。
関連タグで他のSkill記事を探す
本記事に付いているタグから、気になるテーマの記事を探せます。タグページで関連記事をまとめて読めるので、ぜひチェックしてみてください!
