Claude Code で他チームの CLAUDE.md を読み込ませない claudeMdExcludes の設定
モノレポで上位ディレクトリや他チームの CLAUDE.md が勝手に読み込まれて指示が混ざるときに、settings.json の claudeMdExcludes で特定のファイルだけを除外する方法を、パターンの書き方と除外できない例外まで解説します。
大きなモノレポで claude を起動すると、リポジトリのルートや他チームのディレクトリに置かれた CLAUDE.md まで読み込まれ、自分の作業に関係ない指示がコンテキストに混ざることがあります。Claude Code はカレントディレクトリから上位に向かって CLAUDE.md を探すため、これは仕様どおりの動作です。
結論として、settings.json の claudeMdExcludes に除外したいファイルのパスかグロブパターンを書くと、そのファイルだけをメモリの読み込みから外せます。
KEY POINT
この記事で分かること
claudeMdExcludesの書き方と、パターンが「絶対パス」に対して照合されること- どの settings ファイルに書くべきか、複数の層に書いたときの扱い
- 除外できないファイル(管理ポリシー)と、効いているかの確認方法
何が起きているのか
Claude Code は起動時に、カレントディレクトリとその上位ディレクトリにある CLAUDE.md と CLAUDE.local.md をすべて読み込み、連結してコンテキストに入れます。さらに、カレントより下のサブディレクトリの CLAUDE.md は、Claude がそのディレクトリ内のファイルを読んだ時点で追加されます。
そのため、monorepo/teams/payments/ で起動すると monorepo/CLAUDE.md は必ず読まれますし、作業中に monorepo/teams/search/ のファイルを参照すれば monorepo/teams/search/CLAUDE.md も読み込まれます。読み込みの仕組みそのものは サブディレクトリの CLAUDE.md はいつ読み込まれるか で整理しています。
用語解説
メモリファイル: Claude Code が毎セッションの開始時に読み込む指示ファイルの総称です。CLAUDE.md、CLAUDE.local.md、.claude/rules/ 配下のルールが含まれます。
claudeMdExcludes の書き方
claudeMdExcludes は文字列の配列で、各要素はグロブパターンか絶対パスです。パターンは ファイルの絶対パス に対して照合されるので、リポジトリ内の相対パスだけを書くと一致しません。
{
"claudeMdExcludes": [
"**/monorepo/CLAUDE.md",
"/home/user/monorepo/teams/search/.claude/rules/**"
]
}
| 項目 | 値・例 | 説明 |
|---|---|---|
| 型 | 文字列の配列 | グロブパターンまたは絶対パス |
| 照合対象 | ファイルの絶対パス | **/vendor/**/CLAUDE.md のように前方を **/ で受ける |
| 既定 | 未設定 | 見つかった CLAUDE.md をすべて読み込む |
| 書ける場所 | すべての settings ファイル | 各層の配列はマージされる |
公式ドキュメントの例では、上位の CLAUDE.md を "**/monorepo/CLAUDE.md"、他チームのルールディレクトリを絶対パスで "/home/user/monorepo/other-team/.claude/rules/**" と指定しています。.claude/rules/ 配下のルールファイルも同じキーで除外できます。
どの settings ファイルに書くか
除外したいのは「自分の作業に関係ない」ファイルなので、他のメンバーに影響しない .claude/settings.local.json に書くのが公式の案内です。チーム全体で共通して外したいベンダー配下のファイルなら、.claude/settings.json に書いてリポジトリに含めても構いません。settings ファイルの使い分けは settings.local.json と settings.json の違い を参照してください。
複数の層に書いた場合、claudeMdExcludes の配列は上書きではなく マージ されます。ユーザー設定で除外したものを、プロジェクト設定で復活させることはできません。
管理ポリシーの CLAUDE.md は除外できない
除外が効くのは、ユーザー・プロジェクト・ローカルのメモリファイルだけです。組織の管理者が管理ポリシーの場所に配布した CLAUDE.md や、managed-settings.json の claudeMd キーで注入した指示は、claudeMdExcludes に書いても読み込まれます。
効いているかを確認する
設定後に新しいセッションを開始し、/context を実行します。Memory files の一覧に除外したファイルが表示されなければ成功です。パターンが絶対パスに一致していないと一覧に残るので、その場合はパスの先頭に **/ を付けるか、フルパスで書き直してください。
除外ではなく「そもそもサブディレクトリの CLAUDE.md を分けて書きたい」場合は、親記事の CLAUDE.md の書き方 にある階層の使い分けを先に見直すと、除外設定自体が不要になることもあります。
まとめ
- モノレポでは上位や他チームの CLAUDE.md が読み込まれるのが仕様。
claudeMdExcludesで特定ファイルだけ外せる - パターンは絶対パスに対して照合される。
**/で前方を受けるか、フルパスで書く - 自分だけの除外は
.claude/settings.local.jsonに書く。層をまたぐ配列はマージされる - 管理ポリシーの CLAUDE.md と
claudeMdキーの指示は除外できない - 確認は
/contextの Memory files 一覧
よくある質問
- claudeMdExcludes はどの settings.json に書けばよいですか?
- ユーザー・プロジェクト・ローカル・管理設定のどれにでも書けます。自分の環境だけで除外したいなら .claude/settings.local.json が向いています。配列は各層でマージされます。
- 管理者が配布した CLAUDE.md も除外できますか?
- できません。除外できるのはユーザー・プロジェクト・ローカルのメモリファイルだけで、管理ポリシーの CLAUDE.md は常に読み込まれます。
- 除外が効いているかはどう確認しますか?
- セッション内で /context を実行し、Memory files の一覧に対象ファイルが無いことを確認します。
参考にした一次情報
この記事は公式ドキュメントを基に AI が下書きを作成し、運営者が内容を確認して公開しています。誤りを見つけた場合は お問い合わせからお知らせください。