Claude Opus 5でルールが崩壊する理由と完全対策ガイド【CLAUDE.md見直し手順付き】
Claude Opus 5でルールが崩壊する理由と完全対策ガイド【CLAUDE.md見直し手順付き】
はじめに:「同じルールなのに、なぜ思考が浅くなったのか」
Claude CodeをOpus 5に切り替えた直後、奇妙な変化に気づいたとしたら、あなたは正しい問題を見ています。
「昨日まで完璧に動いていたルールが、今日から機能しなくなった」——これはモデルのバグでも、あなたの設定ミスでもありません。Opus 5の内部設計が根本から刷新されたことで、旧モデル向けに書かれたルールファイルが構造的に機能しなくなるのです。
具体的な症状としては、レスポンスが見出しや分類のないフラットな文章になる、原因分析が表面的で単層止まりになる、複数の選択肢を提示するものの評価軸や優先順位がつかない、といったケースが報告されています。同じCLAUDE.mdを使い続けているのに、思考の「深さ」が明らかに落ちた——そう感じた開発者は少なくありません。
この記事では、何が起きているのか・なぜ起きるのか・どう対処するのかを、技術的な根拠とともに段階的に解説します。対象読者はClaude CodeおよびCLAUDE.mdを日常的に活用している開発者の方々です。
1. Opus 5のシステムプロンプトに何が起きたのか
1-1. Anthropicが公式に認めた「80%削減」の衝撃
2026年7月24日、Anthropic社のMTS(Member of Technical Staff)であるThariq Shihiparが、Claude CodeのシステムプロンプトをOpus 5向けに80%以上削減したことを公式にアナウンスしました。
驚くべきは、この大幅な削減が「コーディング評価において測定可能な損失なし」で実現されたという点です。つまり、プロンプトを大量に削除しても、モデルのコーディング性能は落ちなかった。これは何を意味するのでしょうか。
答えはシンプルです。モデルが賢くなるほど、明示的な指示は不要になる。旧モデルでは「答えを再確認しろ」「ステップごとに整理して考えろ」という指示が必要でしたが、Opus 5ではそれらをモデル自身が自律的に実行するようになりました。プロンプトの肥大化は、モデルの能力不足を補うための代替手段だったのです。
1-2. 設計思想の6つのシフト
Opus 5への移行で起きた設計思想の変化は、大きく6つのシフトとして整理できます。
① 厳格なルール → 判断ベース 「コメントを書くな」という禁止指示が「周囲のコードに合わせろ」という判断委譲に変わりました。モデルがコンテキストを読んで自己判断するため、硬直的な禁止ルールは不要になっています。
② 詳細な例示 → インターフェース設計への依存 「こう書け」という具体例の羅列から、実装構造そのものが指示として機能する設計に移行しました。
③ 重複指示の統合 システムプロンプトとツール説明に散在していた重複指示が統廃合されました。同じことを2箇所に書く必要がなくなっています。
④ 事前情報提供 → 段階的開示(Progressive Disclosure) すべての情報を最初に与えるのではなく、スキル経由で必要なときに必要な情報を提供するアーキテクチャに変わりました。
⑤ マークダウン仕様 → コード・テストスイート参照 フォーマット指示をプロンプトで書くのではなく、実際のコードやテストスイートを参照させる方針に転換しました。
⑥ 手動CLAUDE.md管理 → auto-memory(自動メモリ) ユーザーが手動でCLAUDE.mdを管理する運用から、自動メモリ機能による動的な情報管理へのシフトが進んでいます。
1-3. 旧モデルとの互換性が壊れる仕組み
ここが核心です。旧モデル向けのCLAUDE.mdは、「Anthropic本体のシステムプロンプトが詳細なレスポンス形式指示を提供している」という前提のもとに書かれていました。
しかし、Opus 5ではその前提がなくなりました。本体プロンプトが80%削減されたことで、ユーザーのCLAUDE.mdが依存していた「土台」が消えたのです。
さらに問題なのは、「前提が消えた指示」は無害ではないという点です。本体プロンプトが実行していた処理をCLAUDE.mdでも指示していると、Opus 5では二重処理が発生します。これがトークンの無駄遣いにとどまらず、モデルの挙動を不安定にさせる原因になります。
2. ルール崩壊の診断・特定方法
2-1. 崩壊を示す5つの典型症状
ルールが機能していない状態を見分けるには、以下の症状を確認します。
- レスポンスのフラット化:見出しや分類のない、単調な文章が続く
- 単層分析:「なぜ?」を深掘りする構造がなく、表面的な回答で止まる
- 評価軸の欠如:複数案を提示するが、どれを選ぶべきかの基準を示さない
- 分類の不安定性:前ターンで設定した構造が次ターンで突然崩れる
- 前置きなし実行:ユーザーへの確認・返答より先に作業を開始してしまう
これらが複数見られる場合、ルールファイルとOpus 5の間に構造的な不整合が生じている可能性が高いです。
2-2. 原因の切り分け:モデル変更 vs ルール記述の問題
症状が確認できたら、次のステップで原因を特定します。
確認手順①:同じCLAUDE.mdを使い、旧モデル(Claude Opus 4.8等)で同じタスクを実行してみます。旧モデルで正常に動作するなら、原因はルールの記述ではなく、モデル本体プロンプトの変化にあると断定できます。
確認手順②:ルールなしの素のOpus 5と比較します。CLAUDE.mdありの状態よりも素のOpus 5の方が自然に動作するようであれば、現行のルールがOpus 5の動作を妨げている「逆効果ルール」になっている可能性があります。
この2ステップで「旧モデルでは正常、素のOpus 5でも自然」という結果が出た場合、答えは明確です。CLAUDE.mdを書き直す必要があります。
2-3. claude doctor による自動診断
Claude Code CLIには、claude doctorという診断コマンドが追加されています。このコマンドを実行すると、現在のCLAUDE.mdを自動スキャンし、Opus 5と相性の悪いパターンを検出してくれます。
古い形式の指示や過剰なトークンを消費する記述を自動で特定し、リサイズの提案まで行う機能を持っています。CLAUDE.mdの見直しを始める前に、まずこのコマンドで診断レポートを取得することを強くお勧めします。
3. モデル更新時のルールファイル見直し手順
3-1. 「削除ファースト」の原則
CLAUDE.mdの見直しは「何を追加するか」ではなく「何を削除するか」から始めます。これがOpus 5対応の大原則です。
Opus 5が自動的に実行する検証系指示は、CLAUDE.mdから即座に削除すべきです。具体的には以下のような指示が削除対象になります。
- 「答えを出す前に必ず再確認しろ」
- 「ステップごとに整理してから回答せよ」
- 「複数の視点から検討してから判断しろ」
これらはすべてOpus 5が内部処理として自動実行しています。同じ指示をCLAUDE.mdにも書いておくと、Opus 5は二重で処理しようとし、挙動が不安定になります。削除しないことで起きるのは「保険」ではなく「二重処理・トークン浪費・挙動不安定化」の三重苦です。
3-2. 禁止指示から条件付き指示への書き換え
「〜するな」形式のルールは、Opus 5では意図通りに機能しにくくなっています。代わりに「〜のとき、○○を書く」という条件付き指示に書き換えます。
Before/After 対比の例:
| Before(旧モデル向け) | After(Opus 5向け) |
|---|---|
| 「不要なコメントを書くな」 | 「既存コードにコメントがある場合のみ、同じスタイルでコメントを追記する」 |
| 「長い回答を書くな」 | 「質問が単一の事実確認の場合、回答は3行以内にまとめる」 |
| 「推測で回答するな」 | 「情報が不十分な場合、不明点を列挙してから回答する」 |
この書き換えにより、ルールの発火条件が明確になり、Opus 5の判断能力を活かしつつ望ましい動作を誘導できます。
3-3. 発火条件を「観測可能な事実」で記述する
曖昧なトリガーはOpus 5で誤発火します。「判断して対応しろ」という指示は、Opus 5が独自の判断基準で動作するため、意図しないタイミングでルールが適用されてしまいます。
発火条件は、モデルが客観的に観測できる事実として記述してください。
- ❌ NG:「複雑な問題のとき、構造化して答えろ」
- ✅ OK:「コードブロックが2つ以上含まれているとき、見出しで分類して整理する」
「複雑」という判断はモデルに委ねられますが、「コードブロックが2つ以上」はモデルが客観的に確認できる事実です。この違いがOpus 5の動作安定性に直結します。
3-4. 指示の「層」と優先順位の再設計
CLAUDE.mdだけに依存する構成は、Opus 5では限界があります。指示には優先度の「層」があり、それぞれの特性を理解した上で使い分ける必要があります。
| 優先度 | レイヤー | 特徴 |
|---|---|---|
| 最強 | 本体 system prompt | 変更困難・Anthropic管轄 |
| 高 | UserPromptSubmit hook | 毎ターン注入・最も確実 |
| 低 | CLAUDE.md / 常時ルール | 行動から最遠・効果が薄い |
特に注目すべきはUserPromptSubmit hookです。ユーザーがプロンプトを送信するたびに自動で指示を注入するこの仕組みは、CLAUDE.mdよりも確実にOpus 5の動作に影響を与えます。
「絶対に守ってほしい」という重要度の高い指示は、CLAUDE.mdではなくUserPromptSubmit hookに移すことを検討してください。CLAUDE.mdは「行動の背景情報」や「プロジェクト固有のコンテキスト」を置く場所として再定義するとよいでしょう。
4. Opus 5向けの最適なプロンプト設計
4-1. 応答長の制御:effortと明示指示の使い分け
Opus 5にはeffortパラメータ(low / medium / high)が存在しますが、これは思考量(推論深度)を制御するパラメータであり、応答長には影響しません。ここは多くの開発者が誤解しているポイントです。
応答を短くしたい場合は、effort: lowを設定するだけでなく、「簡潔に3行以内で答えてください」のように応答長を明示的に指定する必要があります。
また、lowやmediumのeffortでも十分な品質が出るタスクは数多くあります。コスト最適化の観点から、タスクごとにeffortレベルを見直す習慣をつけると、品質を維持しながらトークンコストを大幅に削減できます。
4-2. Opus 5の「自己拡張」傾向への対策
Opus 5の強力な能力の裏側に、タスクのスコープを自動的に拡張する傾向があります。「このファイルを修正して」と指示しただけで、関連ファイルを次々と改修し始めるケースが報告されています。
これを防ぐには、「依頼した範囲のみ実施すること。関連する改善が必要と判断した場合でも、先に提案として報告してから実施すること」という制約をプロンプトに明記することが有効です。
また、Opus 5はサブエージェントを積極的に生成する傾向もあります。大規模タスクでは並列処理が高速化に寄与しますが、コストが予期せず増大するリスクがあります。サブエージェント数の上限を明示的に指定するキャップ設定を忘れないようにしましょう。
4-3. thinkingの扱い:無効化より低effortを選ぶ理由
「レスポンスを軽くしたい」という動機からthinkingを無効化(thinking: disabled)しようとするケースがありますが、これには注意が必要です。
Opus 5でthinkingを完全にオフにすると、モデルの内部処理で生成されるXMLタグがレスポンスに漏洩するリスクがあることが報告されています。`
関連記事
Claude CodeをOpus 5に切り替えたら思考が浅くなった?System Prompt 80%削減の真相と3つの対策
Opus 5でClaude CodeのSystem Promptが約80%削減された理由と影響を解説。思考品質低下の原因メカニズムを診断し、優先宣言・望ましい動作記述・UserPromptSubmit Hookの3つの具体的対策を紹介します。
ultrawork一発で8並列!oh-my-openagentが変えるマルチエージェントオーケストレーションの世界【Claude Code・OpenCode対応】
oh-my-openagentのultraworkコマンドで8並列エージェントを一発起動。マルチエージェントオーケストレーションの基礎からClaude Code・OpenCode対応の実践的な活用方法まで徹底解説。