Codexが「方針職人モード」になってコードを書かないときの対処法
AI にコード修正を任せることが当たり前になりつつある中で、「方針は立派なのに、実際にはコードが1行も変わらない」という体験をしたことはないでしょうか。
今回、まさにそれを体験しました。
仕様に合わせるため、コード全体に影響する大規模なリファクタリングが必要になり、Codex に修正を指示しました。しかし返ってくるのは、
- 方針の説明
- 注意点の列挙
- 「この環境では難しい」という前置き
ばかりで、実ファイルは一切更新されない状態が続きました。
この記事では、こうした「修正方針や注意点は丁寧に説明するが、実際のコード変更やコマンド実行を行わない状態」を 「方針職人モード」 と呼び、そのとき何が起きていたのか、そして 自分の環境ではどう対処したかを整理します。
※なお、ここで書く内容はあくまで私の環境での結果であり、同じ方法が必ず再現するとは限りません。
問題が発生した状況
今回「方針職人モード」と呼ぶ状態が発生したとき、Codex に指示していた作業内容は次のようなものでした。
- 仕様書に合わせるための修正が必要だった
- 修正範囲は一部ではなく、コード全体に影響する
- 既存構造の見直しを含む、大規模なリファクタリング
- 修正後はテスト実行まで行い、動作確認する前提
単なる関数追加や軽微な修正ではなく、
「考えるだけでなく、実際に手を動かして検証まで進める必要がある作業」です。
人手で進めると時間がかかるため、この作業を Codex に任せる判断をしました。
日常的な小規模修正では問題なく使えていたこともあり、
この規模でも対応できるだろう、という見込みがありました。
普段使っていた設定
日常的な開発では、以下の設定を使っていました。
- モデル:GPT-5.1-codex-mini
- リソース:Medium
理由は単純で、トークン節約です。
この構成でも、
- 小規模な修正
- 関数単位の変更
- ロジックの確認や補助
といった用途では十分に実用的で、特に問題を感じていませんでした。
発生した問題:「方針職人モード」
しかし今回のような修正では、Codexの挙動が明らかに違いました。
- 修正内容の説明は非常に丁寧
- 全体方針も筋が通っている
- しかし コマンドを実行しない
- ファイルを一切書き換えない
この「方針や考え方は示すが、手は動かさない」状態を、この記事では 「方針職人モード」 と呼びます。
重要なのは、権限不足ではなかったという点です。
ターミナル上では、最初から実ファイルを変更できる設定になっていました。
なぜ方針職人モードに入ったのか(推測)
ここからは推測になりますが、状況を整理すると次のように考えています。
- 修正規模が大きい
- テスト実行も含めると処理が重い
- モデルは軽量版(mini)
- リソースも Medium に制限されている
この条件下で Codex が、
「この環境では最後までやり切れない可能性が高い」
「中途半端に触るより、方針提示に留めた方が安全」
と判断し、実際のコード更新をあきらめていた可能性があります。
これはバグというより、過度に慎重な自己判断に近い挙動に見えました。
試した対処:モデルとリソース設定の変更
そこで、次のように設定を変更しました。
- モデル:GPT-5.2 (GPT-5.2-Codexあたりの方が良いかも)
- リソース:High
すると挙動が一変しました。
- 段階的に修正を開始
- 実際にファイルを書き換える
- コマンドを実行し、テストまで進める
それまで止まっていた作業が、普通に前に進み始めたのです。
この結果から言えること/言えないこと
言えること:
- 私の環境では、モデルとリソース設定を変更したことで方針職人モードから抜け出せたように見えた
言えないこと:
- これが唯一の原因だったかどうか
- 他の人の環境でも必ず再現するかどうか
あくまで、「設定変更前後で挙動が大きく変わった」という
観測事実がある、というだけです。
同じ状況に遭遇したときのヒント
もし、
- Codexが方針だけ出して止まる
- コードがまったく更新されない
- 権限や設定には問題がなさそう
という状況に遭遇した場合、
- モデルを一段階上げてみる
- リソース設定を増やしてみる
というのは、試す価値のある対処だと思います。
特に、大規模リファクタリングや重いテストを伴う場合は、
トークン節約向けの設定が逆に足を引っ張る可能性もあります。
まとめ:AIにも「作業できる前提条件」がある
今回のケースでは、Codexがいわゆる「方針職人モード」に入り、
方針は示すもののコードは更新されない状態になっていました。
私の環境では、モデルとリソース設定を見直したことで
その状態から抜け出せたように見えましたが、
これが汎用的な解決策かどうかは分かりません。
ただ、同じような状況に遭遇した場合、
設定を見直すことは一つの手がかりになるかもしれません。