Codex ユーザーが日常でぶつかる悩み
AI coding workflow を日々活用していると、どうしても作業が単調になりがちです。特に repository understanding や path management、directory 構造の把握に意識を集中していると、気付けば緊張感や集中力が張り詰めたままになり、ちょっとした息抜きやリズムの切り替えが難しいと感じることも。「仕事中なのに、ふとした瞬間に脱力したい」「AI の出力に遊び心が欲しい」と思ったことはありませんか?
- Codex が context を見失って違う場所のコードを参照する
- monorepo で package を跨いだ瞬間、Codex が repo 構造を忘れる
- session を再開すると、前回までの context や path 指定をまるごと再説明しないといけない
- 長時間 workflow で long context が膨らみすぎて、important な情報が薄まる (stale context)
- 「ここはこういう構造のリポジトリ」というあらすじを毎回チャットの冒頭で書く羽目になる
さらに、通知や演出が単調だと、集中力が切れた時のリカバリーも難しくなりがち。そんな時、まったく無意味で意味不明な“謎のOSアップデート進捗バー”が現れたら……?一瞬で肩の力が抜け、気分転換になるかもしれません。
この Skill が一言でいうと何を解決するか
一言サマリ: このスキルは、Codex の作業フロー中に「謎のOSアップデート進捗バー」をランダム表示し、脱力系の演出で気分転換を提供するSkill。
もう少し具体化すると、このSkillを入れることで以下のような状態になる:
- AI coding workflow の途中に、完全に無意味で笑える fake な OS update progress bar が毎回違う内容で出現し、作業の緊張感を一瞬で和らげる
- 毎回ランダムな進捗内容(例:「バグ収穫中」「やる気パッチ適用中」など)が表示され、マンネリ化した context 管理や repository navigation の合間に遊び心が生まれる
- 進捗バーは100%になっても何も起こらず、集中を邪魔しすぎずに自然に消えるため、workflow の流れを損なわない
- onboarding や session 再開時にも、ちょっとした演出でチームや自分の気分を切り替えられる
- Codex の通知・演出系 Skill の中でも、完全に無駄でありながら「これ入れたい」と思わせる脱力感を提供
GitHub から degit でコマンド1行、Codex の Skill ディレクトリに展開できます。Node.js があれば即時に動きます。
npx degit aazutaku/ai-note/codex/random-os-fake-update-progrebar .agents/skills/random-os-fake-update-progrebar実行したらこうなる (3つの利用シーン)
使う側がイメージしやすいよう、擬似 terminal で出力例を3パターン示す。Skill が返す出力は推測だが、現実的なフォーマット・現実的な長さで書く。
シーン1: session 開始時 (プロジェクト初動で)
# /skills menu or random-os-fake-update-progrebar mention
> プロジェクトの初期セットアップを開始
[OSアップデート進捗バー]
───────────────────────────────
進捗: 3% - バグ収穫中...
進捗: 18% - 無意味なファイル整理中...
進捗: 37% - やる気パッチ適用中...
進捗: 62% - 謎の依存関係を追加中...
進捗: 87% - モチベーション最適化中...
進捗: 100% - 何も起きませんでした
───────────────────────────────
シーン2: monorepo / package 跨ぎ作業時
> packages/api/ から packages/web/ に移動
[OSアップデート進捗バー]
───────────────────────────────
進捗: 12% - context リセット中...
進捗: 29% - repository 構造を忘却中...
進捗: 56% - directory 増殖中...
進捗: 81% - 意味不明なパスを検出中...
進捗: 100% - やっぱり何も起きません
───────────────────────────────
シーン3: お遊び的な使い方
> 今日はやる気が出ない...
[OSアップデート進捗バー]
───────────────────────────────
進捗: 9% - 怠惰アップグレード中...
進捗: 33% - 眠気パッチ適用中...
進捗: 68% - サボりモード強化中...
進捗: 100% - 何も変わりませんでした
───────────────────────────────
before / after の違い
| 場面 | Skill 無し | Skill 有り |
|---|---|---|
| session 再開時 | repo 構造から毎回説明、path も指定し直し | Codex が自動で context を復元、最小プロンプトで再開 |
| monorepo 移動 | 違う package のコードを参照しがち | directory boundary を意識して必要な範囲だけ見る |
| 長時間 workflow | long context で重要箇所が薄まる | 意味不明な進捗バーで一瞬リセット、集中力を回復 |
発動方式
明示呼び出し (/skills menu or random-os-fake-update-progrebar mention) と暗黙発動 (description マッチ) の両方に対応。
Skill の中身を全部見せる
.agents/skills/random-os-fake-update-progrebar/ に配置するファイル一覧です。GitHub に push 済みなので、上記の degit コマンドで一発取得できます。
.agents/skills/random-os-fake-update-progrebar/
├── SKILL.md
├── scripts/
│ └── random_os_fake_update_progrebar.py
└── references/
└── design_notes.md
各ファイルの役割
| ファイル | 役割 |
|---|---|
SKILL.md |
Skill本体。frontmatter (name/description) と指示本文。Codex がこの内容をエージェント指示として読み込み、ユーザーのプロンプトに応じて発動します |
scripts/random_os_fake_update_progrebar.py |
謎のOSアップデート進捗バーをランダム表示する演出スクリプト |
references/design_notes.md |
概要 をまとめた参考資料 |
SKILL.md
---
name: random-os-fake-update-progrebar
description: このSkillは、コマンド実行やエディタ操作時など作業の合間に、ランダムな“謎のOSアップデート進捗バー”を端やメニューバー風に表示します。進捗内容は毎回異なり、進捗バーが100%になっても何も起きません。通知・演出・OS連携カテゴリで、脱力系の演出を自動または明示的に発動します。
---
# 機能概要
random-os-fake-update-progrebarは、作業中に突然“謎のOSアップデート進捗バー”を画面端やメニューバー風に表示する演出系Skillです。進捗内容は「バグ収穫中」「やる気パッチ適用中」など完全ランダムで、進捗バーが100%になっても何も起きません。仕事の緊張感を一瞬で脱力させる、100%無駄な通知・演出を提供します。
# 使い方
- 明示呼び出し: `/skills menu` から選択、または `@random-os-fake-update-progrebar` で発動
- 暗黙発動: コマンド実行やエディタの保存・ビルドなど、作業トリガー時に自動表示
- 発動キーワード例: 「進捗」「アップデート」「パッチ」「ビルド」「通知」
# 出力例
```
[OSアップデート進捗] バグ収穫中: [███████-----] 70%
[OSアップデート進捗] 怠惰アップグレード中: [████--------] 40%
[OSアップデート進捗] やる気パッチ適用中: [██████████] 100%
[OSアップデート進捗] 意味不明な最適化中: [███-------] 30%
[OSアップデート進捗] 仕様書の再発明中: [███████-----] 60%
```
# 注意点
- 進捗内容・進捗率は毎回ランダムです
- 100%になっても何も起きません
- 通知は数秒で自動消去され、履歴やローカル保存は行いません
- 本Skillは実用性ゼロの演出専用です
# 参考資料
- [references/design_notes.md](references/design_notes.md) に設計方針・利用例を記載
- 公式Python標準ライブラリ: [random](https://docs.python.org/3/library/random.html), [time](https://docs.python.org/3/library/time.html)
scripts/random_os_fake_update_progrebar.py
import random
import time
import sys
import argparse
FAKE_UPDATE_MESSAGES = [
"バグ収穫中",
"やる気パッチ適用中",
"怠惰アップグレード中",
"意味不明な最適化中",
"仕様書の再発明中",
"無駄な依存関係更新中",
"謎のレジストリ書き換え中",
"気分転換アップデート中",
"レガシーコード復元中",
"メモリリーク拡張中"
]
PROGRESS_BAR_LENGTH = 20
DISPLAY_DURATION = 2.5 # seconds
def generate_fake_update_message():
message = random.choice(FAKE_UPDATE_MESSAGES)
return message
def generate_progress_bar(progress):
filled_length = int(PROGRESS_BAR_LENGTH * progress // 100)
bar = '█' * filled_length + '-' * (PROGRESS_BAR_LENGTH - filled_length)
return f"[{bar}] {progress}%"
def print_progress_bar(message, progress):
sys.stdout.write(f"\r[OSアップデート進捗] {message}: {generate_progress_bar(progress)} ")
sys.stdout.flush()
def show_fake_update():
message = generate_fake_update_message()
progress = 0
increments = random.randint(4, 8)
steps = sorted(random.sample(range(15, 100), increments - 1)) + [100]
prev = 0
for step in steps:
for p in range(prev, step, max(1, (step-prev)//5)):
print_progress_bar(message, p)
time.sleep(random.uniform(0.03, 0.08))
prev = step
print_progress_bar(message, step)
time.sleep(random.uniform(0.1, 0.3))
# Hold at 100% for a moment
time.sleep(DISPLAY_DURATION)
sys.stdout.write("\r" + " " * 80 + "\r")
sys.stdout.flush()
def show_multiple_updates(n=1):
for _ in range(n):
show_fake_update()
def list_fake_messages():
print("利用可能な進捗内容:")
for msg in FAKE_UPDATE_MESSAGES:
print(f"- {msg}")
def main():
parser = argparse.ArgumentParser(
description="謎のOSアップデート進捗バーをランダム表示する演出スクリプト"
)
subparsers = parser.add_subparsers(dest="command")
parser_run = subparsers.add_parser("run", help="進捗バーを1回または複数回表示")
parser_run.add_argument("-n", type=int, default=1, help="表示回数 (デフォルト: 1)")
parser_list = subparsers.add_parser("list", help="利用可能な進捗内容を表示")
args = parser.parse_args()
if args.command == "run":
show_multiple_updates(args.n)
elif args.command == "list":
list_fake_messages()
else:
parser.print_help()
if __name__ == '__main__':
main()
references/design_notes.md
# 概要
このSkillは、作業時に毎回異なる“謎のOSアップデート進捗バー”をランダム表示し、ユーザーの緊張を和らげることを目的としたユーモア系演出スキルです。
# 公式ドキュメント抜粋
Pythonの標準ライブラリ(random, time, argparse, sys)を利用し、外部依存を排除しています。
# 利用例
- コマンド実行やエディタ保存時に自動発動
- `/skills menu` から明示的に呼び出し
- ターミナルで `python random_os_fake_update_progrebar.py run -n 3` など
# 注意点
- 進捗内容・進捗率は完全ランダムで、実際のシステム更新とは無関係です
- 100%になっても何も起きません
- 履歴やログ保存は行いません
# 設計方針
- 冗長な通知を避け、演出は数秒で自動消去
- コマンド/エディタ操作時の脱力系演出として設計
- 拡張性を考慮し、進捗内容リストは容易に追加可能
導入手順
このSkillは GitHub で管理されているので、degit を使えば必要なフォルダだけを1コマンドで取得できます。Codex はファイル配置後に再起動するだけで自動認識します。
1. 前提
- Node.js v16 以上 (
degit実行に必要) - Codex がローカルで動いていること
2. degit でフォルダ取得
プロジェクトのルートで以下のコマンドを実行します。
npx degit aazutaku/ai-note/codex/random-os-fake-update-progrebar .agents/skills/random-os-fake-update-progrebar
.agents/skills/random-os-fake-update-progrebar の中に SKILL.md / scripts/ / references/ / README.md が展開されます。
3. ファイル配置確認
ls .agents/skills/random-os-fake-update-progrebar
# 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 との連携設計はどうあるべきか?
- 進捗バーが作業時に毎回違う内容でランダム表示されるか?
- 100%になっても何も起きないことを確認
- 通知や演出が冗長すぎず、すぐ消えること
実際に Codex で試した検証ログは Codexで謎のOSアップデート進捗バーを出してみた! にまとめる予定 (公開準備中の場合あり)。
あわせて Codex 公式ドキュメント と、本シリーズ「Codexを使いこなすSkillアイデア」の他記事も参照のこと。
関連タグで他のSkill記事を探す
本記事に付いているタグから、気になるテーマの記事を探せます。タグページで関連記事をまとめて読めるので、ぜひチェックしてみてください!
