メインコンテンツへスキップ
見出し画像

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.md

    Claude固有の指示を足したいならインポート、同じ内容でいいならリンク。おすすめはインポートのほうで、あとから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を毎日の仕事に組み込むときの設定と、つまずきやすい場所をまとめた資料を用意しています。

    👉 ClaudeCodeStudioの6大特典を受け取る

    #ClaudeCode #CLAUDEmd #Anthropic #設定 #メモリ #AGENTSmd #モノレポ #開発環境 #生成AI #仕組み化 #CLI #ルール設計

     
     
    Claude Codeガチ勢3人で運営|実務レベルのCLI活用・自動化を毎日発信|開発プログラム参加|賞金30万円獲得|現在は上場企業とAIエージェントを共同開発中|AI時代はコンテキスト/ナレッジ管理が9割|Claude Code学びたい方はフォロー推奨👇

    あなたへのおすすめ