Claude Code は、コードベースの調査が必要だと判断すると、Explore という専用のサブエージェントを自動で起動します。メインの会話とは別プロセスで、Haiku という軽量モデルを使って動きます。できることはファイルの読み取りと検索だけで、探索が終わると要約だけがメインの会話に返ってくる仕組みです。
メインの Opus や Sonnet で探索するよりコストは安いし、コンテキストウィンドウも圧迫しない。ただ、ゼロではない。中規模のコードベースだとトークンの 80〜90% が探索に使われているというデータもあります。「この React コンポーネントを直して」と頼んだだけなのに、関連しそうなフォルダを 5 つも 6 つも探索していたら、それは無駄です。
対策はシンプルで、CLAUDE.md にプロジェクト構造を書いておきます。
## プロジェクト構造
- `src/app/` - ページとレイアウト(App Router)
- `src/components/` - 共有コンポーネント(ui/, navigation/, layouts/)
- `src/features/` - ドメインごとのロジック(types, hooks, API)
- `src/lib/` - ユーティリティと外部ライブラリのラッパーたった数行です。でもこれがあると src/ 全体を探索する必要がなくなります。
注意点として、書きすぎると逆効果です。CLAUDE.md は毎セッション自動で読み込まれるので、長いとそれ自体がトークンを食います。Claude がコードを読めば分かることは書かない。src/features/ はドメインごとに分かれている、は書く価値がある。button.tsx は Button コンポーネントです、は要らない。
詳細な説明が必要なら docs/ に分離してリンクすればいいです。CLAUDE.md は毎回読み込まれますが、docs/ 以下は必要なときだけ読みに行くので、関係ないタスクではトークンを消費しません。
指示を具体的にするだけでも変わります。「このコードを改善して」より「src/components/navigation/nav-link.tsx の hover スタイルを変更して」の方が、探索なしで作業に入れます。使用頻度の低い手順は CLAUDE.md ではなく skill に移すと、毎回のコンテキストが軽くなります。
地味な工夫ですが、積み重なると効いてきます。