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
この投稿は投稿者によって CC BY 4.0 の下でライセンスされています。