Claude Code におけるコンテキストエンジニアリングの極意:Anthropic のエンジニアが実践する 5 つのパターンと 13 のステップ

@zodchiii
英語1 か月前 · 2026年6月06日
104K
202
20
15
443

TL;DR

階層化された CLAUDE.md ファイルの活用、ピンポイントなファイル参照、サブエージェントの分離といった手法を学び、Claude Code セッションを最適化してコンテキスト消費量を最大 70 % 削減する方法を解説します。

長い Claude Code セッションは、いつも同じ結末を迎えます。何時間もの進捗が失われ、また最初からやり直しです。

その解決策は、より賢いモデルではなく、Claude Code チームが社内で使用しているものの、そのガイドを誰も書いたことがないシステムにあります。

ほとんどの開発者はそれを持っておらず、その存在すら知りません。

ここに完全なシステムを紹介します👇

🧠 本題に入る前に、私は Telegram チャンネルで AI と雰囲気コーディングに関する日々のメモを共有しています:https://t.me/zodchixquant

darkzodchi - inline image

コンテキストエンジニアリングの本当の意味

Claude は毎セッションで何千行ものコードを読み取ります。そのほとんどはノイズであり、重要な 5% は 2 時間も経てば埋もれてしまいます。

すると Claude は関数をでっち上げたり、あなたが書いたことのないバグを修正し始めます。その修正はより大きなモデルではなく、セッションに入力されるものを制御することです。

以下が、Claude Code チームが自社のモノレポで実際に使用している 6 つのパターンです。

darkzodchi - inline image

パターン 1: 階層化された CLAUDE.md(ステップ 1-3)

1 つの CLAUDE.md では不十分です。Claude Code チームは 3 つのレイヤーを実行しており、それぞれが異なる関心事にスコープされています。

ステップ 1: プロジェクト全体のルールを持つルート CLAUDE.md

リポジトリのルートに CLAUDE.md を配置します。100 行未満に抑えてください。これは、Claude がすべてのプロンプトで持つ 4 つの質問に答える必要があります。

markdown
1# プロジェクト: [名前]
2
3## スタック
4- ランタイム: Node 22、TypeScript 5.5
5- フレームワーク: Next.js 15、React 19
6- データベース: Postgres 16、Drizzle ORM
7- テスト: Vitest、Playwright
8
9## 規約
10- インポート: `@/` からの絶対パスのみ
11- コンポーネント: ケバブケースのファイル、パスカルケースのエクスポート
12- テスト: `[file].test.ts` として同梱
13- コミット: conventional commits、co-author フッターなし
14
15## 触らないでください
16- `infra/terraform/`(運用チーム管理)
17- `migrations/`(自動生成、手動編集禁止)
18- `vendor/`(コミット済み依存関係)
19
20## デフォルト
21- タスク完了宣言の前に `npm test` を実行
22- 編集のたびに `tsc --noEmit` で型チェック
23- 保存時に Prettier でフォーマット

ステップ 2: モジュール固有のコンテキストを持つサブディレクトリ CLAUDE.md

ルールが変わる任意のフォルダに CLAUDE.md を追加します。Claude はそのフォルダで作業する際、ルートのものに加えて、最も近いものを読み取ります。

例、src/auth/CLAUDE.md:

markdown
1# Auth モジュール
2
3このモジュールはセッション管理と OAuth フローを担当します。
4
5## ルール
6- トークンをログに記録しない(たとえ切り詰めたものでも)
7- すべてのセッション読み取りは `getSession()` を経由し、生のクッキーは使用しない
8- 新しいプロバイダーは、マージ前にセキュリティレビューが必要
9
10## 最初に読むべきファイル
11- `session.ts`(契約について)
12- `providers/index.ts`(レジストリパターンについて)

ステップ 3: ~/.claude/CLAUDE.md にある個人用 CLAUDE.md

これはグローバルな設定レイヤーです。リポジトリの外に存在し、どこにいても適用されます。

markdown
1## 私の設定
2- 複数ファイルの編集を行う前に、何をしようとしているか説明してください
3- 私のリクエストが何かを壊しそうに見えたら、指摘してください
4- 継承よりも合成を優先してください
5- 私は macOS で zsh を使用しています

3 つのレイヤーが積み重なります:グローバル設定 + プロジェクトルール + モジュールルール。Claude は毎回のプロンプトで、これらをコンテキストに再アップロードすることなく、3 つすべてを読み取ります。

パターン 2: 外科的なファイル参照(ステップ 4-5)

デフォルトの「Claude にどのファイルが重要かを判断させる」方法は、コンテキストを最も遅く、最も愚かに使用する方法です。

ステップ 4:@file オートコンプリートによる参照

プロンプトで @ と入力すると、Claude はあいまいなファイルピッカーを開きます。ファイルを文章で説明する代わりにこれを使用してください。

悪い例:「ユーザー認証コードとセッションヘルパーを見て」

良い例:「

@src/auth /session.ts と

@src/auth /providers/google.ts を見て、トークンリフレッシュを修正して」

外科的な参照は、それらのファイルだけを正確に読み込みます。文章での説明は、Claude に検索を強制し、4〜5 個の候補ファイルを読ませ、半分の確率で間違ったものを選ばせます。

ステップ 5: /focus でワークフロー全体をスコープする

長いタスクの場合は、Claude のセッション全体を特定のフォルダにスコープします:

text
1/focus src/auth src/api/auth-routes

これにより、すべての検索、grep、読み取りがこれら 2 つのフォルダ内でのみ実行されるようになります。

集中的なタスクではコンテキスト使用量が 60〜80% 削減され、Claude は不要なコンテキストのために無関係なファイルを「親切に」読み取らなくなります。

リセットするには /focus clear を実行します。

パターン 3: コンパクト化と継続(ステップ 6-8)

長いセッションはコンテキスト制限に達し、クラッシュします。秘訣は長いセッションを避けることではなく、制御されたコンパクト化を通じてセッションを実行することです。

ステップ 6: /stats でコンテキスト使用量を監視する

定期的に /stats を実行します。

コンテキスト使用量が 70% を超えると、危険ゾーンに入っています。85% を超えると、Claude は警告なく初期のメッセージをドロップし始めます。

ステップ 7: 保存指示付きの /compact

/compact 単独では会話を要約します。指示を付けると、何をそのまま保存するかを Claude に伝えます:

text
1/compact preserve: 現在のタスク計画、auth リファクタリングに関するすべての決定、ステップ 3 の失敗したテスト出力

ステップ 8: 数日にわたるセッションのための /resume

タスクが数日にわたる場合は、各セッションを /compact preserve: ... で終了し、次のセッションを以下で開始します:

markdown
1claude --resume [session-id]

または、最新のセッションの場合は単に claude --continue を使用します。コンパクト化された状態をそのまま維持して、中断したところから正確に再開できます。

パターン 4: 計画優先の読み取り(ステップ 9-10)

最大のコンテキストリークは、Claude がファイルを理解する前に編集してしまうことです。計画モードは、先に読み取り、後で書き込むことを強制します。

ステップ 9: リスクのあるすべてのタスクで計画モードを切り替える

複数のファイルに影響するタスクの前に Shift+Tab を押して計画モードに切り替えます。

計画モードでは、Claude は読み取りのみ可能です。何をしようとしているかを説明し、影響を与える予定のすべてのファイルをリストし、提案された変更を示します。あなたが承認するまで何も実行されません。

節約効果は確かです:1 回の読み取り、1 回の編集で済むのに対し、従来は 8 回読んで、3 回間違えて編集し、元に戻し、再読して、また編集する、という手間が省けます。

ステップ 10: フックを使用して機密パスに計画モードをロックする

リスクの高い領域では計画モードを必須にします。.claude/settings.json で:

json
1{
2 "hooks": {
3 "PreToolUse": [
4 {
5 "matcher": "Edit(src/auth/**)|Edit(migrations/**)",
6 "hooks": [
7 {
8 "type": "command",
9 "command": "claude-require-plan-mode"
10 }
11 ]
12 }
13 ]
14 }
15}

src/auth/*\ または migrations/\\ * での編集試行は、計画モード要件をトリガーします。Claude はこれを回避できません。

パターン 5: サブエージェントによるコンテキストの分離(ステップ 11-13)

サブエージェントは、メインのコンテキストを小さく保つための最もクリーンな方法です。各サブエージェントは独自のウィンドウで実行されるため、親セッションはノイズを見ることがありません。

ステップ 11: 最小限のツールサーフェスでサブエージェントを設計する

ジョブに必要なものだけにツールを制限します。

コードレビュアー に Write や Edit は必要ありません。

ドキュメント更新者 に Bash は必要ありません。サーフェスが小さいほど、無関係なドキュメントやツールの説明に消費されるコンテキストが少なくなります。

yaml
1---
2name: code-reviewer
3description: バグやセキュリティ問題についてコード変更をレビューします
4tools: Read, Grep, Glob
5model: sonnet
6---

ステップ 12: エージェントが必要とするファイル参照のみを渡す

「最近の変更をレビューして」とは言わないでください。「[@src/auth](https://x.com/@src/auth)/session.ts と [@src/auth](https://x.com/@src/auth)/providers/google.ts** をレビューして」と伝えてください。

サブエージェントは、それらのファイルのみを読み取り、「最近」の意味を推測することはありません。

ステップ 13: サブエージェントにはより安価なモデルを使用する

タスクに基づいてエージェントごとにモデルを設定します。

レビューとテストタスクには Sonnet、ドキュメント更新とリントには Haiku、深い推論が必要なアーキテクチャやセキュリティ監査には Opus のみを使用します。

必要に応じてグローバルに設定:

text
1export CLAUDE_CODE_SUBAGENT_MODEL="claude-sonnet-4-6"

より安価なサブエージェント = 1 ドルあたりのサブエージェント呼び出し増加 = より多くの分離 = より小さなメインコンテキスト。

30 分でできるコンテキストエンジニアリング入門

10 分: スタック、規約、触ってはいけないリスト、デフォルトを含む、簡潔なルート CLAUDE.md を書きます。

5 分: 最も頻繁に編集する 2〜3 のモジュールにサブディレクトリ CLAUDE.md を追加します。

5 分: ~/.claude/CLAUDE.md にあなたの設定を含む個人用 CLAUDE.md を配置します。

5 分: 最も頻繁に行うワークフロー用に .claude/skills/ に 1 つのスキルを構築します。

5 分: Shift+Tab の操作を体に覚えさせ、複数ファイルのタスクはすべて計画モードで開始します。

これで完了です!

次のセッションでは、同じ作業量に対してコンテキスト使用量が 50〜70% 削減されます。セッション 5 までにはこれらのパターンが反射となり、制限に達することはなくなります。

コンテキストは Claude があなたのために管理するものではありません。それはあなたがエンジニアリングするものです。

これでシステムを手に入れました。

お読みいただきありがとうございます!

私は Telegram チャンネルで AI、金融、雰囲気コーディングに関する日々のメモを共有しています:https://t.me/zodchixquant

darkzodchi - inline image
ワンクリック保存

YouMindでバイラル記事をAI深読み

ソースを保存し、的を絞った質問をし、主張を要約して、バイラル記事を再利用できるノートに変えます。すべてを1つのAIワークスペースで行えます。

YouMindを探索
クリエイターのために

あなたの Markdown をきれいな 𝕏 記事に

自分の長文を投稿するとき、画像・表・コードブロックを 𝕏 向けに整形するのは手間がかかります。YouMind は Markdown 全体を、そのまま投稿できるきれいな 𝕏 記事に変換します。

Markdown → 𝕏 を試す

解読すべきパターンをもっと

最近のバイラル記事

バイラル記事をもっと見る