自分の禁止事項でAIの道具を封じていた — 3回失敗してから気づいた

公開: 2026-09-10
開発日記Claude CodeCodexプロンプトAIエージェント

OpenAIが公式に、Claude CodeからCodexを呼ぶプラグインを出している。 codex-plugin-cc を入れて、記事用の図とキービジュアルをCodexに作らせた。

図は一発で出た。キービジュアルは3回失敗した。 原因はCodexではなく、私が毎回書き足していた禁止事項1行だった。

入れる

マーケットプレイスを追加してインストールし、再読み込みして疎通確認する。

/plugin marketplace add openai/codex-plugin-cc
/plugin install codex@openai-codex
/reload-plugins
/codex:setup

/codex:setup はCodex CLIの有無と認証状態をJSONで返す。CLIが無ければインストールを提案してくる。 入った直後の状態はこうだった。

{
  "ready": true,
  "codex": { "available": true, "detail": "codex-cli 0.154.0" },
  "auth": { "loggedIn": true, "authMethod": "chatgpt" },
  "reviewGateEnabled": false
}

使えるのは /codex:review(通常レビュー)、/codex:adversarial-review(強めのレビュー)、/codex:rescue(詰まったときの委譲)、/codex:transfer(セッション引き渡し)。走らせた仕事は /codex:status/codex:result で回収する。バックグラウンドに投げられる。

図は一発だった

配色と寸法を指定して、SVGで図解を2枚作らせた。

DIAGRAM四角・矢印・テキストの配置 → 1回で成功KEY VISUAL水墨画の人物 → 3回とも失敗同じモデル、同じ日、同じ相手。違ったのは私が付けた条件だけだった。
座標計算で済む図は通り、絵は通らなかった。

図解は座標を決めて属性を書く作業なので、コード生成と同じ土俵になる。ここは強い。

絵は3回失敗した

「二刀流の流浪侍を水墨画タッチで」と頼んだ。

1回目は輪郭が均一な黒いシルエットが出た。にじみもかすれもない影絵だった。 「ベタ塗りをやめろ、筆跡を重ねろ、濃淡をつけろ」と条件を足して2回目。人物が四角いブロックの積み重ねになった。肩、胸、腹、腰が独立した面として並ぶ。 3回目は逃げ道を塞いだ。「rect を使うな。直線コマンド(L/H/V)も使うな。曲線だけで描け。完成したら自分で検証して報告しろ」。

輪郭が溶けた。

このときCodexから返ってきた報告がこれだった。

人物グループの grep -nE '[[:space:]]d="[^"]*[LHVlhv]': 0件
人物グループの <rect>, <polygon>, <polyline>: 0件
XML構文: xmllint --noout 成功

**指示は完璧に守られている。**守った上で溶けている。 ここで私は「Codexは絵が苦手なんだな」と思いかけた。

切り分け

条件を外して投げ直した。注文は1行だけにした。

二刀流の流浪侍を描く

一発で出た。しかも3回かけて言語化しようとしていた「ぼろ布」「濃淡」「動きのある姿勢」が全部入っていた。

原因は3回とも入れていたこの1行だった。

ラスタ画像の埋め込み禁止。すべて手書きのSVG要素で完結させること。

Codexには画像生成ツールが積まれている。1回目の実行時、Codex自身がこう言っていた。

SVGベクター制作なので、ラスタ生成向けのimagegenは使わず、手書きSVG要素で仕上げます。

道具は最初からあった。宣言どおりに封じられていただけだった。

念のためもう一度プラグイン経由で、同じモデル・同じ設定で、禁止事項だけ外して投げた。一発で出て、報告は一行、「生成には組み込み画像生成を使用しました」。

ROUTECONSTRAINTRESULTプラグインSVG手書き強制影絵プラグインSVG手書き強制積み木プラグインSVG手書き強制溶けたプラグインなし一発経路もモデルも固定したまま、制約だけを外した。変わったのは結果のほうだった。
変数を1つずつ潰すと、犯人は自分の書いた1行に絞られた。

危ないと思ったこと

3回失敗する間、私は一度もプロンプトそのものを疑わなかった。疑ったのは指示の細かさで、だから毎回もっと厳密に書いた。条件を積み増すたびに結果は悪くなった。

厄介なのは、Codexが毎回きちんと従っていたことだ。従っていない相手なら気づける。従った上で結果が悪いとき、制約そのものが原因だという可能性は視界に入りにくい。

もしこれが初めてCodexを触った日だったら、「Codexは絵が下手」で終わっていたと思う。ClaudeとCodexの相性が悪いと結論づけた可能性もある。実際は相性でもモデルでもなく、自分が書いた1行だった。

AIの評価は、こうやって簡単に間違う。しかも本人は「試した上で言っている」と思っている。

モデル選びの落とし穴

ついでに1つ。最初 --model spark(軽量モデル)を指定したら400エラーで弾かれた。

The 'gpt-5.3-codex-spark' model is not supported when using Codex with a ChatGPT account.

かといって最上位モデルを高effortで回すと利用枠を一気に消費する。gpt-5.6-sol を低effort、または gpt-5.6-terra を高effortあたりが実用域だった。


出力形式を指定する前に、それが図解なのか絵なのかを切り分ける。手順としてまとめたものは 制約がツールを封じる に置いた。 エージェント側の指示書を1本化する話は 指示書を1本にする にある。

この記事の図はCodexが描いた。キービジュアルもCodexだが、一度手を縛って3回転んでから外している。同じ環境で Valscope も作っている。