Claude CodeのCLAUDE.mdはどこに置く?グローバル・プロジェクト別の使い分け

Claude CodeのCLAUDE.mdはどこに置く?グローバル・プロジェクト別の使い分け AI開発

Claude Codeを使っていると、毎回同じ指示を入力するのが面倒になります。「TypeScriptではanyを使わない」「変更後はnpm testを実行する」「既存の設計を大きく変えない」「コミットは勝手に実行しない」といったルールです。こうした継続的な指示を渡すために使うのがCLAUDE.mdです。

ただしCLAUDE.mdには、複数の置き場所があります。~/.claude/CLAUDE.md、./CLAUDE.md、./.claude/CLAUDE.md、./CLAUDE.local.mdなどで、どこに置いても同じではありません。この記事では、「誰に適用したいルールか」で置き場所を決める考え方を、Claude Code公式ドキュメント(2026年10月時点)に沿って整理します。

CLAUDE.mdが期待どおりに読み込まれないときの切り分けはClaude CodeがCLAUDE.mdを読まない原因|配置場所・優先順位・読み込み範囲を確認、書き方の設計はClaude Code CLAUDE.md完全設計ガイド|3層構造・@インポート・自動メモリでAIとのコンテキスト共有を最大化で解説しているため、この記事は置き場所の判断に絞ります。

スポンサーリンク

CLAUDE.mdはClaude Codeへ継続的な指示を渡すファイル

CLAUDE.mdは、Claude Codeへ継続的なProject Contextや作業ルールを与えるMarkdownファイルです。Claude Codeの各Sessionは新しいContext Windowから始まりますが、CLAUDE.mdはSession開始時に読み込まれます。

CLAUDE.mdの例
# Development

パッケージ管理にはpnpmを使用してください。

変更後は以下を実行してください。

pnpm lint
pnpm test

# Coding Rules

TypeScriptでanyは使用しないでください。

既存APIの互換性を維持してください。

これを書いておけば、新しいSessionのたびに同じ説明を繰り返す必要がなくなります。ただしCLAUDE.mdは強制的な設定ではありません。Claude Codeは内容をContextとして読み、従おうとしますが、公式ドキュメントでも「特定の動作を確実にブロックしたいならPreToolUse Hookを使う」と案内されています。具体的で簡潔な指示ほど、安定して従いやすくなります。

CLAUDE.mdの置き場所はUser・Project・Local・組織の4種類

公式ドキュメントでは、CLAUDE.mdの配置場所が次のように整理されています。

  • User:~/.claude/CLAUDE.md。自分の全Projectへ適用する個人設定(自分だけ)
  • Project:./CLAUDE.mdまたは./.claude/CLAUDE.md。Repositoryで作業するメンバーと共有する設定(Gitで共有)
  • Local:./CLAUDE.local.md。特定Projectだけで使う個人設定(自分だけ、.gitignoreに追加)
  • Managed policy(組織):組織全体の指示。IT・DevOpsが配布する(組織の全ユーザー)

Windowsでも~はUser Home Directoryを意味します。通常は%USERPROFILE%\.claude\CLAUDE.mdです。

迷ったら「誰に適用したいルールか」で決める

置き場所の判断フロー
自分が使うすべてのRepositoryで共通?
  → ~/.claude/CLAUDE.md

そのRepositoryで作業する全員に必要?
  → ./CLAUDE.md または ./.claude/CLAUDE.md(Gitにコミット)

そのRepositoryで自分だけに必要?
  → ./CLAUDE.local.md(.gitignore)

特定のDirectoryやFile種類でしか必要ない?
  → サブディレクトリのCLAUDE.md、または .claude/rules/

置き場所は、ルールの内容ではなく、適用範囲で決めます。以降で、それぞれの置き場所に何を書くかを見ていきます。

全Project共通なら~/.claude/CLAUDE.mdに置く

自分がClaude Codeを使うすべてのProjectへ適用したい設定は、~/.claude/CLAUDE.mdに置きます。特定のRepositoryではなく、自分自身のClaude Codeの利用方針なので、Global設定に向いています。

~/.claude/CLAUDE.md
# Personal Coding Preferences

変更前に既存コードを確認してください。

可能な限り既存の設計パターンを維持してください。

大規模なリファクタリングを一度に行わず、小さな差分に分割してください。

依存パッケージを追加する前に理由を説明してください。

プロジェクト固有のルールをグローバルに書かない

逆に、「このProjectではpnpmを使う」「WordPress 6.9以上を対象にする」「src/api以下にAPIを実装する」といったProject固有の情報を~/.claude/CLAUDE.mdへ書くのはおすすめできません。別のProjectでも同じ指示が読み込まれてしまうからです。Project Aはpnpm、Project Bはnpmを使っているのに、Globalへ「必ずpnpmを使用してください」と書けば、Project Bでも適用されます。

Globalには「どのProjectでも共通する自分の作業方針」だけを置き、Projectに依存する情報はProject側へ分けます。

チームで共有するならProject RootにCLAUDE.mdを置く

特定Projectだけに適用したい設定は、Repository内に置きます。Project用のCLAUDE.mdは./CLAUDE.mdまたは./.claude/CLAUDE.mdのどちらでも使えます。内容は、Build Command、Test Command、Architecture、Naming Convention、Coding Standard、よく使うWorkflowなど、そのRepositoryで作業する全員が知っておくべき情報です。

Projectの構成例
my-project/
├── CLAUDE.md
├── package.json
└── src/

./CLAUDE.mdはRepositoryを開いたときにすぐ見つかるので、単純なProjectなら分かりやすい選択です。Claude Code関連のFileをまとめたいなら、.claude/の中にCLAUDE.md、settings.json、rules/を並べる構成も使えます。どちらを選んでもよいので、Project内で統一します。

Project CLAUDE.mdは、チーム全員に適用したい情報なので、基本的にGitへコミットします。新しい開発者がCloneしてClaude Codeを起動しても、同じルールが使えるようになります。

自分だけのProject設定はCLAUDE.local.mdに置く

Project固有でも、他のメンバーと共有したくない設定もあります。たとえば自分のローカルURLやテストデータです。その場合は、Project RootのCLAUDE.local.mdに書きます。「自分だけ」かつ「このProjectだけ」に適用したい設定です。

CLAUDE.local.md
# Local Preferences

開発確認ではhttp://localhost:3001を使用してください。

テストデータではcustomer-test-01を優先してください。

修正後にGit Commitは実行しないでください。

公式ドキュメントでも、CLAUDE.local.mdは個人用のProject設定とされ、.gitignoreに追加してVersion Controlへ含めない使い方が案内されています。

.gitignore
CLAUDE.local.md

Git WorktreeではCLAUDE.local.mdが共有されない

Git Worktreeを使っている場合は注意が必要です。CLAUDE.local.mdは.gitignoreされるため、新しいWorktreeを作っても引き継がれず、作成したWorktreeにだけ存在します。複数のWorktreeで同じ個人設定を使いたいなら、Home Directoryに個人用Fileを作り、そこからImportします。

CLAUDE.local.md
# Individual Preferences

@~/.claude/my-project-instructions.md

Working Directoryの外にあるFileをProject側のCLAUDE.mdからImportすると、初回に承認ダイアログが表示されます。拒否すると、そのImportは無効のままになります。

Global・Project・Localを組み合わせる

3つのうち1つだけを使う必要はありません。次のように、責務を分けて組み合わせられます。

3層の構成例
~/.claude/CLAUDE.md          自分の基本方針(大規模変更を一度にしない、等)

project/
├── CLAUDE.md                チームのルール(pnpmを使う、APIはsrc/api以下、等)
├── CLAUDE.local.md          自分だけのProject事情(Port 3001、テストAccount、等)
└── .claude/
    └── rules/               特定のFileにだけ必要な細かいルール

複数のCLAUDE.mdは「上書き」ではなく「連結」される

GlobalとProjectの両方を置いた場合、Projectが完全に上書きするわけではありません。公式ドキュメントでは、見つかったCLAUDE.mdは上書きされずに、すべてContextへ連結されると説明されています。ディレクトリ階層では、ファイルシステムのルートから作業ディレクトリへ向かう順に並び、各階層ではCLAUDE.local.mdがCLAUDE.mdの後に追加されます。

そのため、Globalに「必ずnpmを使う」、Projectに「必ずpnpmを使う」のような矛盾を書くのは避けます。公式も、矛盾する指示があると、Claudeがどちらかを任意に選ぶ可能性があるため、指示同士を一貫させるよう案内しています。優先順位の詳しい確認方法はClaude CodeがCLAUDE.mdを読まない原因|配置場所・優先順位・読み込み範囲を確認にまとめています。

起動したDirectoryより上は起動時、下は必要になったときに読み込まれる

Claude Codeは、起動した作業ディレクトリと、その上位ディレクトリにあるCLAUDE.mdとCLAUDE.local.mdを、起動時に読み込みます。たとえばfoo/bar/で起動すると、foo/bar/CLAUDE.mdとfoo/CLAUDE.mdの両方が対象です。

一方、作業ディレクトリより下のサブディレクトリにあるCLAUDE.mdは、起動時には読み込まれません。Claudeがそのサブディレクトリのファイルを読み書き・編集したときに、読み込まれます。

Monorepoの構成例
my-monorepo/
├── CLAUDE.md          起動時に読み込まれる
├── frontend/
│   └── CLAUDE.md      frontend内のFileを扱うときに読み込まれる
└── backend/
    └── CLAUDE.md      backend内のFileを扱うときに読み込まれる

Rootには共通ルール、各Packageには固有のルールを置けば、Frontend作業中にBackend固有の指示を大量に読み込まずに済みます。Monorepoでの設計はClaude Code 大規模コードベース・モノレポ完全ガイドで詳しく扱っています。

File種類ごとのルールは.claude/rules/に分ける

さらに細かく分けたい場合は、.claude/rules/を使えます。大きなProjectでは、指示をTopic別のMarkdownファイルに分割できます。YAML Frontmatterのpathsを指定すると、対象のFileを扱うときだけRuleが読み込まれます。

.claude/rules/api.md
---
paths:
  - "src/api/**/*.ts"
---

# API Rules

API Handlerでは必ず入力値をValidationしてください。

標準Error Response形式を使用してください。

pathsを持つRuleは、Claudeが一致するFileをRead・Write・Editのツールで扱ったときに読み込まれます。pathsを持たないRuleは、常に読み込まれます。自分用のRuleは~/.claude/rules/に置け、全Projectへ適用されます。User-levelのRuleはProject Ruleより先に読み込まれます。.claude/rules/の詳しい使い方はClaude Code settings.json完全リファレンス|全フィールドの意味と.claude/rules/の使い方も参照してください。

CLAUDE.mdは200行未満を目安に、毎回必要な情報だけを書く

CLAUDE.mdは何でも書けるため、運用していると巨大化しがちです。Project概要、Coding Standard、Deployment手順、Database仕様、API一覧、障害対応を1つのFileに詰め込むと、Contextを多く消費し、重要な指示が埋もれます。公式ドキュメントでは、1つのCLAUDE.mdを200行未満を目安にすること、長いFileはContextを多く消費して指示への追従率が下がることが説明されています。

判断基準は「Claudeが毎Session知っている必要があるか」です。pnpmを使う、npm testを実行する、TypeScriptのstrict mode、APIのDirectoryはどこか、といった情報は毎回必要なのでCLAUDE.mdに向いています。一方、Production Deployの20 Stepや、特定障害の復旧手順、一度だけ使うMigration手順は、毎回必要とは限りません。それらはSkillや、paths付きのRuleに移します。

古くなった指示や、互いに矛盾する指示は、/doctor prompt-auditで調べられます。CLAUDE.md、CLAUDE.local.md、AGENTS.md、.claude/以下のRuleやSkillなどを調べ、問題点と修正案のレポートを出します(Claudeが適用を求められるまでは、Fileは変更されません)。

@でImportしてもContextは減らない

CLAUDE.mdから別Fileを@path/to/fileでImportできます。Relative PathはImportを書いたFile自身の場所を基準に解決され、Importしたファイルからさらに別のFileをImportすることもできます(最大4段階)。

CLAUDE.md
# Project

詳細なAPIルールは@docs/api-guidelines.mdを参照してください。

ただし、ImportしたFileも起動時にContextへ読み込まれます。「CLAUDE.mdを短く見せるために巨大なMarkdownをImportする」だけでは、Token消費は減りません。公式ドキュメントでも、ImportはFileの整理には役立つがContextの削減にはならないと説明されています。Contextを減らしたいなら、Path-specific Ruleを使います。

/initでProject CLAUDE.mdのひな形を作る

初めて使うProjectなら、/initが使えます。Claude CodeがCodebaseを解析して、Build Command、Test方法、Project Conventionなどを含むCLAUDE.mdの初期案を作ります。すでにCLAUDE.mdがある場合は、上書きせずに改善案を提示します。環境変数CLAUDE_CODE_NEW_INITを1にすると、CLAUDE.md・Skill・Hookのどれを作るかを聞く、対話式の流れにもできます。

自動生成した内容をそのまま放置するより、Claudeがコードを読んだだけでは判断できない情報を足すのが重要です。たとえば「この旧APIは互換性のため削除しない」「Migration Fileは手動で編集しない」「Production用のConfigは変更しない」といったProject固有の事情です。

/contextと/memoryで読み込みを確認する

CLAUDE.mdを作ったのにルールが無視されている気がしたら、まず本当に読み込まれているかを確認します。Claude Code上で/contextを実行すると、Memory filesの一覧で、Session開始時に読み込まれたCLAUDE.mdやRuleのFileを確認できます。一覧にないFileは、Claudeから見えていません。

/memoryでは、CLAUDE.mdやCLAUDE.local.mdの場所を、UserとProjectのScopeにまたがって一覧で見られます。まだ存在しないUserやProjectのCLAUDE.mdも一覧に出て、選ぶとその場で作成してEditorで開けます。~/.claude/CLAUDE.mdの場所が分からないときにも便利です。読み込みに問題があるときの切り分けは、Claude CodeがCLAUDE.mdを読まない原因|配置場所・優先順位・読み込み範囲を確認で詳しく解説しています。

AGENTS.mdがあるProjectでは読み込みルールに注意する

現在のClaude Code(v2.1.277以降)は、AGENTS.mdも直接読み込めます。CursorやCodexなど他のCoding Agent向けにAGENTS.mdを用意しているRepositoryでも、CLAUDE.mdを追加しなくても使えます。

ただし既定では、作業ディレクトリまたはその上位にCLAUDE.md・.claude/CLAUDE.md・CLAUDE.local.mdが1つもないときだけ、AGENTS.mdが読み込まれます。これらが1つでもあると、AGENTS.mdは読まれません。つまり、AGENTS.mdだけを使っているRepositoryに自分用のCLAUDE.local.mdを足すと、AGENTS.mdが読まれなくなります。~/.claude/CLAUDE.mdや.claude/rules/は、この判定には数えられません。

両方読ませたいときは、/configの「Project instructions」をclaude-md-and-agents-mdにします。「以前AGENTS.mdに書いたRuleが効かなくなった」という場合は、この読み込みルールを確認してください。

CLAUDE.mdとAuto Memoryは別のもの

Claude CodeにはAuto Memoryもあります。CLAUDE.mdは「人間が明示的に書く指示」、Auto Memoryは「Claudeが過去の修正や好みから学んで自分で書くメモ」で、公式ドキュメントでも別のMemory Systemとして整理されています。Auto Memoryがあっても、CLAUDE.mdが不要になるわけではありません。重要なProject Ruleは、CLAUDE.mdへ明示的に書くほうが確実です。使い分けはClaude Code 記憶戦略完全ガイド|CLAUDE.md・Auto Memory・MCPサーバーの使い分けとチーム設計パターンで解説しています。

「必ず守らせたい」ルールはCLAUDE.mdではなくHookやPermissionsに任せる

CLAUDE.mdはContextとして読まれる指示で、強制的なSecurity Policyではありません。「このCommandは絶対に実行しない」「編集のたびに必ずFormatterを実行する」のように、確実な動作が必要なものは、PermissionsやPreToolUse Hookなどの仕組みを使います。CLAUDE.mdは、あくまで「このProjectではこう作業する」という行動指針に向いています。

組織で配布するならManaged policyのCLAUDE.md

会社全体のCoding StandardやSecurity Policyのように、全ユーザーに適用したい指示は、IT・DevOpsが配布するManaged policyのCLAUDE.mdで管理できます。置き場所はOSごとに決まっています。

  • macOS:/Library/Application Support/ClaudeCode/CLAUDE.md
  • LinuxとWSL:/etc/claude-code/CLAUDE.md
  • Windows:C:\Program Files\ClaudeCode\CLAUDE.md

個人の設定では除外できず、User・ProjectのCLAUDE.mdより先に読み込まれます。個人や小規模なチームでは、最初は意識しなくてよいでしょう。

CLAUDE.mdの置き場所に関するよくある質問

Q./CLAUDE.mdと./.claude/CLAUDE.mdは、どちらを使うべきですか?

AどちらもProject用のCLAUDE.mdとして使えます。単純なProjectなら./CLAUDE.mdが分かりやすく、Claude Code関連のFileをまとめたいなら./.claude/CLAUDE.mdが便利です。Project内でどちらかに統一すれば十分です。

QGlobalとProjectに矛盾する指示を書いたら、どちらが優先されますか?

A設定ファイルのような上書きにはなりません。両方がContextへ連結され、矛盾していると、Claudeがどちらかを任意に選ぶ可能性があると公式に説明されています。Projectが後から読まれても、必ず勝つわけではないため、矛盾そのものを作らないようにします。

QCLAUDE.local.mdはコミットしてもよいですか?

A個人用なので、.gitignoreに追加してコミットしないのが公式の推奨です。複数のGit Worktreeで共有したい場合は、Home Directoryに個人用Fileを作って、@~/.claude/...でImportします。

QサブディレクトリのCLAUDE.mdが、起動直後の/contextに出てきません。不具合ですか?

A不具合とは限りません。作業ディレクトリより下のCLAUDE.mdは、起動時ではなく、Claudeがそのサブディレクトリのファイルを読み書き・編集したときに読み込まれます。

QCLAUDE.mdを長くなりすぎないようにするには、どうすればよいですか?

A1つのFileを200行未満にすることが目安です。特定のFile種類やDirectoryでしか必要ない指示は、pathsを指定した.claude/rules/へ移します。複数Stepの手順はSkillにします。@でImportしても、Context量は減りません。

CLAUDE.mdの置き場所は「誰に適用するか」で決める

CLAUDE.mdをどこに置くか迷ったら、「誰に適用したいルールか」で判断します。自分が使うすべてのRepositoryで共通なら~/.claude/CLAUDE.md、そのRepositoryを扱う全員に必要なら./CLAUDE.md(または./.claude/CLAUDE.md)、そのRepositoryで自分だけが必要なら./CLAUDE.local.mdです。特定のDirectoryやFile種類でしか必要ないなら、サブディレクトリのCLAUDE.mdや.claude/rules/を使います。

複数のCLAUDE.mdは設定ファイルのように上書きされるのではなく、Contextへ連結されます。そのため、Globalには普遍的な個人ルール、Projectにはそのリポジトリ固有のルール、Localには自分だけのProject事情、と責務を分けて、矛盾を作らないことが重要です。

そしてCLAUDE.mdを巨大な開発マニュアルにせず、Claudeが毎Session必ず知っておく必要がある情報だけを、200行未満の短さで維持するのが基本です。長くなってきたら、Path-specific RuleやSkillへ分けると、Contextを節約しながら指示も守られやすくなります。