Codexで謎の進捗バー演出を活用して作業に非日常感をプラスする方法

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

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

日々の開発現場でCodexを活用していると、真面目な作業ばかりが続いて思わず肩が凝る瞬間がある。特に「AI coding workflow」を長時間維持していると、集中力が途切れがちだったり、マンネリ感が漂ったりするのは多くのユーザーが共感するところだろう。時には「ちょっとした脱力感」や「非日常の演出」が欲しくなる場面もあるはずだ。
また、通知や演出系Skillの活用を考える際、以下のような困りごとが挙げられる:

  • Codexがcontextを見失い、突然違う場所のコードを参照し始めて「またか…」と気が抜ける
  • monorepoでpackageを跨いだ瞬間、Codexがrepoやdirectory構造を忘れてしまい、説明し直す手間が発生する
  • sessionを再開するたびに、前回までのcontextやpath指定をまるごと再説明しないといけない
  • 長時間AI coding workflowが続くと、long contextが膨らみすぎてimportantな情報が埋もれてしまう
  • 「このrepoはこういう構造」という要旨を毎回チャット冒頭で書く羽目になり、気分転換もないまま進行する

こうした「集中と緊張の連続」に、あえて強制的に“謎の非日常”を差し込むことで、気分転換や場の空気を和らげる演出が欲しいと感じることも多い。

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

一言サマリ: このスキルは、作業中に突然「謎のOSアップデート進捗バー」を表示し、理不尽かつ意味不明な進捗で脱力感と非日常を演出するSkill。

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

  • 緊張感の続くAI coding workflowの合間に、意図的に脱力系イベントを挟み、気分転換やリフレッシュができる
  • 進捗内容が毎回ランダムかつ意味不明なので、日常のルーチンに“非日常感”を演出し、オンボーディングや長時間作業の間延びを防ぐ
  • repoやdirectory管理に追われる単調な作業の中で、突然現れる理不尽な進捗バーが“笑い”や“ゆるさ”をもたらす
  • 通知・演出Skillとして、作業や本番環境には一切影響せず安全に利用できる
  • Codexのcontextやmemory管理の合間に、遊び心ある体験を追加できる
QUICK INSTALL
このSkillをすぐ試す

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

npx degit aazutaku/ai-note/codex/random-os-fake-mysterious-update-progress .agents/skills/random-os-fake-mysterious-update-progress

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

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

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


# /skills menu or random-os-fake-mysterious-update-progress
> 謎のアップデート進行バーを表示

[OS Update: 未知の言語パッチ適用中]
[==========>               ] 37%
進捗内容: "ZK-Protocolモジュールを再暗号化中"
...
[OS Update: 未知の言語パッチ適用中]
[=============>            ] 55%
進捗内容: "レガシーキーボード最適化中"
...
[OS Update: 未知の言語パッチ適用中]
[==========>               ] 42% (逆戻り)
進捗内容: "幻のファイルシステムを検出"
※この進捗バーは現実の更新とは無関係です

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


> monorepoのpackages切り替えタイミングで発動

[OS Update: 仮想デバイス同期中]
[=======================>   ] 92%
進捗内容: "パッケージ 'core-utils' の謎依存関係を同期"
...
[OS Update: 仮想デバイス同期中]
[=========================> ] 99%
進捗内容: "未知のバイナリを再構築中"
...
[OS Update: 仮想デバイス同期中]
[=====================>     ] 87% (逆戻り)
進捗内容: "パッケージ 'legacy-support' で未定義エラー発生"
進捗バーが止まりました。お待ちください...

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


> 気分転換に進捗バーを出して

[OS Update: 超次元アップデート]
[===>                       ] 12%
進捗内容: "宇宙規模のタイムスタンプを調整中"
...
[OS Update: 超次元アップデート]
[========================>  ] 97%
進捗内容: "ブラックボックスの中身を探索中"
...
[OS Update: 超次元アップデート]
[=========================> ] 99%
進捗内容: "次元の壁を突破中"
...進捗バーが永遠に99%で止まっています

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-mysterious-update-progress/ に配置するファイル一覧です。GitHub に push 済みなので、上記の degit コマンドで一発取得できます。

.agents/skills/random-os-fake-mysterious-update-progress/
├── SKILL.md
├── scripts/
│   └── fake_update_progress.py
└── references/
    └── design_notes.md

各ファイルの役割

ファイル 役割
SKILL.md Skill本体。frontmatter (name/description) と指示本文。Codex がこの内容をエージェント指示として読み込み、ユーザーのプロンプトに応じて発動します
scripts/fake_update_progress.py 謎のOSアップデート進捗バーを表示します
references/design_notes.md 概要 をまとめた参考資料

SKILL.md

---
name: random-os-fake-mysterious-update-progress
description: 作業中やコマンド実行時に「謎のOSアップデート進行中」風の進捗バーを、意味不明なメッセージとともにランダム表示します。明示的な呼び出し(/skills menuやrandom-os-fake-mysterious-update-progressのメンション)、または“アップデート”“進捗バー”などのキーワードを含む会話で発動します。
---

# 機能概要
このSkillは、作業中に突如「謎のOSアップデート進行中」風の進捗バーをターミナルやチャットに表示し、非日常感や脱力感を演出します。進捗内容は「未知の言語パッチ適用中」「レガシーキーボード最適化中」など毎回意味不明で、進捗バーも理不尽に逆戻りしたり99%で止まったりします。作業の緊張感を和らげ、エンタメ要素を加える用途に最適です。

# 使い方
- 明示呼び出し例:
  - `/skills menu` から選択
  - `$random-os-fake-mysterious-update-progress` をメンション
- 暗黙発動キーワード例:
  - 「アップデート」「進捗バー」「OS更新」「謎のパッチ」などの単語を含む会話中

# 出力例
```
[  7%] 未知の言語パッチ適用中...
[ 25%] レガシーキーボード最適化中...
[ 12%] ファイルシステムの逆最適化中...
[ 42%] メモリの謎領域を拡張中...
[ 99%] 進捗状況を再計算中...
[ 88%] 進捗が巻き戻りました...
[ 99%] 未知のプロトコルを初期化中...
```

# 注意点
- 実際のシステムやファイルには影響を与えません
- 本Skillは演出目的のため、実作業や本番環境の進行状況とは無関係です
- ローカル保存や通知機能はありません

# 参考資料
- references/design_notes.md を参照
- 公式Pythonドキュメント: https://docs.python.org/3/library/random.html
- 進捗バー演出例: https://github.com/tqdm/tqdm

scripts/fake_update_progress.py

import sys
import time
import random
import argparse

FAKE_MESSAGES = [
    "未知の言語パッチ適用中",
    "レガシーキーボード最適化中",
    "ファイルシステムの逆最適化中",
    "メモリの謎領域を拡張中",
    "進捗状況を再計算中",
    "未知のプロトコルを初期化中",
    "セキュリティホールを開放中",
    "タイムゾーンを無効化中",
    "仮想デバイスを物理化中",
    "カーネルパニックを模倣中",
    "レガシーAPIを最新化中",
    "無限ループの最適化中",
    "謎のバイナリを展開中",
    "メタデータを消去中",
    "OSの気分を変更中"
]

PROGRESS_GLITCHES = [
    (99, 88),  # 99%から逆戻り
    (42, 12),  # 42%から巻き戻し
    (75, 60),  # 75%からダウン
    (33, 25),  # 33%から逆行
]

MAX_STEPS = 20

def random_message():
    return random.choice(FAKE_MESSAGES)

def glitch_progress(progress):
    for from_p, to_p in PROGRESS_GLITCHES:
        if progress == from_p:
            return to_p
    return progress

def generate_progress_sequence():
    steps = []
    progress = 0
    used_glitches = set()
    while progress < 100:
        if progress < 90:
            step = random.randint(5, 20)
        else:
            step = random.randint(1, 3)
        next_progress = min(progress + step, 100)
        # 99%で止まる
        if next_progress > 99:
            next_progress = 99
        # グリッチ適用
        for from_p, to_p in PROGRESS_GLITCHES:
            if next_progress == from_p and from_p not in used_glitches:
                steps.append((from_p, random_message()))
                steps.append((to_p, "進捗が巻き戻りました..."))
                used_glitches.add(from_p)
                progress = to_p
                continue
        steps.append((next_progress, random_message()))
        progress = next_progress
        if progress == 99:
            # 99%で止まる
            break
    return steps

def show_progress_bar():
    sequence = generate_progress_sequence()
    for percent, msg in sequence:
        bar = '[' + '{:3d}%'.format(percent) + ']'
        print(f"{bar} {msg}...")
        # 99%で長く止まる
        if percent == 99:
            time.sleep(2.5)
        else:
            time.sleep(random.uniform(0.3, 1.1))

def list_messages():
    print("== ランダム進捗メッセージ一覧 ==")
    for m in FAKE_MESSAGES:
        print(f"- {m}")

def summary():
    print("random-os-fake-mysterious-update-progress: 謎の進捗バーを演出します。\n")
    print("主な特徴:")
    print("- 進捗内容は毎回ランダムかつ意味不明")
    print("- 進捗バーは途中で逆戻りしたり、99%で止まります")
    print("- 実際のOSやファイルには一切影響しません")
    print("- エンタメ・脱力系用途に最適")

def main():
    parser = argparse.ArgumentParser(description="謎のOSアップデート進捗バーを表示します")
    subparsers = parser.add_subparsers(dest='command')

    parser_run = subparsers.add_parser('run', help='謎の進捗バーを表示')
    parser_list = subparsers.add_parser('list', help='進捗メッセージ一覧')
    parser_summary = subparsers.add_parser('summary', help='Skill概要')

    args = parser.parse_args()

    if args.command == 'run' or args.command is None:
        try:
            show_progress_bar()
        except KeyboardInterrupt:
            print("\nアップデートが中断されました。現実世界には影響ありません。")
    elif args.command == 'list':
        list_messages()
    elif args.command == 'summary':
        summary()
    else:
        parser.print_help()

if __name__ == '__main__':
    main()

references/design_notes.md

# 概要
このSkillは、作業中に「謎のOSアップデート進行中」風の進捗バーを表示し、非日常感や緊張緩和、ちょっとした笑いを提供するエンタメ系演出を目的としています。

# 設計方針
- 進捗内容は毎回ランダムかつ意味不明なメッセージを生成
- 進捗バーの挙動は理不尽(逆戻り、99%で止まる等)を必ず含む
- 実際のシステムやファイルには一切影響しない安全設計
- CLIサブコマンドで「run」「list」「summary」を提供し、用途に応じて使い分け可能

# 利用例
- チームの雑談や作業の合間に、ターミナルやチャットで実行
- 本番環境や重要な作業の進捗とは無関係な演出用途

# 公式ドキュメント抜粋
- Python random: https://docs.python.org/3/library/random.html
- tqdm(進捗バー演出例): https://github.com/tqdm/tqdm

# 注意点
- 本Skillはあくまで演出目的であり、実際のアップデートや進捗管理には利用できません。
- ログや進捗履歴の保存機能はありません。

導入手順

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

1. 前提

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

2. degit でフォルダ取得

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

npx degit aazutaku/ai-note/codex/random-os-fake-mysterious-update-progress .agents/skills/random-os-fake-mysterious-update-progress

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

3. ファイル配置確認

ls .agents/skills/random-os-fake-mysterious-update-progress
# 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 との連携設計はどうあるべきか?
  • 進捗内容が毎回ランダムかつ意味不明であること
  • 進捗バーの挙動が理不尽(逆戻り、99%で止まる等)になっているか
  • 通知・演出が本番環境や作業に影響を与えないこと

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

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

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

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

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