CLAUDE.mdとは?場所・配置場所・5つのスコープ・作り方をゼロから解説

CLAUDE.mdとは アイキャッチ 始め方・設定
chars:5452 tables:4 codes:5 int:8 ext:0 faq:4

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つのスコープ優先順位図

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はセッション開始時に以下の順序でファイルを読み込みます:

  1. Managed policy(組織管理者が設定)
  2. ~/.claude/CLAUDE.md(ユーザー共通)
  3. ./CLAUDE.md or ./.claude/CLAUDE.md(プロジェクト)
  4. ./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」と呼ばれ、個々のユーザーやプロジェクトの設定より優先されます。

OSManaged 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原則

  1. WHY(理由)を書く — 「sedでPHP編集禁止」だけでなく「}が消える事故があったため」と理由を書くと遵守率が上がる
  2. 禁止形で書く — 「〇〇すること」より「〇〇しないこと」の方がClaudeの遵守率が高い
  3. 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

チーム運用のルール

  1. CLAUDE.mdの変更はPRで — 直接編集せず、PRを出してチームレビュー
  2. 「なぜ追加したか」をコミットメッセージに — 後から理由が分かるように
  3. 個人設定はCLAUDE.local.mdに — チーム共有のCLAUDE.mdを個人設定で汚さない
  4. 新メンバーのオンボーディングに使う — 「CLAUDE.mdを読んでから作業開始」をルール化。CLAUDE.mdがプロジェクトのルールブック兼オンボーディング資料になる。新メンバーがClaude Codeを使い始める際の品質担保にもなる

CLAUDE.mdが無視される時のデバッグ方法

「CLAUDE.mdに書いたのに守ってくれない」という場合、以下の順序でデバッグする:

#チェック項目対処法
1ファイル名のスペルミスCLAUDE.md(全大文字)であることを確認。claude.mdは読み込まれない
2200行を超えている先頭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の使い方は「使い方ガイド」、コマンドは「コマンド早見表」を参照。

参考文献・公式リソース