Codexで作業中の混沌ジョーク通知を自動演出する使いこなし術

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

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

Codex を日々使っていると、真面目な開発現場にも思わず「あるある」とうなずく小さなストレスが積もります。特に、通知や演出に関する部分で次のような悩みが出がちです。

  • 作業に集中しているとき、突然無機質なエラーや警告だけが表示され、現場の緊張感が高まるばかりで和みがない
  • 長時間の AI coding workflow で、long context や stale context に悩まされ、気分転換のきっかけを見失う
  • monorepo で複数の package をまたぐ作業中、Codex の repository understanding が崩れるタイミングで、何かユーモアある演出が欲しくなる
  • onboarding や session 再開時、毎回同じような説明や path 管理に追われて、作業が単調に感じる
  • たまには理不尽な“OSからのお達し”で現場の空気を和ませたいが、そうした演出は標準では一切ない

こうした状況で、単なる通知ではなく「何これ!?」と思わせるようなジョーク通知が欲しい、と感じたことはないでしょうか。

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

一言サマリ: 作業中に突如“謎のOSパスワードポリシー変更通知”がデスクトップに現れますSkill。

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

  • AI coding workflow の合間に、理不尽かつ無意味なパスワードポリシー通知が現れ、現場の緊張感を一瞬で和ませる
  • Codex の context や repository understanding が切れがちなタイミングで、ネタ通知が入ることで気分をリセットできる
  • monorepo や複雑な directory 構造で path management に疲れたとき、思わぬジョークで作業の雰囲気が変わる
  • onboarding や session 再開時、いつもと違う通知演出で新人やチームメンバーの緊張をほぐせる
  • 通知は完全にフェイクで、本物のパスワードやシステム設定には一切影響しない安心設計
QUICK INSTALL
このSkillをすぐ試す

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

npx degit aazutaku/ai-note/codex/os-random-fake-password-policy-alert .agents/skills/os-random-fake-password-policy-alert

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

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

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


# /skills menu
> os-random-fake-password-policy-alert

【重要通知】本日よりOSパスワードの新ルールが適用されます。
- 必須: 季節の俳句+円周率12桁+好きな給食メニュー
- 注意: 母音だけのパスワードは禁止となりました
- 推奨: パスワードは毎日ランダムに変更し、絶対に記憶しないでください

※この通知は自動生成です。設定変更は一切行われていません。

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


> cd packages/api && code index.ts

【パスワードポリシー変更のお知らせ】
新ルール: 各packageごとに異なるパスワードが必要です。
例: packages/ui → 旧姓+星座+今日の天気
     packages/api → 俳句+誕生日+好きな給食
ご協力をお願いします。

(この通知は冗談です。実際のパスワードには影響しません)

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


> /skills os-random-fake-password-policy-alert

【緊急: パスワード再設定のお願い】
あなたのパスワードが「aiueo」または「123456789012」に該当したため、
本日より「母音だけ」「数字連番」パスワードは禁止となりました。
新しいパスワード例: 春の雨+πの小数点以下+カレーシチュー

(ご安心ください。本物の設定は一切変更されません)

before / after の違い

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

発動方式

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

Skill の中身を全部見せる

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

.agents/skills/os-random-fake-password-policy-alert/
├── SKILL.md
├── scripts/
│   └── fake_password_policy_alert.py
└── references/
    └── design_notes.md

各ファイルの役割

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

SKILL.md

---
name: os-random-fake-password-policy-alert
description: 作業中やコマンド実行時に、偽のOSパスワードポリシー変更通知をランダムまたは定期的に表示します。パスワード、通知、セキュリティ、ジョーク、演出などのキーワードが含まれる場面で発動します。
---

# 機能概要
このSkillは、作業中やコマンド実行時に突然“謎のOSパスワードポリシー変更通知”をデスクトップに表示します。通知内容は「本日よりパスワードは季節の俳句+円周率12桁+好きな給食メニュー必須」など、現実には存在しない理不尽かつユーモラスなルールがランダムで出現。現場の緊張感を一瞬でほぐし、会話や休憩のきっかけとなるジョーク演出を提供します。実際のパスワードや設定には一切影響せず、完全に安全です。

# 使い方
- 明示呼び出し例: `/skills menu` から「os-random-fake-password-policy-alert」を選択、または `$os-random-fake-password-policy-alert` で直接発動。
- 暗黙発動キーワード例: 「パスワード」「セキュリティ」「認証」「通知」「ポリシー」などの単語が含まれる会話やコマンド時。

# 出力例
```
[重要] 本日よりパスワードは「季節の俳句」+「円周率12桁」+「好きな給食メニュー」が必須となります。
[新ルール] 母音だけのパスワードはご利用いただけません。
[推奨] 毎日ランダムにパスワードを変えましょう(記憶は禁止です)。
[注意] パスワードは漢字・数字・給食メニュー・天気予報を含めてください。
[通達] 1日3回以上パスワードを変更してください。
```

# 注意点
- 実際のOSやユーザー設定には一切影響を与えません。
- 通知はローカルPCのデスクトップ通知API(notify-send等)を利用します。
- ログや履歴はデフォルトでは保存されません。
- ネタ通知のため、業務での誤解や混乱を避ける用途でご利用ください。

# 参考資料
- references/design_notes.md に設計方針や利用例を記載
- 公式: https://freedesktop.org/wiki/Software/Notifications/ (デスクトップ通知仕様)

scripts/fake_password_policy_alert.py

import random
import time
import argparse
import sys
import subprocess
from datetime import datetime, timedelta

FAKE_POLICIES = [
    "[重要] 本日よりパスワードは「季節の俳句」+「円周率12桁」+「好きな給食メニュー」が必須となります。",
    "[新ルール] 母音だけのパスワードはご利用いただけません。",
    "[推奨] 毎日ランダムにパスワードを変えましょう(記憶は禁止です)。",
    "[注意] パスワードは漢字・数字・給食メニュー・天気予報を含めてください。",
    "[通達] 1日3回以上パスワードを変更してください。",
    "[警告] 本日からパスワードに干支の名前が必須です。",
    "[必須] すべてのパスワードに3つ以上の季節のフルーツ名を含めてください。",
    "[推奨] パスワードは毎朝6時に自動変更されます。覚えることは禁止です。",
    "[新規則] パスワードの一部に好きなアニメのタイトルを含めてください。",
    "[注意] パスワードは毎回異なる都道府県名を含めてください。"
]

NOTIFY_COMMANDS = [
    ["notify-send", "--version"],
    ["osascript", "-e", "display notification \"test\" with title \"test\""]
]

def is_notify_send_available():
    try:
        subprocess.run(["notify-send", "--version"], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
        return True
    except FileNotFoundError:
        return False

def is_osascript_available():
    try:
        subprocess.run(["osascript", "-e", "display notification \"test\" with title \"test\""])
        return True
    except FileNotFoundError:
        return False

def send_notification(title, message):
    if is_notify_send_available():
        try:
            subprocess.run(["notify-send", title, message])
        except Exception as e:
            print(f"[通知失敗] {e}")
    elif is_osascript_available():
        try:
            osa_cmd = f'display notification "{message}" with title "{title}"'
            subprocess.run(["osascript", "-e", osa_cmd])
        except Exception as e:
            print(f"[通知失敗] {e}")
    else:
        print(f"[通知] {title}: {message}")


def random_policy():
    return random.choice(FAKE_POLICIES)


def log_event(message, logfile=None):
    timestamp = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
    line = f"{timestamp} {message}\n"
    if logfile:
        with open(logfile, 'a', encoding='utf-8') as f:
            f.write(line)
    else:
        print(line, end='')


def list_policies():
    for i, policy in enumerate(FAKE_POLICIES, 1):
        print(f"{i}. {policy}")


def summary():
    print(f"全{len(FAKE_POLICIES)}種類の偽パスワードポリシーが登録されています。\n")
    print("例:")
    for policy in random.sample(FAKE_POLICIES, min(3, len(FAKE_POLICIES))):
        print(f"- {policy}")


def periodic_alert(interval_sec, count, logfile=None):
    for i in range(count):
        policy = random_policy()
        send_notification("OSパスワードポリシー変更", policy)
        log_event(f"通知: {policy}", logfile)
        if i < count - 1:
            time.sleep(interval_sec)


def main():
    parser = argparse.ArgumentParser(description="偽のOSパスワードポリシー変更通知をランダムに表示するスクリプト")
    subparsers = parser.add_subparsers(dest='command')

    parser_alert = subparsers.add_parser('alert', help='1回だけ偽パスワードポリシー通知を表示')
    parser_alert.add_argument('--logfile', type=str, help='通知履歴を保存するファイル')

    parser_periodic = subparsers.add_parser('periodic', help='一定間隔で複数回通知')
    parser_periodic.add_argument('--interval', type=int, default=30, help='通知間隔(秒)')
    parser_periodic.add_argument('--count', type=int, default=3, help='通知回数')
    parser_periodic.add_argument('--logfile', type=str, help='通知履歴を保存するファイル')

    parser_list = subparsers.add_parser('list', help='登録されている偽ポリシー一覧を表示')
    parser_summary = subparsers.add_parser('summary', help='概要とサンプルを表示')

    args = parser.parse_args()

    if args.command == 'alert':
        policy = random_policy()
        send_notification("OSパスワードポリシー変更", policy)
        log_event(f"通知: {policy}", args.logfile)
    elif args.command == 'periodic':
        periodic_alert(args.interval, args.count, args.logfile)
    elif args.command == 'list':
        list_policies()
    elif args.command == 'summary':
        summary()
    else:
        parser.print_help()

if __name__ == '__main__':
    main()

references/design_notes.md

# 概要
このSkillは、現場の緊張感を和らげるために、実際には存在しない理不尽なパスワードポリシー通知をランダムに表示する演出ツールです。通知内容は完全にジョークであり、実際のシステム設定やセキュリティには一切影響を与えません。

# 公式ドキュメント抜粋
デスクトップ通知にはLinuxの`notify-send`やmacOSの`osascript`を利用しています。
- https://freedesktop.org/wiki/Software/Notifications/
- https://ss64.com/osx/osascript.html

# 利用例
- `/skills menu`や`$os-random-fake-password-policy-alert`で明示的に発動
- パスワードやセキュリティ関連の会話時に自動発動
- 業務の合間のリフレッシュやアイスブレイク用途

# 注意点
- 通知はあくまでジョークであり、誤解を生むシチュエーションでは利用を控えること
- ログ保存は明示的に指定した場合のみ
- 通知APIが利用できない環境では標準出力に代替表示

# 設計方針
- 本物の設定やパスワードには一切影響を与えない安全設計
- バリエーション豊富な通知文面で毎回新鮮な演出
- CLIサブコマンドで柔軟に利用可能

導入手順

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

1. 前提

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

2. degit でフォルダ取得

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

npx degit aazutaku/ai-note/codex/os-random-fake-password-policy-alert .agents/skills/os-random-fake-password-policy-alert

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

3. ファイル配置確認

ls .agents/skills/os-random-fake-password-policy-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をコピーしました!
目次