
CLAUDE.mdの使い方は「置き場所」で半分決まる——読み込まれる順番から逆算する
CLAUDE.mdの使い方でつまずくとき、たいてい原因は中身じゃないです。
置き場所です。
「書いたのに守ってくれない」の相談を受けて中を見ると、内容は悪くない。ただ、そのファイルが読み込まれていない場所にある。あるいは、上の階層にある別のCLAUDE.mdと矛盾している。
公式ドキュメントのメモリの説明(2026年9月7日確認)を読み直すと、置き場所と読み込み順が最初にきっちり定義されています。
今日は「CLAUDE.mdはどこに置けば読み込まれ、守られないときは何を確かめるのか」に答えます。置き場所と読み込み順から逆算して書きます。中身の書き方の話は最小限にします。
CLAUDE.mdは4か所に置ける
公式は、広い順に4つ挙げています。
いちばん広いのが管理ポリシー。macOSなら /Library/Application Support/ClaudeCode/CLAUDE.md、LinuxとWSLは /etc/claude-code/CLAUDE.md、Windowsは C:\Program Files\ClaudeCode\CLAUDE.md です。組織全体に配るもので、個人の設定では外せません。
次がユーザー個人の ~/.claude/CLAUDE.md。全プロジェクトに効きます。
そしてプロジェクトの ./CLAUDE.md または ./.claude/CLAUDE.md。チームで共有する場所です。
最後にローカルの ./CLAUDE.local.md。個人用で、.gitignore に入れる前提のものです。
この4つは、広いものから順に文脈へ入ります。だからプロジェクトの指示は、ユーザーの指示より後ろに置かれる。
読み込みは「上から下へ連結」される
ここが使い方に直結するところです。
Claude Codeは、作業ディレクトリとその上位すべてからCLAUDE.mdを読みます。foo/bar/ で起動したら、foo/bar/CLAUDE.md も foo/CLAUDE.md も読む。
そして大事なのが、上書きではなく連結という点です。
並ぶ順番はファイルシステムのルート側から作業ディレクトリ側へ。つまり起動した場所に近いものが、最後に読まれます。各ディレクトリの中では CLAUDE.local.md が CLAUDE.md の後ろに付く。
いや、順番なんて気にする必要ある?
あります。公式にこう書かれているからです。矛盾する2つの規則があると、Claudeはどちらかを任意に選ぶ。
上書きされるなら「下が勝つ」で済みますが、連結なので両方が文脈に残ります。だから、上の階層に古い規則が残っていると、静かに効き続ける。
サブディレクトリのCLAUDE.mdだけは扱いが違って、起動時ではなく、そのディレクトリのファイルを読んだときに読み込まれます。

読み込まれたかは推測しない
「置いたはず」で進めると、だいたい事故ります。
確認方法は用意されていて、セッションで /context を叩くと Memory files の一覧が出ます。ここに名前が無ければ、Claudeはそのファイルを見ていません。
編集したいときは /memory。存在しないファイルを選ぶと、その場で作ってくれます。
新規に作るなら /init です。コードベースを見て雛形を出してくれる。すでにCLAUDE.mdがある場合は上書きせず、改善案を出す動きになります。
私はここを長いこと横着していて、「守ってくれない」と言いながら、実は読み込まれていない場所に置いていた回が何度かありました。
長さは200行を目安に
分量の指針もはっきり書いてあります。1ファイル200行未満が目標。
理由は、CLAUDE.mdが毎セッションの文脈を消費するからです。長いほどトークンを食い、そして遵守率が下がる、と公式に明記されています。4MiBを超えると読み飛ばされます。
うちも同じことをやりました。ルールを足し続けた結果ファイルが太って、書いてあるのに守られない状態になった。削って戻したら、また効くようになりました。個人的には、足すより削るほうが効く場面のほうが多いと思っています。
長くなったら分ける手はあります。@path/to/import で別ファイルを取り込める。相対パスはインポート元のファイル基準で解決され、最大4ホップまで再帰します。
ただし注意点があって、インポートしても文脈の量は減りません。 起動時に一緒に読み込まれるので、効くのは整理であって節約ではないです。
減らしたいなら .claude/rules/ に置いて、paths: で対象ファイルを絞るほうです。こちらは該当するファイルを読んだときだけ入る。
AGENTS.mdを使っているなら
他のコーディングエージェント向けに AGENTS.md を置いている場合、そのままでは読まれません。Claude Codeが読むのは CLAUDE.md です。
公式が案内しているのは2つ。CLAUDE.mdを作って先頭で取り込む形。
@AGENTS.md
## Claude Code
プランモードを使う対象はここに書く。もう1つはシンボリックリンク。
ln -s AGENTS.md CLAUDE.mdClaude固有の指示を足したいならインポート、同じ内容でいいならリンク。おすすめはインポートのほうで、あとからClaude向けの但し書きを足せるからです。Windowsはシンボリックリンクに管理者権限か開発者モードが要るので、インポートのほうが素直です。
書くときに効く3つ
最後に、中身の話を短く。
具体的に書く。「コードを整形する」ではなく「インデントは2スペース」。「テストする」ではなく「コミット前に npm test を実行」。検証できる粒度まで落とすほど、通りがよくなります。
矛盾を残さない。古い規則は消す。2か所に同じことが書いてあると、片方だけ直って矛盾が残る。
そして、必ず実行させたいものはCLAUDE.mdに書かない。公式はここをはっきり書いていて、CLAUDE.mdはシステムプロンプトではなく、その後のユーザーメッセージとして渡されるので、厳密な遵守は保証されません。
コミット前に必ず走らせたい、みたいなものはフックにする。守ってほしい「お願い」と、守らせる「仕組み」は別物です。

今日、5分でできること
/context を叩いて、Memory files を見てください。
思っていたファイルが並んでいますか。上の階層から、知らないCLAUDE.mdが入っていませんか。
入っていたら、そこが「書いたのに守られない」の原因です。
そのうえで、いちばん近いCLAUDE.mdの行数を数えてみる。200行を超えていたら、まず削るほうが早いはずです。足すより効きます。
▶ 関連記事: Claude CodeのCLAUDE.mdが太って効かなくなった——8KBまで削って戻した話
Claude Codeを毎日の仕事に組み込むときの設定と、つまずきやすい場所をまとめた資料を用意しています。
#ClaudeCode #CLAUDEmd #Anthropic #設定 #メモリ #AGENTSmd #モノレポ #開発環境 #生成AI #仕組み化 #CLI #ルール設計