【要約】モノレポの `frontend/CLAUDE.md`、本当に読まれてる? Claude Code のネストしたメモリ読み込みを検証してみた [Qiita_Trend] | Summary by TechDistill
> Source: Qiita_Trend
Execute Primary Source
// Problem
モノレポ構成でClaude Codeを利用する開発者が、サブディレクトリに配置した指示ファイルが正しく認識されているか確信を持てないという問題に直面した。指示が効いていないのではないかという疑念が、開発体験を阻害している。
- ・
/contextコマンドのMemory filesセクションに、サブディレクトリのファイルが表示されない。 - ・指示が無視されているのか、あるいは読み込みの仕組みが不明確である。
- ・指示をルートに集約しすぎると、コンテキストが肥大化し、不要なトークンを消費する懸念がある。
// Approach
筆者は、実機でのファイル読み込み操作と、Claude Codeのフック機能を用いたログ解析を組み合わせることで、内部挙動の検証を行った。挙動の真偽を、公式ドキュメントの記述と照らし合わせて検証している。
- ・サブディレクトリ内のファイル(
package.json等)を読み込ませ、コンテキストへの注入を確認。 - ・公式ドキュメントの「nested CLAUDE.md files load into message history」という記述との整合性を検証。
- ・
InstructionsLoadedフックを設定し、TSV形式でロード理由(load_reason)を記録。 - ・
@import時の相対パス解決が、import元のファイル位置に基づいていることを実証。
// Result
検証の結果、サブディレクトリの指示ファイルが仕様通りにオンデマンドでロードされることが判明した。これにより、指示の適切な配置方法が明確になった。
- ・サブディレクトリの指示は、その配下のファイルを最初に読んだ際にロードされる。
- ・同じディレクトリ内での再ロードは行われず、重複注入が防止されている。
- ・
/contextに表示されないのは仕様であり、不具合ではない。 - ・モノレポにおいて「ルート=全体規約」「サブディレクトリ=個別規約」という分離運用が、コンテキスト節約に最適であることが示された。
Senior Engineer Insight
> 大規模開発において、AIエージェントのコンテキスト管理は性能を左右する重要事項だ。本検証により、指示の「局所化」がコンテキスト節約に直結することが証明された。ただし、長いセッションでは指示がメッセージ履歴に埋もれるリスクがある。実戦投入時は、指示を簡潔に保ち、重要な規約はルートに配置する設計判断が求められる。