CLAUDE.md/AGENTS.md と既存コードが食い違ったら「コード優先・食い違いは報告」と書いておく
指示ファイルが古くなってコードと矛盾すると、エージェントはほぼ指示ファイルに従う。ユーザー単位の指示に「既存コードを優先し、食い違いは最後に列挙する」と1行足すだけで挙動が変わる。
何が起きるか(紹介された研究より)
- 指示ファイルには「print を使う」、コードは logging へ移行済み、のように矛盾を仕込んだ Python プロジェクト40件で、Claude Code と Codex CLI に機能追加をさせた(計320回)
- 対策なしでは90.1%で指示ファイルが優先された。Claude Code は矛盾に気づいたうえで指示ファイルを選ぶことが多かった
- Codex CLI は一部で、頼まれていない既存コードを指示ファイルに合わせて書き換え、テストを壊した
- 理由の見立て: 指示ファイルは「指示」として、コードは「ツールの出力(読んだ結果)」としてモデルに渡るため、指示の方が重く扱われる
- ユーザー単位の設定に「矛盾したら既存コードを優先」と足すと、コード優先の割合が4.2%→91.4%、テスト通過率が89.4%→100%になったと報告されている
数字は紹介投稿経由のもので、論文本体は未確認。傾向として押さえておく。
書き方
プロジェクトごとではなく、全リポジトリに効く場所(~/.claude/CLAUDE.md、Codex なら ~/.codex/AGENTS.md)に書く。
markdown
- 指示ファイル(CLAUDE.md / AGENTS.md / 仕様書)と既存コードが食い違う場合は、既存コードの挙動を優先する。
- 食い違いを見つけたら黙ってどちらかに寄せず、作業の最後に「どこが・どう違ったか」を列挙して報告する。
- 頼まれた範囲の外を直したくなったら、変更せずに提案だけ書く。3行目は依頼のたびに末尾へ付ける使い方もある。ついでの改善が差分に混ざらず、直すかどうかは提案を読んでから決められる。
注意点
- 「コード優先」は、コードが正しい前提のルール。仕様を先に変えてからコードを追従させる移行期間は、該当リポジトリだけ逆の指示を書く
- 報告された食い違いは、指示ファイルを直すきっかけにする。放っておくと毎回同じ報告が出る
- 関連: Claude Code: /doctor prompt-audit で古い指示を棚卸し、仕様・手順書の曖昧さを「複数回実装させて」検出する
出典
- @keitaro_aigc 2026-10-26(AIDB の紹介から): @keitaro_aigc · 2026-10-26
- @kotteri_ai 2026-10-27(研究の解説): @kotteri_ai · 2026-10-27
- @rai_ai_lab 2026-10-27(範囲外は提案だけ): @rai_ai_lab · 2026-10-27