Codexで作業中に緊急警告を演出する謎スキル活用ガイド

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

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

Codex を使った開発現場では、AI coding workflow の中で「真面目な作業空間」に独特の緊張感が漂いがちです。特に repository understanding や path management に集中していると、ちょっとした気の緩みも許されない雰囲気になることが多いものです。そんなとき、ふとした瞬間に“何か面白い刺激”や“予想外の演出”が欲しくなることはありませんか?
通知・演出・OS連携系の Skill がまだ少ない今、以下のような「あるある」な悩みが浮かびます。

  • 長時間の context 管理や repo 作業で気が抜けず、作業空間が張り詰めすぎてしまう
  • monorepo で directory を跨いでいると、path 指定や repository 構造の説明に疲れる
  • session を再開するたびに、また context を一から積み上げる面倒くささがある
  • AI の通知やアラートが全て「有用」なものばかりで、遊び心や意外性が全くない
  • たまには workflow の緊張をほぐす“無駄な演出”や“理不尽な警告”で笑いたいと思う瞬間がある

こうした悩みは、Codex の repository 理解や context 設計に真剣に向き合うほど強く感じやすいものです。たまには“何の役にも立たない”遊び Skill で、場の空気を和らげてみませんか?

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

一言サマリ: このスキルは、Codex の作業空間に「理不尽なOS風ボスキー警告」という演出を突如発生させ、真面目なAI coding workflowに意外性と笑いをもたらします。

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

  • 緊張感が高まりがちな長時間 workflow や onboarding の場に、突発的な「謎警告」で空気を一変させられる
  • Codex の通知が“有用”一辺倒から、“全く役に立たない理不尽系”も混じることで、作業リズムに変化が生まれる
  • monorepo や複雑な directory 構造の repo でも、関係なくランダムなアラートが出ることで「何が起きるかわからない」面白さを追加
  • AI の context や repository understanding には一切関与しない「潔さ」で、純粋な演出を楽しめる
  • Skill カスタマイズや path management の知識がなくても、配置しておくだけで常に発動を楽しめる
QUICK INSTALL
このSkillをすぐ試す

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

npx degit aazutaku/ai-note/codex/random-os-fake-boss-key-alert .agents/skills/random-os-fake-boss-key-alert

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

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

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


# /skills menu

[OS SYSTEM ALERT]
ボス検知センサーが反応:5秒以内にエディタウィンドウを最小化してください。
警告レベル:MAXIMUM
詳細: repository context の初期化中に上司の気配を検知しました。

[ヒント] 何もしていなくても大丈夫です。念のため、作業内容を見直しましょう。

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


> packages/api/ ディレクトリに移動

[WARNING] OS公式ボスキー警告
現在の directory: packages/api/
上司接近アラート: このパッケージでの作業は安全ですか?
(参考) repository understanding 機能は一時停止されました。

[5秒以内に画面を切り替えることを推奨します]

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


> テストコード修正中

[ALERT] ボス検知システムにより強制通知
理由: 特にありません。ただし、今すぐ手を止めてください。
現在の作業: tests/utils.test.ts の編集
(この警告は完全にランダムです。何も気にせず続けてください)

before / after の違い

場面 Skill 無し Skill 有り
session 再開時 repo 構造から毎回説明、path も指定し直し 突然「ボスキー警告」で場の空気が和らぐ
monorepo 移動 違う package のコードを参照しがち directory 跨ぎのたびに理不尽なアラートが発動
長時間 workflow long context で重要箇所が薄まる workflow の途中で全く意味のない警告が挟まる

発動方式

明示呼び出し (/skills menu or $skill-name mention) と、自然言語の description マッチによる暗黙発動の両方に対応しています。

Skill の中身を全部見せる

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

.agents/skills/random-os-fake-boss-key-alert/
├── SKILL.md
├── scripts/
│   └── random_os_fake_boss_key_alert.py
└── references/
    └── design_notes.md

各ファイルの役割

ファイル 役割
SKILL.md Skill本体。frontmatter (name/description) と指示本文。Codex がこの内容をエージェント指示として読み込み、ユーザーのプロンプトに応じて発動します
scripts/random_os_fake_boss_key_alert.py osascript -e ‘display notification “{message}” with title “Fake Boss Key Alert”‘
references/design_notes.md 概要 をまとめた参考資料

SKILL.md

---
name: random-os-fake-boss-key-alert
description: 作業中やコマンド実行時、OSや作業内容に関係なく、理不尽かつ多様な“ボスキー警告”通知を完全ランダムなタイミングで発動します。通知・演出・OS連携カテゴリの演出系Skillです。
---

# 機能概要
このSkillは、あなたがどんな作業をしていようと、完全に無関係なタイミングで“OS公式風”のボスキー(緊急画面隠し)警告をデスクトップやターミナルに表示します。警告文は「上司接近!5秒以内にウィンドウを隠してください」「ボス検知センサーが反応:現在の画面は安全ですか?」など、理不尽かつ多様な内容がランダムに選ばれます。実際の画面隠し機能は一切実装せず、純粋に緊張感と笑いを演出するだけのSkillです。

# 使い方
- 明示呼び出し例: `/skills random-os-fake-boss-key-alert` または Skillメニューから実行
- 暗黙発動キーワード例: 「警告」「ボス」「隠す」「緊急」「上司」などが含まれる会話やコマンド実行時に自動発動
- 一度有効化すると、以降は作業内容や環境に関係なく、完全ランダムな間隔で警告が表示されます

# 出力例
```
[OS警告] 上司接近!5秒以内にウィンドウを隠してください。
[警告] ボス検知センサーが反応:現在の画面は安全ですか?
[ALERT] 重要作業中に第三者の視線を検知。即時対応推奨。
[警告] 不審な動きが検出されました。ボスキーを押してください。
[OS通知] 画面監視モードが有効になりました。
```

# 注意点
- 本Skillは実際の画面隠しやボスキー機能は一切提供しません。
- ログや履歴はローカルには保存されません。
- 通知は完全にランダムなタイミングで出現し、制御はできません。
- 業務環境での利用は自己責任でお願いします。

# 参考資料
- references/design_notes.md に設計方針や利用例を記載
- 公式URL: https://ai-note.tech/skills/random-os-fake-boss-key-alert

scripts/random_os_fake_boss_key_alert.py

import sys
import argparse
import random
import time
import threading
import os
import platform

BOSS_ALERTS = [
    "[OS警告] 上司接近!5秒以内にウィンドウを隠してください。",
    "[警告] ボス検知センサーが反応:現在の画面は安全ですか?",
    "[ALERT] 重要作業中に第三者の視線を検知。即時対応推奨。",
    "[警告] 不審な動きが検出されました。ボスキーを押してください。",
    "[OS通知] 画面監視モードが有効になりました。",
    "[警告] システムが異常な緊張感を検出しました。",
    "[ALERT] 作業内容が監督者の関心領域に入りました。",
    "[OS警告] ボスキー押下が推奨されています。",
    "[警告] あなたの動作が監視対象となっています。",
    "[ALERT] 画面の安全性が低下しています。"
]

MIN_INTERVAL = 30  # 秒
MAX_INTERVAL = 180  # 秒

class BossKeyAlert:
    def __init__(self):
        self.running = False
        self.thread = None
        self.history = []
        self.lock = threading.Lock()

    def _notify(self, message):
        # ターミナルに出力
        print(message)
        # OS通知も試みる
        try:
            if platform.system() == 'Darwin':
                os.system(f'''osascript -e 'display notification "{message}" with title "Fake Boss Key Alert"' ''')
            elif platform.system() == 'Linux':
                os.system(f'''notify-send "Fake Boss Key Alert" "{message}"''')
            elif platform.system() == 'Windows':
                from win10toast import ToastNotifier
                toaster = ToastNotifier()
                toaster.show_toast("Fake Boss Key Alert", message, duration=5)
        except Exception:
            pass

    def _alert_loop(self):
        while self.running:
            interval = random.randint(MIN_INTERVAL, MAX_INTERVAL)
            time.sleep(interval)
            message = random.choice(BOSS_ALERTS)
            with self.lock:
                self.history.append((time.time(), message))
            self._notify(message)

    def start(self):
        if self.running:
            print("[INFO] Fake Boss Key Alert is already running.")
            return
        self.running = True
        self.thread = threading.Thread(target=self._alert_loop, daemon=True)
        self.thread.start()
        print("[INFO] Fake Boss Key Alert started. Enjoy the random tension!")

    def stop(self):
        if not self.running:
            print("[INFO] Fake Boss Key Alert is not running.")
            return
        self.running = False
        if self.thread:
            self.thread.join(timeout=2)
        print("[INFO] Fake Boss Key Alert stopped.")

    def list_alerts(self, count=10):
        with self.lock:
            history = self.history[-count:]
        for t, msg in history:
            ts = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(t))
            print(f"{ts}: {msg}")

    def summary(self):
        with self.lock:
            total = len(self.history)
        print(f"Total alerts issued: {total}")


def main():
    parser = argparse.ArgumentParser(description='Random OS Fake Boss Key Alert Skill')
    subparsers = parser.add_subparsers(dest='command', help='sub-command help')

    parser_start = subparsers.add_parser('start', help='Start random boss key alerts')
    parser_stop = subparsers.add_parser('stop', help='Stop boss key alerts')
    parser_list = subparsers.add_parser('list', help='List recent boss key alerts')
    parser_list.add_argument('--count', type=int, default=10, help='Number of alerts to show')
    parser_summary = subparsers.add_parser('summary', help='Show alert summary')

    args = parser.parse_args()

    # インスタンスはグローバルで1つだけ
    global_alert = BossKeyAlert()

    if args.command == 'start':
        try:
            global_alert.start()
            while True:
                time.sleep(1)
        except KeyboardInterrupt:
            global_alert.stop()
    elif args.command == 'stop':
        global_alert.stop()
    elif args.command == 'list':
        global_alert.list_alerts(count=args.count)
    elif args.command == 'summary':
        global_alert.summary()
    else:
        parser.print_help()

if __name__ == '__main__':
    main()

references/design_notes.md

# 概要
本Skillは、作業中に完全ランダムなタイミングで“OS公式風”の理不尽な警告を表示することで、緊張感とユーモアを演出します。実用性はありませんが、作業空間の雰囲気を一変させる演出系Skillです。

# 公式ドキュメント抜粋
- osascript (macOS通知)
- notify-send (Linux通知)
- win10toast (Windows通知)

# 利用例
- 長時間の単調な作業中に突如警告が表示され、場の空気が和む
- オンライン勉強会やリモートワークでネタとして活用

# 注意点
- 本Skillは実際の画面隠しやセキュリティ機能は一切ありません
- 通知のタイミングや文面は完全ランダムで制御できません

# 設計方針
- OS標準APIのみを利用し、追加の外部依存を最小限に
- ログや履歴は一時メモリのみで永続化しない設計
- ユーザーの操作や作業内容に依存せず、純粋なランダム性を重視

導入手順

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

1. 前提

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

2. degit でフォルダ取得

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

npx degit aazutaku/ai-note/codex/random-os-fake-boss-key-alert .agents/skills/random-os-fake-boss-key-alert

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

3. ファイル配置確認

ls .agents/skills/random-os-fake-boss-key-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 を取りたい
  • とにかく場の空気を和ませたい時: 理不尽な警告で笑いが欲しいタイミング

気になるポイント (壊れそうな箇所)

実運用に乗せる前に頭に入れておきたい懸念。後で検証する観点でもある:

  • 通知のタイミングが読めない: workflow の流れを遮る可能性がある
  • 理不尽な警告が頻出しすぎる: 真面目な作業中に集中を阻害することも
  • 他の notification Skill と競合: 複数の通知系 Skill を入れると混乱しやすい
  • 環境依存の出力: ターミナルやエディタによって警告表示の見え方が異なる
  • Codex 固有の引っかかり: description のセマンティックマッチ精度が要件次第
  • 発動しないケース: description が漠然 / 他の Skill が優先 / git管理外 directory

試す前に確かめたいこと

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

  • 通知が本当にランダムタイミングで出るか?
  • 警告文が十分に理不尽かつ多様か?
  • 実際の workflow や repository 構造、作業内容に関係なく発動するか?
  • 他の通知系 Skill との干渉や競合は起きないか?
  • 長時間 session でも通知頻度や内容が stale にならないか?

実際に Codex で試した検証ログは Codexで謎のボスキー警告をランダムに出してみた! にまとめる予定 (公開準備中の場合あり)。
あわせて Codex 公式ドキュメント と、本シリーズ「Codexを使いこなすSkillアイデア」の他記事も参照のこと。

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

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

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

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