CLAUDE.mdは、Claude Codeが毎回の起動時に読み込む指示書です。
ビルドの手順やコードの書き方など、毎回説明し直していることを書いておくと、起動時の文脈として渡せます。ただし、必ず守られる設定ではありません。
迷ったら、プロジェクトのいちばん上のフォルダに CLAUDE.md を置けば大丈夫です。
- チームで共有するルール:プロジェクト直下の CLAUDE.md
- 自分だけのルール(全プロジェクト共通):ホームフォルダの .claude/CLAUDE.md
- 自分だけのルール(このプロジェクトだけ):プロジェクト直下の CLAUDE.local.md
- 読み込まれたかの確認:対話中に /context を実行し、Memory files の欄を見る
2026年10月23日に公式ドキュメントと照合しました。実行結果は9月29日のClaude Code v2.1.284、既存画像は10月17日の記録です。今回は実機で再現していません。
CLAUDE.mdを置く場所は4つ
CLAUDE.md は、置く場所によって効く範囲が変わります。
| 種類 | 置き場所 | 効く範囲 | 向いている内容 |
|---|---|---|---|
| 組織の管理用 | Windows:C:\Program Files\ClaudeCode\CLAUDE.md(macOS・Linuxは別の場所) | そのPCの全員・全プロジェクト | 会社のコーディング規約やセキュリティの決まり |
| ユーザー | ホームフォルダの .claude/CLAUDE.md | 自分の全プロジェクト | 自分の好みの書き方、よく使う道具 |
| プロジェクト | プロジェクト直下の CLAUDE.md か .claude/CLAUDE.md | そのプロジェクト(チームで共有) | ビルドとテストの手順、フォルダの構成、命名の決まり |
| ローカル | プロジェクト直下の CLAUDE.local.md | そのプロジェクトの自分だけ | 自分用の検証URLやテストデータ |
CLAUDE.local.md はGitに入れないものなので、.gitignore に書いておきます。
管理用CLAUDE.mdはclaudeMdExcludesでは除外できません。ただし、CLAUDE.mdの読み込み全体を無効にしたセッションでは読み込まれません。強制したい制限は管理設定で実装します。
読み込まれる順番を実際に確かめた
CLAUDE.md は、起動したフォルダとその上の階層にあるものが、起動時にすべて読み込まれます。
上書きではなく、つなげて読まれます。
練習用のフォルダに、次のように4つのファイルを置いて試しました。
claude-memo/
├── CLAUDE.md … 返事の最後に「(root)」と書く
├── CLAUDE.local.md … 返事の最後に「(local)」と書く
└── app/
├── CLAUDE.md … 返事の最後に「(app)」と書く
└── src/
├── CLAUDE.md … 返事の最後に「(src)」と書く
└── main.py
画像は、2026年10月17日にこの構成を練習用に作り直し、エクスプローラーで開いたところです。
いちばん上の claude-memo には、CLAUDE.md と CLAUDE.local.md が同じフォルダに並びます。
docs フォルダは、後で説明する @ の読み込みの例に合わせて置いたものです。
このときはファイルを作って画面を撮っただけで、Claude Code は起動しておらず、読み込まれる順番は確かめ直していません。
下の結果は、9月29日に Claude Code v2.1.284 で試したときのものです。
app フォルダで Claude Code を起動し、挨拶だけしてもらった結果です。
こんにちは!このフォルダの指示ファイルを読み込んで挨拶しています。よろしくお願いします。
(root)
(local)
(app)上の階層から順に読まれ、同じフォルダの中では CLAUDE.md のあとに CLAUDE.local.md が読まれています。
起動したフォルダに近いものほど後に読まれるので、ルールがぶつかると迷う原因になります。
下の階層のCLAUDE.mdは、そのフォルダのファイルを読んだときに読まれる
起動した時点では、下の階層(src)の CLAUDE.md は読まれていませんでした。
src/main.py を読んでもらうと、src の CLAUDE.md のルールも効くようになりました。
`hello` と標準出力に表示するだけのファイルです。
(root) (local) (app) (import) (src)下位フォルダのCLAUDE.mdは、その配下のファイルをClaudeが読み取り・作成・編集する際に読み込まれます。
練習用のフォルダでは、src の CLAUDE.md を main.py と同じフォルダに置いています。

CLAUDE.mdの書き方
CLAUDE.md は普通のMarkdownで書きます。
# プロジェクトのルール
## コマンド
- テストは npm test で実行する
- コミットの前に npm run lint を通す
## コードの書き方
- 字下げはスペース2つ
- APIの処理は src/api/handlers/ に置く公式ドキュメントが勧めているのは、次の4点です。
- 1ファイル200行未満を目安にする(長いほど守られにくくなる)
- 見出しと箇条書きでまとめる
- 確かめられる書き方にする(「きれいに書く」ではなく「字下げはスペース2つ」)
- ルール同士をぶつけない(ぶつかると、どちらかが選ばれる)
書く内容は、2回目に同じ間違いをされたことや、毎回口で説明していることです。
200行未満は書き方の目安であり、CLAUDE.mdを200行で切り捨てるという意味ではありません。
手順が長いものや、一部のフォルダでしか使わないものは、スキルや後で説明する .claude/rules に分けます。
/initで下書きを作る
対話中に /init を実行すると、Claude がコードを調べて CLAUDE.md の下書きを作ります。
すでに CLAUDE.md がある場合は、上書きせずに直す案を出します。
HTMLコメントの自動読み込みには例外がある
<!-- -->のブロックコメントは、指示として自動挿入する際に除去されます。ただしコードブロック内のコメントは残り、Readツールでファイルを直接開けばコメントも見えます。秘密情報を隠す用途には使えません。
試しに、コメントの中に「返事の最後に(comment)と書く」と書きましたが、一度も守られませんでした。
公開して差し支えない、人間向けの補足を書く用途に使えます。
@で別のファイルを読み込む
CLAUDE.md の中に @ とファイルのパスを書くと、そのファイルの中身も読み込まれます。
# プロジェクトのルール
- 返事の最後に「(root)」と書く
- 文体は @docs/style.md に従う
この例を練習用の CLAUDE.md に書き、Windows 11 のメモ帳で開きました。
このメモ帳では .md のファイルが書式付きで表示され、# の見出しは大きな文字に、- の行は箇条書きの点に変わって見えます。
ファイルの中身は上の例と同じ文字で、@docs/style.md もただの文字として書かれています。
パスは、CLAUDE.md が置かれている場所から数えます。
パスに空白がある場合は、@Design\ Docs/api-conventions.mdのように各空白の前にバックスラッシュを置きます。
パスを引用符で囲むとインポートされないため、空白を含むパスを引用符で処理しないでください。
インポート先も同時に読み込まれるので、@でファイルを分割してもコンテキストの使用量は減りません。
読み込んだファイルの中でさらに @ を使えますが、たどれるのは4段までです。
プロジェクト直下で起動すると、書いた位置にそのまま差し込まれました。
こんにちは!今日もよろしくお願いします。
(root)
(import)
(local)起動したフォルダの外のファイルは確認が要る
同じ CLAUDE.md でも、app フォルダで起動したときは docs/style.md が読み込まれませんでした。
起動したフォルダ(app)から見ると、docs はフォルダの外にあるためです。
プロジェクト側の指示ファイルから作業ディレクトリ外を参照すると、初回に外部インポートの確認が出ます。ユーザー側の指示ファイルは原則この確認が不要ですが、デスクトップのCoworkには別の制限があります。
今回は確認の画面が出ない claude -p で動かしたので、読み込まれないままでした。
共有のルールを別の場所に置くなら、プロジェクトの中に置くか、起動する場所をそろえておくと確実です。
ファイル名を書きたいだけのときは、`@README` のようにバッククォートで囲むと読み込まれません。
.claude/rulesでファイルごとにルールを分ける
プロジェクトが大きくなったら、.claude/rules フォルダにテーマごとのファイルを置けます。
your-project/
└── .claude/
├── CLAUDE.md
└── rules/
├── code-style.md
├── testing.md
└── security.mdファイルの先頭に paths を書くと、そのパターンに合うファイルを触るときだけ読み込まれます。
---
paths:
- "src/api/**/*.ts"
---
# APIのルール
- 入力のチェックを必ず入れるpaths が無いファイルは、.claude/CLAUDE.md と同じように毎回読み込まれます。
プロジェクト用のpathsは、そのルールが入っている.claudeフォルダの親ディレクトリを基準にします。
ユーザー用ルールではセッションの主な作業ディレクトリが基準となるため、ルールファイル自身からの相対パスと取り違えないでください。
ホームフォルダの .claude/rules に置いたルールは、全プロジェクトに効きます。
読み込まれたかを確かめる方法
| やりたいこと | コマンド |
|---|---|
| 起動時に読み込まれた CLAUDE.md とルールを見る | /context(Memory files の欄) |
| CLAUDE.md を開いて直す・自動メモリのオンとオフ | /memory |
| 下書きを作る・直す案をもらう | /init |
| 古いルールや食い違いを点検してもらう | /doctor prompt-audit |
/contextのMemory filesは起動時の一覧です。下位フォルダーのファイルは必要時に読み込まれるため、一覧にないことだけで失敗とは判断できません。ターミナルのLoaded表示も確認します。/memoryでは未作成のファイルも選んで作成できます。
CLAUDE.mdが効かないときの確認順
- /context を実行し、Memory files の欄にファイルが出ているかを見る
- 出ていなければ、置き場所と起動したフォルダを見直す(下の階層は後から読まれる)
- @ で読み込んだファイルが起動したフォルダの外にないかを見る
- ルールを具体的に書き直す
- ほかの CLAUDE.md とぶつかっていないかを見る
CLAUDE.md は、システムプロンプトのあとにユーザーのメッセージとして渡されます。
そのため、書いたことが必ず守られるとは限りません。
コミットの前に必ずテストを走らせるなど、決まったタイミングで確実に動かしたいことは、フック(Hooks)で設定します。
/compact で会話を圧縮したあとも、プロジェクト直下の CLAUDE.md は読み直されます。
AGENTS.mdと自動メモリとの違い
Codex などほかのツールで使う AGENTS.md も、Claude Code は読めます(v2.1.277以降)。
初期設定では、作業フォルダかその上の階層に CLAUDE.md、.claude/CLAUDE.md、CLAUDE.local.md のいずれかがあると、AGENTS.md は自動で読み込まれません。
ユーザー用の ~/.claude/CLAUDE.md、組織の管理用 CLAUDE.md、.claude/rules/ は、この判定の対象外です。
そのため、AGENTS.md を使っているプロジェクトに自分用の CLAUDE.local.md を追加すると、初期設定では AGENTS.md が読み込まれなくなります。
CLAUDE.md と同じフォルダにある AGENTS.md は、CLAUDE.md の先頭に @AGENTS.md と書いて読み込めます。
別の方法として、/config に Project instructions が表示される環境では、claude-md-and-agents-md を選ぶと両方を読み込めます。
この条件と選択肢は、2026年10月8日に確認した公式ドキュメントの AGENTS.md の説明にもとづきます。
この記事の実行例は9月29日の v2.1.284 の記録を保持しており、今回この選択肢の実機確認はしていません。
もう1つの仕組みが、Claude が自分でメモを残す自動メモリです。
| CLAUDE.md | 自動メモリ | |
|---|---|---|
| 書く人 | 自分 | Claude |
| 中身 | 指示とルール | 訂正されたことや好みなどの覚え書き |
| 読み込み | 起動時の対象ファイル。下位階層は必要時。サイズ・除外設定の制限あり | 毎回、目次(MEMORY.md)の最初の200行か25KBまで |
| 置き場所 | 上の表の4か所 | ホームフォルダの .claude/projects/(プロジェクト名)/memory/ |
「pnpmを使って」のように会話で覚えてもらうと自動メモリに入り、「CLAUDE.mdに追加して」と頼むと CLAUDE.md に書かれます。
CLAUDE.md や自動メモリの消し方は、Claude Codeの消し方まとめで紹介しています。
まとめ
- 迷ったらプロジェクト直下に CLAUDE.md を置く
- 上の階層から順につなげて読まれ、下の階層は後から読まれる
- 200行未満を目安に、確かめられる書き方にする
- @ で別のファイルを読めるが、起動したフォルダの外は確認が要る
- 効かないときは /context で読み込まれているかを先に見る
参考:Claude Code公式ドキュメント「How Claude remembers your project」(2026年10月23日に再確認)。
よくある質問:Claude CodeのCLAUDE.md
CLAUDE.mdは、どこに置けばよいですか?
迷ったら、プロジェクトのいちばん上のフォルダに CLAUDE.md を置けば大丈夫です。
チームで共有するルールはプロジェクト直下の CLAUDE.md、自分だけのルール(全プロジェクト共通)はホームフォルダの .claude/CLAUDE.md、自分だけのルール(このプロジェクトだけ)はプロジェクト直下の CLAUDE.local.md です。
CLAUDE.local.md はGitに入れないものなので、.gitignore に書いておきます。
Windowsの管理用ファイルはC:\Program Files\ClaudeCode\CLAUDE.mdです。個別除外はできませんが、読み込み全体を無効にしたセッションでは対象外です。強制的な制御とは区別してください。
複数の CLAUDE.md は、どの順番で読まれますか?
起動したフォルダとその上の階層にあるものが、起動時にすべて読み込まれます。
上書きではなく、つなげて読まれます。
上の階層から順に読まれ、同じフォルダの中では CLAUDE.md のあとに CLAUDE.local.md が読まれます。
起動したフォルダに近いものほど後に読まれるので、ルールがぶつかると迷う原因になります。
下の階層の CLAUDE.md は、いつ読まれますか?
起動した時点では読まれません。
記事の確認では、src/main.py を読んでもらうと、src の CLAUDE.md のルールも効くようになりました。
下位フォルダのCLAUDE.mdは、その配下のファイルをClaudeが読み取り・作成・編集する際に読み込まれます。
CLAUDE.md の書き方で、気をつけることは?
公式ドキュメントが勧めているのは、1ファイル200行未満を目安にする(長いほど守られにくくなります)、見出しと箇条書きでまとめる、確かめられる書き方にする(「きれいに書く」ではなく「字下げはスペース2つ」)、ルール同士をぶつけない、の4点です。
書く内容は、2回目に同じ間違いをされたことや、毎回口で説明していることです。
200行未満は書き方の目安であり、CLAUDE.mdを200行で切り捨てるという意味ではありません。
手順が長いものや、一部のフォルダでしか使わないものは、スキルや .claude/rules に分けます。
対話中に /init を実行すると、Claude が CLAUDE.md の下書きを作ります(すでにある場合は、上書きせずに直す案を出します)。
@ で、別のファイルを読み込めますか?
CLAUDE.md の中に @ とファイルのパスを書くと、そのファイルの中身も読み込まれます。
パスは CLAUDE.md が置かれている場所から数え、読み込んだファイルの中でさらに @ を使えますが、たどれるのは4段までです。
プロジェクト側から作業ディレクトリ外を参照する場合は、初回の外部インポート承認が必要です。ユーザー側の指示ファイルやCoworkでは扱いが異なります。記事のclaude -pの結果は当時の記録です。
ファイル名を書きたいだけのときは、バッククォートで囲むと読み込まれません。
HTMLコメントは、Claudeに読まれますか?
自動挿入時と、ファイルを直接開いたときで異なります。
ブロックコメントは指示の自動挿入時に除去されますが、コードブロック内やReadツールで直接開いた場合は見えます。機密情報を隠す仕組みではありません。
記事の確認では、コメントの中に「返事の最後に(comment)と書く」と書きましたが、一度も守られませんでした。
公開して差し支えない、人間向けの補足を書く用途に使えます。
.claude/rules は、どう使いますか? 読み込まれたかは、どう確かめますか?
プロジェクトが大きくなったら、.claude/rules フォルダにテーマごとのファイルを置けます。
ファイルの先頭に paths を書くと、そのパターンに合うファイルを触るときだけ読み込まれ、paths が無いファイルは毎回読み込まれます。
ホームフォルダの .claude/rules に置いたルールは、全プロジェクトに効きます。
読み込まれたかは、/context の Memory files の欄で確かめ、/memory で CLAUDE.md を開いて直したり、自動メモリをオン・オフしたりできます。
CLAUDE.md が効かないときや、AGENTS.md との関係は?
/context を実行して、Memory files の欄にファイルが出ているかを見ます。
出ていなければ、置き場所と起動したフォルダを見直し、@ で読み込んだファイルが起動したフォルダの外にないか、ルールを具体的に書き直せないか、ほかの CLAUDE.md とぶつかっていないかを確認します。
CLAUDE.md は、システムプロンプトのあとにユーザーのメッセージとして渡されるため、書いたことが必ず守られるとは限りません。
決まったタイミングで確実に動かしたいことは、フック(Hooks)で設定します。
AGENTS.md は Claude Code も読めます(v2.1.277以降)が、作業フォルダかその上の階層に CLAUDE.md、.claude/CLAUDE.md、CLAUDE.local.md のいずれかがあると、初期設定では自動で読み込まれません。
CLAUDE.md の先頭に @AGENTS.md と書くと、読み込めます。
公式仕様は2026年10月23日に照合しました。既存の実行ログと画像は当時の記録で、今回の実機検証ではありません。
最新は公式ページで確認してください。
