メインコンテンツへスキップ
見出し画像

【2026年10月9日現在】Claude 5.5時代の「CLAUDE.md」最新ベストプラクティス —— 200行制限・Hooks強制・安くて強いモデル使い分け術

    ClaudeのOpus・sonet・Haikuそれぞれの5.5が出ましたねー。
    いつFable5.5が出るんでしょうかね?

    で、一応現時点での整理の意味合いで調べてみたやつです。
    わたしは基本Claude.mdは30~50行程度、必要なことは全部渡す資料に乗せる感じにいてるのでスッカスカなんですけども。

    現状の最適解くらい、知っておきたいじゃないですか?

    Claude 5.5 シリーズ(Opus 5.5 / Sonnet 5.5 / Haiku 5.5)が相次いで登場し、AIコーディング環境は大きな転換点を迎えました。

    コンテキストウィンドウは全モデルで 100万トークン へ拡張され、思考プロセスを自律制御する Adaptive Thinking や、思考の深さを決める `effort` パラメータ、最小単位が512トークンに縮小された 新プロンプトキャッシュ体系、そして 27種類におよぶHooks や Skills の刷新など、内部仕様は激変。

    画像

    それにもかかわらず、過去のバージョンのノウハウのまま巨大な `CLAUDE.md` を書き連ね、

    • 「指示を書いているのに、なぜかClaudeが無視する」

    • 「トークン代が想像以上に跳ね上がっている」

    • 「APIから突然400エラーが返ってくるようになった」

    といった問題やどうしたらええんやという不安に直面している人がいっぱい居るぞって声を頂きまして。

    なので。この記事では、Anthropicの公式一次情報および最新ベンチマーク結果をベースに、Claude 5.5時代における「CLAUDE.md」の設計哲学、モデル使い分け、設定テンプレートまでを完全網羅して整理してみようと思います。


    1. Claude 5.5 で何が変わったのか?(破壊的変更と新常識)

    まず、Claude 5.5 世代で導入された仕様変更を押さえておきましょう。

    旧バージョンの書き方のままでは、APIが400エラーで落ちるケースが存在します。お気をつけくださいねー。

    画像

    ① APIの破壊的変更(即時見直しが必要な点)

    • Thinking の常時ON化: Opus 5.5 や Fable 系では `disabled` がエラーになります。Sonnet 5.5 も完全無効化はできず、最低設定は `between_tools`(ツール呼び出し間のみ思考)となります。旧来の `budget_tokens` は廃止され、すべて `effort`(low〜max) に一本化されました。

    • `temperature` などの固定化: `temperature` や `top_p` に非既定値を設定すると 400エラー になります。「温度を0に下げて決定論的に出力させろ」といったプロンプト指示は無意味(かつエラーの原因)なので削除してください。

    • ツール強制指定の廃止: `tool_choice: any` や `tool_choice: tool` は廃止。`auto` + 構造化出力(Structured Outputs)で制御します。

    • Thinkingブロックは改変禁止(Append-only): APIから返ってきた `thinking` ブロックを途中で削ったり編集して送り返すとエラーになります。受信した通りそのままechoバックする必要があります。


    ② 料金とキャッシュの激変:「Sonnet max」より「Opus medium」が安くて強い

    Claude 5.5 の価格改定で最も注目すべきは、Sonnet 5.5 のキャッシュ読取価格が $0.20 → $0.10 / MTok へ半額化された点と、最小キャッシュ単位が 1024 → 512 トークンへ半減した点。

    画像

    さらに、エージェントコーディングのベンチマーク(Terminal-BenchやCursorBench等)を精査すると、驚くべき事実が判明しています。

    💡 コストと精度の真実
    Sonnet 5.5 の思考量を `max` まで引き上げると、コストは跳ね上がる一方で、サブエージェントの過剰な分岐(fan-out)によって精度が頭打ち、あるいは逆に低下する現象が確認されています。
    実際には、「Opus 5.5 の medium/high」の方が、「Sonnet 5.5 の max」よりも安く、かつ圧倒的に高いタスク完遂率を記録しています。

    • 日常の開発・修正・単発タスク: `Sonnet 5.5`(effort: medium 〜 high)

    • 難解なバグ・大規模リファクタ・長時間の自律作業: `Opus 5.5`(effort: medium)へ切り替える(`/model opus`)

    • 要約・機械的量産・サブエージェント: 90%値下げされた `Haiku 5.5`

    画像

    「Sonnet の effort を max まで上げるくらいなら、最初から Opus を呼ぶ」のが、5.5世代の最も賢いコスト戦略。なので、さっさとフォールダウンならぬトップクライムさせようぜ、って話みたいですね。

    落ちずに上に登れ、だそうな。


    2. CLAUDE.md の鉄則:200行制限・検証可能性・剪定テスト

    5.5時代において、`CLAUDE.md` の役割は再定義されました。

    【大原則】
    CLAUDE.md は「記憶(Memory)」であって、「強制(Enforcement)」ではない。

    公式ドキュメントでも明言されている通り、モデルは CLAUDE.md を読んで従おうとしますが、確率的に振る舞うLLMである以上、厳密な100%遵守は保証されません。

    画像

    📏 鉄則1:200行ルール(超えるとバカになる)

    1ファイルは 必ず200行以下(理想は80〜150行の「目次・ルーター型」)に抑えてください。

    ファイルが長大になると、Context Rot(文脈腐食) が発生し、ファイル内に書かれたすべてのルールの遵守率が静かに低下。「200行を超えたあたりから、指示を読んでいるのに無視し始める」という現象はこれが原因。

    画像

    ✂️ 鉄則2:剪定(せんてい)テスト

    CLAUDE.md 内のすべての行に対して、次の問いを投げかけてください。

    「この1行を消したとき、Claudeは間違えるだろうか?」

    答えが No であれば、即座に削ってください。下のが残ってたら即削除ですよー。他のProject.mdに残してもいいけどClaude.mdからは消してくださいね。

    • ❌ `きれいなコードを書いてください`(当たり前すぎて無駄)

    • ❌ `package.json` の丸写し(読めばわかる)

    • ❌ 詳細なAPI仕様(必要なときにドキュメントを読ませればいい)

    ✅ 鉄則3:検証可能性(形容詞を捨て、数値と禁止で語る)

    人間でも判定できない指示は、AIにも判定できません。「簡単」は人によって違うので、具体的な数字にしてくださいねって意味です。

    • NG: 「可読性を意識して簡潔に実装すること」

    • OK: 「1関数は50行以内。早期リターンを徹底し、300行を超えるファイルを作成する場合は事前に確認すること」


    3. 「絶対禁止」と書くな! 5層メモリと Hooks による絶対防御

    「`.env` を絶対に読むな」「本番DBに直接マイグレーションを打つな」といったハード制約を、CLAUDE.md に自然言語で書くだけで安心していませんか?

    画像

    それは「疑似セキュア」というアンチパターン。

    モデルが混乱したり、プロンプトインジェクションを受けたりした際にあっさり突破されます。

    画像

    Anthropicが提唱する5層メモリシステムを理解し、役割を分離しましょう。

    層 | 役割 | トークン課金 | 性質
    ① CLAUDE.md | 常時読み込まれる全社・PJ基本方針 | 毎ターン(キャッシュ) | 確率的(記憶)
    ② `.claude/rules/` | 特定パス(glob)一致時のみ展開 | 条件付き | 確率的(限定記憶)
    ③ Skills | 手順・コマンド発動時のみ展開 | 未発動時は0 | 確率的(手順)
    ④ Auto memory | 会話からClaudeが自動学習 | 最初の200行のみ | 確率的(文脈)
    ⑤ Hooks / Permissions | 実行前後にシェル等で介入 | 0トークン | 決定論的(100%強制)

    絶対に破らせないルールは `settings.json` の Hooks で止める

    Claude Code の最新仕様では、27種類以上のライフサイクルイベントに対して Hooks を設定できます。Claudeにツールを実行させたくない場合は、PreToolUse フックで `exit 2` を返すか、`permissions.deny` に指定するのが唯一の確実な方法っぽい。

    // .claude/settings.json
    {
      "permissions": {
        "deny": [
          "Read(.env*)",
          "Read(**/secrets/**)",
          "Bash(rm -rf /*)"
        ],
        "ask": [
          "Bash(pnpm db:migrate*)",
          "Write(db/migrations/**)"
        ]
      },
      "hooks": {
        "PreToolUse": [
          {
            "matcher": "Bash",
            "hooks": [
              {
                "type": "command",
                "command": "scripts/guard.sh",
                "if": "Bash(git push --force*)",
                "timeout": 10
              }
            ]
          }
        ],
        "PostToolUse": [
          {
            "matcher": "Edit|Write",
            "hooks": [
              {
                "type": "command",
                "command": "pnpm exec prettier --write $TOOL_FILE"
              }
            ]
          }
        ]
      }
    }
    • 好みやスタイル ➔ `CLAUDE.md` に書く

    • 絶対に破ってはならない境界 ➔ `permissions` や `hooks` で強制する

    この切り分けを行うだけで、CLAUDE.md は劇的にスリムになり、Claudeの挙動は安定します。


    4. そのままコピペで使える! CLAUDE.md テンプレート(Router型)

    プロジェクトのルートに配置する、約90行の洗練されたテンプレートを用意しました。TypeScriptとかの比較的簡単な環境用です。

    わたしはワークフロー専用の.mdや各作業用の.mdをRAGに用意しているので、作業時に「RAGの◯◯.mdを読んでから作業して下さい」と投げているのでここよりも短いです。Rustを基本にしてたりしますしね。

    ここに条件でのモデル選択を1~2行入れても良いと思います。

    「基本Opus5.5で開始、sonet5.5を基本にHaiku5.5に任せられる作業は積極的投げてね」的なことをちゃんとした英語で書くといいかも。英語のほうが精度良いからね。以下はその翻訳した指示文です。お好みで変えて下さい。

    Start with Opus 5.5 as the base; use Sonet 5.5 as the foundation, but actively offload tasks to Haiku 5.5 wherever possible.

    画像
    # Project CLAUDE.md — <プロジェクト名>
    
    ## Commands
    - build: `pnpm build`
    - test: `pnpm test:unit`
    - test (single): `pnpm test:unit -- tests/path/to/test.ts`
    - lint: `pnpm lint`
    - db: `pnpm db:migrate` (※本番直結は禁止・ローカルDockerのみ)
    
    ## Architecture(要約)
    - Next.js (App Router) + TypeScript Strict + Tailwind CSS
    - ディレクトリ構造: UI=`src/components` / ロジック=`src/core` / API=`src/app/api`
    - 認可処理は必ず `authMiddleware` を経由すること。
    - DBマイグレーションは `src/db/migrations/` 配下に配置し、既存ファイルの直接改変は禁止。
    
    ## Conventions(Linterで拾えないルールのみ)
    - `any` の使用は禁止。型パズルを避けて Zod スキーマで境界検証を行う。
    - 1関数は最大50行、1ファイルは最大300行。早期リターン(Early Return)を徹底する。
    - 例外を握りつぶさず、必ずドメインエラー型にラップしてロギングする。
    
    ## Workflow
    - 複数ファイルにまたがる変更は、実装前に必ず `PLAN.md`(修正ファイル・インターフェース・検証手順)を提示すること。
    - Doneの定義: ビルド通過 + 該当ユニットテスト通過 + 実行結果ログの提示。
    - 実装完了後、別のサブエージェント視点で `PLAN.md` の要件漏れがないかセルフレビューを行うこと。
    
    ## Boundaries & References
    - mainブランチへの直接push、force pushは禁止。
    - 秘密情報・APIキーはコード内にハードコードせず、必ず環境変数経由にする。
    - 詳細ドキュメント:
      - デプロイ規約: @docs/deploy.md
      - APIスキーマ設計: @docs/schema.md

    5. 公式推奨の開発4相フロー(Explore → Plan → Implement → Commit)

    Claude 5.5 の性能を限界まで引き出すためのプロンプト運用作法。

    画像
    [1. Explore] ➔ [2. Plan] ➔ [3. Implement] ➔ [4. Commit]
    1. Explore(調査):
      エラーログは絶対に要約せず全文を貼り付ける。大規模なコード探索はメインの会話履歴を汚さないよう、サブエージェント(`context: fork`)に任せる。

    2. Plan(計画):
      いきなりコードを書かせない。`Shift + Tab` を2回押して Plan モードに入り、変更対象ファイル・入出力の型・E2Eの再現手順をまとめた `PLAN.md` を作らせて、人間が承認する。

    3. Implement(実装):
      計画に沿って実装。AIがテストに苦戦した際に「テストコードのassert条件を書き換えて無理やりテストを通す」という報酬ハック(不正合格)を起こさないよう、テスト結果の証跡を厳しく求めます。

    4. Commit & Review(検証):
      「できました」という自己申告を信じず、「テストが通ったコンソール出力」や「curlのレスポンス結果」を提示させる。1つのタスクが終わったら、必ず `/clear` でコンテキストをリセットして次のタスクに移る。


    まとめ:今日から実践できる3つのアクション

    画像
    1. 自社の `CLAUDE.md` を開いて行数を数える
      200行を超えているなら、当たり前の指示や長大なドキュメントを削り、80〜150行の「目次型」に圧縮してください。

    2. 「絶対禁止」を `CLAUDE.md` から `settings.json`(Hooks/Deny)へ移管する
      確率に頼るセキュリティから、スクリプトで遮断する決定論的セキュリティへ移行しましょう。

    3. タスクの難易度に応じてモデルを切り替える
      日常は `Sonnet 5.5`(effort: medium/high)。難所や長時間の格闘が発生したら、無理にSonnetのeffortをmaxに引き上げるのではなく、サクッと `Opus 5.5` にバトンタッチしてください。

    Claude 5.5 の真のパワーは、研ぎ澄まされた短いコンテキストと、強固なHooksのガードレールの上でこそ最大限に発揮されます。ぜひリポジトリの整備を進めてみてくださいねー!

    PR コメント

    転職サイトGreen様の掲載にご協力させて頂くことになりましたー。

    IT・Web系を中心に、フルリモート可能な求人も掲載されております。
    今の転職市場や、「リモート可」の働き方についてかなり参考になるので、転職を考えているわたし自身がすごい助かっています。

    覗きに行くだけでも、ぜひぜひー。

    画像

    出典(一次情報)

    • Anthropic発表: Introducing Claude Opus 5.5 (2026-09-22) / Sonnet 5.5 (09-28) / Haiku 5.5 (10-07) — 価格・速度・bench・safeguard・credit

    • Platform Docs: Models overview / Opus・Sonnet・Haiku 5.5 overview / Migration guides / Prompting Sonnet 5.5 / Thinking troubleshooting / What's new / Pricing

    • Code Docs: Memory / Best practices / Skills / Hooks guide・reference / Agent SDK hooks / Settings・Permissions

    • Help Center: Give Claude context (2026-04-15) / Blog: Using CLAUDE.md files (2025-11-25)

    • 数値補強: apidog・the-decoder・orcarouter・claudeaihub等のeffort別実測整理(AA再実行63.6%等の留保つき・公式と整合範囲で採用)

    • 実践補強: Augment/vibecodingintel/DVNC/llmbestpractices/Claude Code Guide(hooks 27種・prompt/agent handler・fork・動的注入等の現行仕様反映)


    あなたへのおすすめ