2月27日のセキュリティ監査で事故が起きた。Codex(OpenAIが作ったコーディング専用AI)でコードを監査させるとき、本来使うべき最新モデル gpt-5.3-codex ではなく、古い o4-mini というモデルで実行してしまった。
設定ファイルには gpt-5.3-codex と書いてあったのに、手動でモデルを切り替えながら試しているうちに間違えた。コミット(変更の記録)にも「o4-mini」と残ってしまっている。
「次から気をつける」では再発する。仕組みで防ぐのが正解。
スキル(AIへの指示書)を1つ作って、Codex の呼び出し方を標準化する。「Codex でレビューして」と言ったら、このスキルが自動で正しいモデルを指定してくれる。
-c model=-c(--config の略)は、Codex CLI の設定を一時的に上書きするフラグ。設定ファイル(config.toml)に書いてある値を、そのコマンドだけ変更できる。
例: codex review --uncommitted -c model="gpt-5.3-codex"
なぜ -m ではなく -c なのか? codex review コマンドには -m フラグが存在しない。モデル指定は必ず -c model="..." を使う必要がある。これは公開スキルの調査でも確認済み(BenedictKing/codex-review、17,200スター)。
Codex CLI は利用可能なモデルの一覧を models_cache.json(モデル情報のキャッシュファイル)に保存している。各モデルには説明文がついていて、最新モデルだけ "Latest" という印が入っている。
スキルはこのファイルを読んで「今の最新は何か」を自動で判定する。だから新しいモデルがリリースされても、スキルの書き換えは不要。
| モデル名 | 説明文(抜粋) |
|---|---|
gpt-5.3-codex | Latest frontier agentic coding model |
gpt-5.2-codex | Frontier agentic coding model(Latest なし=旧版) |
公開されている6つのスキルを調査した。そこから「本質だけ」を盗んで、余計なものは捨てる(YAGNI原則)。
| 盗む要素 | 出典(スター数) | なぜ必要か |
|---|---|---|
| モデル指定方法 | BenedictKing(17.2k) | -c model=(設定の一時上書き)が最も安定した指定方法だった |
| コンテキスト分離 | BenedictKing | レビュー結果が会話のトークン(処理容量)を圧迫しない |
| 繰り返し上限 | daffy0208(53) | 修正→再レビューの無限ループを防止(最大2回) |
捨てたもの: 変更規模による自動難易度切り替え(3段階)、CHANGELOG自動更新、言語判定によるLint自動実行 — どれも今の使い方には過剰だった。
作るファイルは1つだけ。 ~/.claude/skills/codex-review/SKILL.md を新規作成するのみ。
別モデルを使いたい場合は? 明示的に指定すれば上書きできる。ただし「デフォルトではないモデルを使用中」と警告が出る。意図的な切り替えは許容しつつ、うっかりミスだけ防ぐ設計。
CLAUDE.md の「Codex は別ターミナルで実行する」ルールとの整合: codex review(レビュー専用コマンド)は対話不要なので、Bash から直接実行しても問題ない。対話型のセッションは従来通り別ターミナルで。