1. はじめに
Part 1 では、コンテキストエンジニアリングの基本概念と4つの作戦(Write, Select, Compress, Isolate)を紹介しました。
「理論はわかったけど、実際どう行なえばいいんだ...。」
この記事では、Claude Codeを使って4つの作戦を実践する方法を具体的に解説します。
2. 作戦①:メモを取る(Write)
CLAUDE.md とは?
Part 1 で「カンペ置き場の外にメモしておく」と説明しました。
Claude Code では、このメモを置く場所が CLAUDE.md ファイルです。
プロジェクト/
├── CLAUDE.md ← これがAIへの「永続メモ」
├── src/
└── package.json
CLAUDE.md に書いた内容は、毎回のセッション開始時に自動で読み込まれます。
/init で自動生成する
CLAUDE.md は手動で作ることもできますが、/init コマンド を使えば Claude が自動で作ってくれます。
/init
これを実行すると、Claude がプロジェクトを分析して、適切な CLAUDE.md を生成してくれます。
つまり、「毎回説明しなくていい情報」をここに書いておけば、AIは常にそれを知っている状態でセッションがスタートされるということです。
/init で生成されるか、手動で作成する CLAUDE.md の例:
# プロジェクト概要
このプロジェクトは、推薦システムのAPIです。...
## 技術スタック
- Python 3.11
- FastAPI
- Redis(キャッシュ)
- BigQuery(データソース)
## 開発ルール
- テストは pytest を使用
- コードフォーマットは black
- 型ヒントは必須
## よく使うコマンド
...
これだけで、AIは毎回「このプロジェクトは何か」「どういうルールで開発するか」を理解した状態で作業を始めてくれます。
調査結果を docs/ に保存する
長い調査結果や分析結果は、CLAUDE.md に直接書くと肥大化します。
代わりに、docs/フォルダ(任意のフォルダでOK)に出力してもらいましょう。
このAPIのアーキテクチャを調査して、docs/example.md に出力して
こうすると、調査結果は外部ファイルに保存され、必要なときだけ参照できます。
【図1】Write の仕組み
┌─────────────────────────────────────────────┐
│ カンペ置き場の外(ファイル) │
│ ┌───────────────┐ ┌──────────────────┐ │
│ │ CLAUDE.md │ │ docs/調査結果.md │ │
│ │ (常に読込) │ │ (必要時に参照) │ │
│ └───────────────┘ └──────────────────┘ │
└─────────────────────────────────────────────┘
↓ 読み込み
┌─────────────────────────────────────────────┐
│ コンテキストウィンドウ(カンペ置き場) │
│ │
│ 「このプロジェクトはFastAPIで...」 │
│ │
└─────────────────────────────────────────────┘
3. 作戦②:必要な時だけ取り出す(Select)
全部のファイルを常に読み込むのではなく、今必要なファイルだけを渡すのがポイントです。
| 情報の種類 | 置き場所 | 理由 |
|---|---|---|
| 常に必要な情報 | CLAUDE.md | 毎回自動で読み込まれる |
| たまに必要な情報 | docs/ フォルダ | 必要なときだけ参照 |
4. 作戦③:要約する(Compress)
/context で使用状況を確認
まず、今コンテキストがどのくらい埋まっているか確認しましょう。
/context
これを実行すると、コンテキストの使用状況が表示されます。
- 会話履歴がどれくらい容量を使っているか
「今どのくらい余裕があるか」を把握してから、/compact や /clear を判断できます。
自動で発動する /compact
Part 1 で説明した通り、コンテキストウィンドウには容量制限があります。
Claude Code では、コンテキストが95%に達すると自動的に要約(auto-compact)が発動します。
Claude Code runs "auto-compact" after you exceed 95% of the context window and it will summarize the full trajectory of user-agent interactions.
(Claude Code は、コンテキスト ウィンドウの 95% を超えると「自動圧縮」を実行し、ユーザーとエージェントのインタラクションの完全な軌跡を要約します。)
/compact を手動で実行
自動要約を待たずに、手動で /compact を実行することもできます。
/compact
/clear との違い
| コマンド | 動作 | 使い分け |
|---|---|---|
| /compact | 会話を要約して圧縮 | 作業を継続したいとき |
| /clear | 会話履歴を完全削除 | 新しいタスクを始めるとき |
- タスクが完了したら
/clearで完全リセット - 長い作業の途中で容量が心配なら
/compact
⚠️ 注意点
Part 1 でも触れましたが、要約には情報ロスのリスクがあります。
複数回の compact を繰り返すと重要な情報が、失われることがあります。できれば、作戦①②で「外部に保存」する方が安全です。
【図3】Compress の仕組み
圧縮前:
┌─────────────────────────────────────────────┐
│ 会話1: こんにちは │
│ 会話2: このAPIを作って │
│ 会話3: エラーが出た │
│ 会話4: 修正して │
│ 会話5: テストして │
│ ... (大量の履歴) │
│ 使用率: 95% │
└─────────────────────────────────────────────┘
↓ /compact
圧縮後:
┌─────────────────────────────────────────────┐
│ [要約] APIを作成し、エラー修正とテストを完了 │
│ │
│ 使用率: 20% │
└─────────────────────────────────────────────┘
5. 作戦④:担当を分ける(Isolate)
サブエージェントとは?
1つのAIに全部やらせると、カンペ置き場がパンクします。
そこで、複数のAI(サブエージェント)で分担します。
Each subagent operates in its own context, preventing pollution of the main conversation.
(各サブエージェントは独自のコンテキストで動作し、メインの会話の汚染を防ぎます。)
【図4】サブエージェントイメージ
あなた → Claude
│
├── 調査はサブエージェントに任せる
│ └── 調査結果だけ返ってくる
│
├── 実装はサブエージェントに任せる
│ └── 実装結果だけ返ってくる
│
└── テストはサブエージェントに任せる
└── テスト結果だけ返ってくる
サブエージェントの使い方
方法1:自動で委任される
Claude Code は、タスクの内容に応じて自動的にサブエージェントを使います。
方法2:明示的に指示する
〇〇のサブエージェントを使って、この調査を並列で実行して
と明示的に指示することもできます。
6. 4つの作戦のまとめ
| 作戦 | Claude Code での実践方法 |
|---|---|
| Write | CLAUDE.md に記録、# でメモ追加、docs/ に調査結果を出力 |
| Select | @ でファイル参照、必要なものだけ読み込む |
| Compress | /compact(手動)、95%で自動発動、/clear でリセット |
| Isolate | サブエージェント |
7. 実践のコツ
推奨ワークフロー
-
プロジェクト開始時
- CLAUDE.md を作成して基本情報を記載
- よく使うルールや設定を書いておく
-
作業中
- 調査結果は docs/ に出力してもらう
-
タスク完了時
- /clear でリセットして次のタスクへ
- 途中なら /compact で圧縮
-
複雑なタスク
- サブエージェントを活用
- 並列処理で効率化
Part 3 では、Claude Code Marketplace を作った話をご紹介します。
