CLAUDE.mdとは何か、どこに置くのか、何のためにあるのか——Claude Codeを使い始めたら最初に理解すべきファイルです。
この記事では、CLAUDE.mdの場所・配置場所・5つのスコープ・作り方・agents.mdやmemory.mdとの違いまで、基礎を全て解説します。
CLAUDE.mdとは?
CLAUDE.mdは、Claude Codeがセッション開始時に自動で読み込む「プロジェクトの指示書」。Markdownファイルとして、プロジェクトのルートディレクトリに配置する。公式ドキュメントでは「Memory」機能の一部として位置づけられている。
イメージとしては、新入社員に渡す「うちのプロジェクトのルールまとめ」です。
- 「うちではsedでPHPを編集しない」→ Claude Codeもそのルールに従う
- 「テストはvitestで書く」→ Claude Codeもvitestでテストを生成する
- 「日本語で回答して」→ Claude Codeは日本語で答える
CLAUDE.mdがないとどうなるか?Claude Codeはプロジェクト固有のルールを知らず、一般的な判断で作業します。結果として「sedでPHPを編集してファイルが壊れた」「jestでテストを書いてしまった」などの事故が起きます。
CLAUDE.mdの場所|5つの配置場所とスコープ

CLAUDE.mdは5つの場所に置くことができ、それぞれスコープ(適用範囲)が異なります。
| # | 場所 | スコープ | 用途 | Git管理 |
|---|---|---|---|---|
| 1 | ~/.claude/CLAUDE.md | 全プロジェクト共通 | 個人の共通設定(「日本語で回答」等) | しない |
| 2 | ./CLAUDE.md(プロジェクトルート) | このプロジェクト全体 | 最も一般的。チーム全員に適用 | する |
| 3 | ./.claude/CLAUDE.md | このプロジェクト全体 | #2と同じ(.claude/に格納する場合) | する |
| 4 | ./.claude/rules/*.md | 条件付き(ファイル種別等) | 特定ファイル操作時のみ適用されるルール | する |
| 5 | ./CLAUDE.local.md | このプロジェクト(個人のみ) | 個人のプロジェクト固有設定 | しない(.gitignoreに追加) |
読み込み順序と優先度
Claude Codeはセッション開始時に以下の順序でファイルを読み込みます:
- Managed policy(組織管理者が設定)
~/.claude/CLAUDE.md(ユーザー共通)./CLAUDE.mdor./.claude/CLAUDE.md(プロジェクト)./CLAUDE.local.md(プロジェクト個人)
全てが結合されてClaudeに渡されます。矛盾するルールがある場合は、後から読み込まれたもの(下の方)が優先されます。
Windowsでの配置場所
Windows環境では ~ は C:Usersユーザー名 に相当します。つまり:
- ユーザー共通:
C:Usersユーザー名.claudeCLAUDE.md - プロジェクト: プロジェクトフォルダ直下の
CLAUDE.md
CLAUDE.mdの配置場所を図で理解する
実際のディレクトリ構成で見ると、こうなります。
# ユーザーレベル(全プロジェクト共通)
~/.claude/
├── CLAUDE.md # ← ユーザー共通設定(「日本語で回答」等)
├── settings.json # ← Claude Codeの設定
└── settings.local.json # ← 個人設定(.gitignoreに追加)
# プロジェクトレベル(このプロジェクトだけ)
~/my-project/
├── CLAUDE.md # ← プロジェクト全体のルール(チーム共有)
├── CLAUDE.local.md # ← 個人のプロジェクト固有設定(.gitignoreに追加)
└── .claude/
├── CLAUDE.md # ← 上と同じ役割(.claude/内に格納する場合)
├── rules/
│ ├── php-safety.md # ← PHP操作時のみロード
│ ├── testing.md # ← テストファイル操作時のみロード
│ └── git-commit.md # ← commit時のみロード
├── commands/ # ← カスタムスラッシュコマンド
└── settings.json # ← プロジェクト設定
Managed Policy(組織管理者向け)
Enterprise/Teamプランでは、IT管理者が組織全体に適用するルールを設定できます。これは「Managed Policy」と呼ばれ、個々のユーザーやプロジェクトの設定より優先されます。
| OS | Managed Policyのパス |
|---|---|
| macOS | /Library/Application Support/ClaudeCode/policies/ |
| Linux | /etc/claude-code/policies/ |
| Windows | %ProgramData%ClaudeCodepolicies |
個人利用ではManaged Policyは気にする必要はありません。
Auto MemoryとCLAUDE.mdの関係
Claude Codeには「Auto Memory」という自動学習機能があります。セッション中にClaudeが学んだことを~/.claude/のメモリファイルに自動保存する仕組みです。
CLAUDE.mdとAuto Memoryの役割分担:
- CLAUDE.md = 人間が手動で書くルール(「sedを使うな」「テストはvitestで」)
- Auto Memory = Claude Codeが自動で学んだメモ(「このプロジェクトではfunctions.phpの修正にPythonを使った」)
Auto Memoryは/memoryコマンドで確認・編集できる。CLAUDE.mdとAuto Memoryは補完関係にあり、使い分けは:
- CLAUDE.mdに書くもの: チーム全員に適用すべきルール、禁止事項、コーディング規約
- Auto Memoryに任せるもの: セッション中に学んだプロジェクト固有の知識(「このプロジェクトではfunctions.phpの修正にPythonスクリプトを使った」等)
Auto Memoryは~/.claude/projects/ディレクトリ内にプロジェクトごとに保存される。Claude Codeが自動で書くため人間が直接編集する必要はないが、/memoryで内容を確認し、不正確な記憶があれば修正・削除できる。
CLAUDE.mdの効果|ありなしでどう変わるか
| 場面 | CLAUDE.mdなし | CLAUDE.mdあり |
|---|---|---|
| テストフレームワーク | jestでテストを書く(プロジェクトはvitest) | vitestでテストを書く |
| PHP編集 | sedで直接編集→}が消えて構文エラー | 「sedでPHP編集禁止」に従いWP-CLI経由で修正 |
| 言語 | 英語で回答することがある | 日本語で回答 |
| コミットメッセージ | 英語の一般的なフォーマット | 日本語で、プロジェクトの規約に従う |
| ファイル構成 | 一般的なディレクトリ構造を想定 | プロジェクトの実際の構造を理解した上で修正 |
CLAUDE.mdを書くだけで、Claude Codeの出力品質が劇的に変わる。特に「禁止事項」(やってはいけないこと)を書いておくと、致命的な事故を防げる。AnthropicのベストプラクティスでもCLAUDE.mdの活用を強く推奨している。
効果的なCLAUDE.mdの3原則
- WHY(理由)を書く — 「sedでPHP編集禁止」だけでなく「}が消える事故があったため」と理由を書くと遵守率が上がる
- 禁止形で書く — 「〇〇すること」より「〇〇しないこと」の方がClaudeの遵守率が高い
- 60行以内に収める — 200行目以降は切り捨てられる可能性がある。詳細は.claude/rules/に分離
CLAUDE.mdの作り方
方法1: /initで自動生成(推奨)
cd ~/my-project
claude
/init
Claude Codeがプロジェクト構造を自動解析し、CLAUDE.mdを生成します。これがベースラインになります。
方法2: 手動で作成
プロジェクトルートに CLAUDE.md ファイルを作成し、Markdownで記述します。
# プロジェクト概要
ペットフードの比較サイト。WordPressで運営。
# 重要なルール
- sedでPHPファイルを編集しない(}が消える事故の実績あり)
- 日本語で回答すること
書き方の詳細・テンプレートは「CLAUDE.md書き方ガイド」をご覧ください。
方法3: /memoryで改善
既にCLAUDE.mdがある状態で /memory コマンドを実行すると、Claude Codeが内容を分析して改善提案をしてくれます。
CLAUDE.mdの使い方|日本語で書いてOK
CLAUDE.mdは日本語で書いて問題ありません。公式ドキュメントおよびコミュニティの検証では、日本語でも英語でもClaudeの遵守率に差はないとされています。
チーム内の共通言語で書くのが最も効率的です。日本語のプロジェクトなら日本語で。
CLAUDE.md vs agents.md vs memory.md|3ファイルの違い
| ファイル | 役割 | 読み込みタイミング | 誰が書くか |
|---|---|---|---|
| CLAUDE.md | プロジェクト全体のルール・規約 | セッション開始時に毎回 | 人間が手動で書く |
| agents.md | サブエージェントタスクの指示書 | サブエージェント起動時 | 人間が手動で書く |
| memory.md | セッション間で学んだことのメモ | セッション開始時 | Claude Codeが自動で書く |
| CLAUDE.local.md | 個人のプロジェクト固有設定 | セッション開始時 | 人間が手動で書く |
一言で言うと:
- CLAUDE.md = チーム全員に伝えるルール(「sedを使うな」)
- agents.md = 特定のタスクの手順書(「SEO分析の手順」)
- memory.md = Claudeが自分で覚えたメモ(自動生成、人間は編集しない)
.claude/rules/ とは?
.claude/rules/ ディレクトリは、CLAUDE.mdを分割するための仕組みです。YAML frontmatterで条件を指定でき、特定のファイル操作時にだけ読み込まれます。
# .claude/rules/php-safety.md
---
description: PHP editing rules
globs: "**/*.php"
---
- sedでPHPファイルを編集しない
- 編集後は php -l で構文チェック
これにより、PHPファイルを操作する時だけこのルールがロードされます。CLAUDE.md本体が肥大化するのを防げます。
詳しくは「CLAUDE.md書き方ガイド」の「中級者向け」セクションをご覧ください。
CLAUDE.mdの実際の運用フロー
CLAUDE.mdは「書いて終わり」ではありません。実際にはプロジェクトの成長とともに育てていくファイルです。私の運用フローを公開します。
Step 1: /init で最小限のファイルを生成(Day 1)
プロジェクト開始時に/initで自動生成。中身は10〜20行程度。これがベースラインです。
Step 2: 失敗からルールを追加(Week 1〜4)
Claude Codeが間違いを犯したら、その都度ルールを追加します。例:
- sedでPHPを編集して}が消えた → 「sedでPHPを編集しない」を追加
- WordPressでscriptタグが消えた → 「外部ファイル化+enqueue必須」を追加
- サイトBの作業をサイトAで実行した → 「2サイトを混同しない」を追加
推測でルールを書かない。実際の失敗だけを記録する。これが最も効率的な育て方です。
Step 3: 肥大化したら分割(Month 2〜)
60行を超えたら、詳細ルールを.claude/rules/に分割。CLAUDE.md本体には最重要5行だけ残します。分割方法は「書き方ガイド」の「5行ルール」を参照。
Step 4: 棚卸し(3ヶ月ごと)
3ヶ月ごとに全ルールを見直す。Claude Codeのアップデートで不要になったルール、プロジェクト構成の変更で無効になったルールを削除。腐ったCLAUDE.mdは、ないよりも有害。古いルールがClaudeの判断を誤らせるため、定期的な棚卸しは必須。棚卸しの方法は/memoryコマンドでClaude Codeに分析させると効率的。
CLAUDE.mdの成長サイクル: /init(最小限)→ 失敗からルール追加 → 60行超えたら分割 → 3ヶ月ごとに棚卸し → 繰り返し。このサイクルを回すことで、プロジェクトに最適化されたCLAUDE.mdが育つ。「最初から完璧に書こう」とするのは間違いで、実際の失敗を記録していくのが最も効果的な育て方。→「CLAUDE.md肥大化防止ガイド」
チーム開発でのCLAUDE.md運用
チームでClaude Codeを使う場合、CLAUDE.mdの管理が特に重要になります。
推奨構成
# Git管理するファイル(チーム共有)
./CLAUDE.md # プロジェクトルール
./.claude/rules/*.md # 詳細ルール
# Git管理しないファイル(個人設定)
./CLAUDE.local.md # 個人のプロジェクト設定
~/.claude/CLAUDE.md # 個人の共通設定
# .gitignore に追加すべきもの
CLAUDE.local.md
.claude/settings.local.json
チーム運用のルール
- CLAUDE.mdの変更はPRで — 直接編集せず、PRを出してチームレビュー
- 「なぜ追加したか」をコミットメッセージに — 後から理由が分かるように
- 個人設定はCLAUDE.local.mdに — チーム共有のCLAUDE.mdを個人設定で汚さない
- 新メンバーのオンボーディングに使う — 「CLAUDE.mdを読んでから作業開始」をルール化。CLAUDE.mdがプロジェクトのルールブック兼オンボーディング資料になる。新メンバーがClaude Codeを使い始める際の品質担保にもなる
CLAUDE.mdが無視される時のデバッグ方法
「CLAUDE.mdに書いたのに守ってくれない」という場合、以下の順序でデバッグする:
| # | チェック項目 | 対処法 |
|---|---|---|
| 1 | ファイル名のスペルミス | CLAUDE.md(全大文字)であることを確認。claude.mdは読み込まれない |
| 2 | 200行を超えている | 先頭200行しか読み込まれない。60行以内に収め、残りは.claude/rules/に分離 |
| 3 | 矛盾するルールがある | CLAUDE.mdとCLAUDE.local.mdで矛盾がないか確認。後者が優先される |
| 4 | 曖昧な指示 | 「丁寧にやって」→「編集前にPlan Modeで計画を見せること」のように具体化 |
| 5 | コードから自明な情報を書いている | package.jsonに書いてある依存関係をCLAUDE.mdに転記しても冗長。削除してトークン節約 |
# CLAUDE.mdが正しく読み込まれているか確認
> CLAUDE.mdの内容を表示して
# 特定のルールが認識されているか確認
> 「sedでPHP編集禁止」というルールは認識してる?
Claude Codeに直接「CLAUDE.mdの内容を表示して」と聞くのが最も簡単な確認方法。表示されなければファイルが読み込まれていない。
段階的開示(Progressive Disclosure)
CLAUDE.mdの設計で重要な概念が段階的開示(Progressive Disclosure)。全てのルールをCLAUDE.md本体に書くのではなく、必要な時に必要なルールだけをClaudeに渡す設計。
- CLAUDE.md本体: 最重要ルール5〜10行(常にロードされる)
- .claude/rules/*.md: ファイルタイプ別ルール(該当ファイル操作時のみロード)
- Skills(カスタムコマンド): 特定のワークフロー手順(呼び出し時のみロード)
この設計により、CLAUDE.md本体は軽量に保ちつつ、必要な場面では詳細なルールを適用できる。トークン消費を抑えながらルールの遵守率を最大化する手法。
CLAUDE.mdでよくある間違い
| 間違い | なぜダメか | 正解 |
|---|---|---|
| 200行以上書く | 後半が読み込まれず無視される | 60行以内。残りはrules/skillsに分割 |
| 「丁寧にやって」と書く | 曖昧すぎてClaudeが解釈できない | 「編集前に確認を求めること」と具体的に |
| package.jsonの内容を転記する | Claudeはpackage.jsonを直接読める | コードから分かることは書かない |
| 全ルールを同じ重要度で書く | 重要なルールが埋もれる | 最重要5行を冒頭に(5行ルール) |
| .envの中身を書く | セキュリティリスク | 「.envを読まない」と書く |
| 1回の失敗で大量のルールを追加 | 肥大化して逆効果 | 1つの失敗に1ルール。最小限で |
よくある質問
Q: CLAUDE.mdをGit管理すべき?
はい。./CLAUDE.md はGitで管理してチーム共有すべきです。ただし ./CLAUDE.local.md(個人設定)と .claude/settings.local.json(APIキー等)は .gitignore に追加してください。
Q: CLAUDE.mdがないとどうなる?
Claude Codeはプロジェクト固有のルールを知らない状態で作業します。一般的な判断でコードを書くため、チームの規約に沿わないコードが生成される可能性があります。/init で最低限のファイルを作ることを推奨します。
Q: 書き方を知りたい
→「CLAUDE.md書き方ガイド|非エンジニアでもできるベストプラクティス」でテンプレート付きで解説しています。
Q: 肥大化を防ぐには?
60行以内に収め、詳細は .claude/rules/ や Skills に分割する。→「肥大化防止ガイド」参照
Q: CLAUDE.mdは日本語で書いていい?
問題ない。公式ドキュメントでも言語の制限はなく、日本語でもClaudeの遵守率に差はない。チーム内の共通言語で書くのが最も効率的。
Q: .cursorrulesやcopilot-instructions.mdとの関係は?
CLAUDE.mdはClaude Code専用。Cursorは.cursorrules、GitHub Copilotは.github/copilot-instructions.mdが対応するファイル。内容は共通化できるため、CLAUDE.mdの内容を他ファイルにもコピーするとツール間で一貫性が保てる。→「Cursor連携ガイド」
まとめ|CLAUDE.mdはClaude Codeの「ルールブック」
CLAUDE.mdは「プロジェクトのルールをClaudeに教えるファイル」です。プロジェクトルートに配置し、/initで自動生成するのが最も簡単な始め方です。
書き方の詳細は「CLAUDE.md書き方ガイド」、agents.mdとの違いは「agents.md比較ガイド」、肥大化対策は「肥大化防止ガイド」、テンプレートは「テンプレート集」、Claude Codeの使い方は「使い方ガイド」、コマンドは「コマンド早見表」を参照。
参考文献・公式リソース
- Claude Code Memory(CLAUDE.md)公式ドキュメント
- Claude Code ベストプラクティス(Anthropic Engineering Blog)
- Claude Code 公式ドキュメント
- Claude Code セキュリティポリシー
- 効果的なCLAUDE.mdの書き方(Zenn)


