Claude Code の CLAUDE.md 配置場所と優先順位
Claude Code の CLAUDE.md 配置場所と優先順位
Claude Code はプロジェクトの指示書として CLAUDE.md を読み込むが、配置場所によってスコープと優先順位が異なる。
配置場所一覧
| 優先度 | ファイル | スコープ | Git管理 |
|---|---|---|---|
| 1(最高) | .claude/CLAUDE.local.md | ローカル個人用(自分 × このリポジトリ) | gitignore対象 |
| 2 | CLAUDE.md | プロジェクト共有 | コミット対象 |
| 2 | .claude/CLAUDE.md | プロジェクト共有(上と同等) | コミット対象 |
| 3(最低) | ~/.claude/CLAUDE.md | グローバル個人用(全プロジェクト共通) | 任意 |
より具体的なスコープの指示が優先される。すべてのファイルは共存可能で、起動時にまとめて読み込まれる。
各ファイルの使い分け
CLAUDE.md(プロジェクトルート)
チームで共有するプロジェクトの指示書。リポジトリにコミットして全員に適用する。
# MyProject
## Commands
make test # テスト実行
make build # ビルド
## Architecture
src/ 配下は feature-based で構成....claude/CLAUDE.md
ルートの CLAUDE.md と同じプロジェクトレベル。.claude/ ディレクトリにまとめたい場合に使う。ルートの CLAUDE.md との違いは配置場所のみ。
.claude/CLAUDE.local.md
個人用のオーバーライド。gitignore されるため、自分だけのカスタマイズを書ける。
# ローカル設定
- テスト実行時は Docker の DB を使う(チーム標準はモック)
- PR 作成時のレビュアーは自分を除外~/.claude/CLAUDE.md
全プロジェクトに適用されるグローバル設定。コーディングスタイルや共通ルールを書く。
# Global Rules
- コミットメッセージは日本語
- エラーハンドリングは必ず明示的にdotfiles で管理する場合
個人プロジェクトの CLAUDE.md を dotfiles で管理する場合、symlink で配置するのがシンプル。
# Makefile 例
ln -sf $(DOTFILES_DIR)/project-claude/CLAUDE.md $(HOME)/myproject/CLAUDE.md.claude/CLAUDE.md は Claude Code のランタイムデータ(sessions/, history.jsonl 等)と同じディレクトリに置くことになるため、ディレクトリ丸ごと symlink にはできない点に注意。個別ファイルの symlink にする。
まとめ
- チーム共有 → ルートの
CLAUDE.mdをコミット - 個人カスタマイズ →
.claude/CLAUDE.local.md - 全プロジェクト共通 →
~/.claude/CLAUDE.md - 個人プロジェクトで dotfiles 管理 → ルートの
CLAUDE.mdを symlink