Skip to content

原文(日本語に翻訳)

多数のファイルを読み込む長時間セッションにおいて、ネストされたCLAUDE.mdファイルが何十回も再注入されていた問題を修正しました。

原文(英語)

Fixed nested CLAUDE.md files being re-injected dozens of times in long sessions that read many files

概要

Claude Codeはプロジェクト内のネストされた CLAUDE.md ファイルをコンテキストに自動的に注入する機能を持っています。しかし長時間のセッションで多数のファイルを読み込む処理を行う場合、これらのCLAUDE.mdの内容が何十回も重複してコンテキストに注入されてしまい、コンテキストウィンドウを無駄に消費する問題がありました。v2.1.89で重複注入が防止されました。

基本的な使い方

CLAUDE.mdファイルの配置:

project/
├── CLAUDE.md                    # プロジェクトルートの設定
├── src/
│   ├── CLAUDE.md               # srcディレクトリの設定
│   └── components/
│       └── CLAUDE.md           # componentsの設定
└── tests/
    └── CLAUDE.md               # testsの設定
bash
# ネストされた CLAUDE.md の内容を確認する
cat src/CLAUDE.md

# 修正後: 各 CLAUDE.md は一度だけ注入される
# 修正前: 多数のファイルを読み込む長いセッションでは何十回も注入されていた

実践例

ネストされたCLAUDE.mdの設定例

markdown
<!-- src/CLAUDE.md -->
# src ディレクトリの指示

## コーディング規約
- TypeScriptを使用すること
- コンポーネントはfunctional componentで実装すること
- エクスポートは名前付きエクスポートを使用すること
markdown
<!-- src/components/CLAUDE.md -->
# コンポーネントディレクトリの指示

## コンポーネント作成ルール
- Props の型定義を必ず作成すること
- デフォルトエクスポートは使用しないこと

問題が発生していたシナリオ

bash
# 多数のファイルを読み込むタスク
claude "このプロジェクト全体をリファクタリングしてください"
# → プロジェクト内の全ファイルを読み込む
# → ファイルを読み込むたびに CLAUDE.md が再注入
# 修正前: 100ファイル読み込むと CLAUDE.md が100回注入されコンテキストを大量消費
# 修正後: CLAUDE.md は一度だけ注入される

コンテキスト効率の確認

bash
# /stats でトークン使用量を確認
/stats

# CLAUDE.md の内容が重複していないか確認
# デバッグモードで確認
claude --debug "hello"

注意点

  • この問題は特にネストされたCLAUDE.mdが複数存在し、かつ多数のファイルを処理する長いセッションで顕著でした
  • 修正により、コンテキストウィンドウの利用効率が改善され、より多くの実際のコンテンツを処理できます
  • CLAUDE.mdの内容が大きい場合(詳細な指示が含まれる場合)ほど恩恵が大きくなります
  • ネストされたCLAUDE.mdは引き続き機能しており、ただ重複注入が防止されます

関連情報