AIコーディング 2026.04.18

Claude Codeで複数ファイル編集時のContext制限エラーを解決する3つの方法

タグ:Claude Code / tips / Context管理 / 効率化

複数ファイル編集で容量超過する悩み

Claude Codeで複数ファイルを同時に扱うとき、こんな経験ありませんか?

Before: 「プロジェクト全体を見せたい」とフォルダごと投げ込む → Context Windowが満杯 → 途中でタイムアウト

After: 必要なファイルだけを戦略的に選別 → 段階的に編集 → 最後に統合確認 → スムーズに完了

Context Windowは有限なリソース。近年モデルの進化により処理可能なトークン数は急速に拡大していますが、「大きければいい」わけではありません。コンテキストが過大だと応答時間の増加・AI判断精度の低下・費用増加といった課題も生じます。賢く使い分けることで、大規模プロジェクトでも Claude Code の力を引き出せます。

使い方:段階的ファイル編集アプローチ

1. 最初は「コア部分」だけ投げ込む

プロジェクト全体ではなく、編集対象の中核ファイルのみをClaudeに見せます。

❌ src/components/Button.tsx, Button.css, Button.test.tsx, Button.stories.tsx, utils.ts, types.ts, ...(全部)

✅ src/components/Button.tsx(と直接参照の types.ts のみ)

このフェーズで Claude に「現在の実装」と「目指す変更」を理解させます。

最初のプロンプトでは、ファイル一覧と主要な関数シグネチャだけを投入する「段階的圧縮」も有効です。

プロジェクト構造:
src/
  ├── main.py           # エントリーポイント
  ├── database.py       # DB接続(500行)
  └── api.py            # REST API(1200行)

主要な関数:
- main(): プログラムの開始
- connect_db(config): データベース接続
- create_api_app(): Flaskアプリ生成

現在の課題:api.py内のエラーハンドリングが不完全

AIから「詳細を見たい」と言われたら、そのファイルだけを追加投入します。

2. 親ファイル → 子ファイルの順に編集

依存関係が深いなら、上から下へ進めます。

  1. API 型定義(types.ts)
  2. ユーティリティ(utils.ts)
  3. コンポーネント(Button.tsx)
  4. テスト(Button.test.tsx)

各ステップで「前のファイルの確認」を簡潔に含める(全文ではなく関連箇所だけ)。

3. 一度に複数ファイルが必要な場合

ファイルサイズの合計が Context の30%程度なら、まとめて投げてOK。それ以上なら分割します。

# Claude に伝える例
「次は Button.test.tsx を作成したいですが、
Button.tsx の最新版と types.ts を見ながら進めたいです。
それぞれ以下のキーポイントだけ確認してください:

- Button.tsx: onClick ハンドラ と disabled 状態の処理
- types.ts: ButtonProps の定義

複数ファイルをまとめて投入する際は、ファイル間の関係性と目的を明示するとAIの精度が上がります。

以下のコードは「商品管理機能」を担当する3ファイルです。
各ファイルの役割は独立しており、他の機能には影響しません。

【models.py】 - 商品データの定義
[ファイル内容を貼り付け]

【handlers.py】 - API処理
[ファイル内容を貼り付け]

【validators.py】 - 入力検証ロジック
[ファイル内容を貼り付け]

この機能内での型安全性を強化したいです。
handlers.py内でvalidators.pyの関数が正しく使われているか確認して、
型ヒントが不足している箇所を指摘してください。

4. 最後に「統合テスト」フェーズ

すべての編集後、一度ファイル群全体を見直す。ただしこれは「確認」であって「編集」ではない観点で。

注意点・落とし穴

Context 超過時の症状

  • 回答が途中で切れる
  • 「ファイルが大きすぎて処理できません」というエラー
  • 関連ファイルを見失って、矛盾した変更が入る

よくある間違い

  1. 「参考までに全ファイル見て」と投げすぎ

    • Markdown での整形に Context を食う
    • 実際に編集する部分は5%なのに Context 使用率が80%に
  2. 段階ごとに「前のファイル再度全文貼り」

    • 不要。「〇〇行目から△△行目は変わった」程度で十分
    • Prompt にコピペではなく「前のやり取りを参照」と指示
  3. 自動生成ファイルや node_modules を含める

    • 絶対NG。dist/ や build/ フォルダは除外
  4. 修正後に全体への影響を検証しない

    • 修正案を受け取ったら、影響を受けそうな他の機能ファイルも投入し「この修正が他の機能に悪影響を与えないか確認して」と依頼してから実装する
  5. 古いバージョンのコードを投入する

    • 旧スナップショットと最新コードを混在させると、AIが「どちらが正」か判断できず曖昧な修正を提案する
    • 投入前に必ずGitなどから最新版を確認する

応用アイデア

Context 効率化の上級テク

「ファイルのダイジェスト版」を作る

// Button.tsx の要約
/*
 * 現在の構造:
 * - props: ButtonProps (color, size, onClick, disabled)
 * - state: isLoading(内部状態)
 * - effect: disabled → isLoading を自動で false に
 * - render: <button> のアクセシビリティ属性あり
 */

コメント形式で「ここが重要」という地図を用意しておくと、Claude の理解が早くなります。

不要なコメントや冗長な記述を削ってから投入する

コード内の詳細すぎるコメントはToken数を圧迫します。要約コメントへの置き換えと型ヒントの活用で、Token数削減と精度向上を同時に実現できます。

# Before(冗長)
def calculate_total_price(items):
    """
    この関数はショッピングカート内の全アイテムの合計金額を計算します。
    消費税は別途で計算されます。割引は別の関数で適用されます。
    """
    return sum([item['price'] * item['quantity'] for item in items])

# After(簡潔)
def calculate_total_price(items) -> float:
    """アイテムの合計金額を計算(税金・割引は除外)"""
    return sum([item['price'] * item['quantity'] for item in items])

テストコードは別枠で管理する

// bad: テストコード含めて投入
- src/main.py
- src/main.test.py  ← 同時投入は非効率

// good: 実装コード+最小限のテスト仕様のみ投入
- src/main.py
- テスト仕様(文章で記述)
  - ユーザーID=1のデータ取得時、正しいJSONが返る
  - ユーザーID=999(存在しない)の場合、404エラーが返る

分割編集の「チェックリスト」を用意

# 編集タスク
- [ ] types.ts:ButtonColor 型を追加
- [ ] Button.tsx:新しい色を反映
- [ ] Button.css:新色のスタイル定義
- [ ] Button.test.tsx:新色のテストケース追加

Clipboard にこれを貼ると、Prompt の一貫性が保ちやすい。

複数プロジェクト間での行き来

まったく別のプロジェクトに移るなら、一度新しい Claude Code セッション開く方が Context 効率がいい。同じセッション内で「プロジェクトA → プロジェクトB」は context の無駄。

出典

※具体的な Context 超過時の対応フローについては、Anthropic が公式ドキュメント化していないため、実務経験からのTipsです。


あわせて読みたい

参考ソース