🌐 English
階層マージの仕組み
IMPORTANT
→ Why: Context Rot 対策(スコープごとの分離で不要な情報の蓄積を防ぐ) → Why: Priority Saturation 対策(必要な階層だけをマージし常駐トークンを最小化)
CLAUDE.md の階層構造
CLAUDE.md は複数の場所に配置でき、階層的にマージされる。
sh
~/.claude/
└── CLAUDE.md # グローバル(全プロジェクト共通・最上位)
my-project/ # プロジェクトルート
├── CLAUDE.md # プロジェクト共通(Git管理推奨)
├── CLAUDE.local.md # ローカル専用(.gitignore推奨)
└── src/ # 作業ディレクトリ例
├── CLAUDE.md # サブディレクトリ専用(作業時のみマージ)
└── features/
└── CLAUDE.md # さらに深い階層も可能重要な原則: より具体的(深い階層)な指示が、より一般的な指示を上書きする。
各階層の役割
| ファイル | Git管理 | 用途 | 例 |
|---|---|---|---|
~/.claude/CLAUDE.md | 管理外 | 個人の好み(全プロジェクト共通) | 「日本語で応答」「関数型を優先」 |
./CLAUDE.md | する | チーム規約・プロジェクト概要 | 技術スタック、テスト方針 |
./CLAUDE.local.md | しない | 個人のローカル環境情報 | ローカルDBの接続先、実験的設定 |
./src/CLAUDE.md | する | サブディレクトリ固有の設計方針 | feature moduleの責務分離ルール |
なぜ階層マージなのか
Context Rot 対策
サブディレクトリの CLAUDE.md は、そのディレクトリで作業している時だけ追加でマージされる。つまり、src/features/ で作業していない時はその CLAUDE.md はコンテキストを消費しない。これにより、常駐する指示の総量を最小限に抑え、Priority Saturation のリスクも軽減できる。
チーム vs 個人の分離
./CLAUDE.md(チーム共有)と ./CLAUDE.local.md(個人用)を分けることで、チームの規約と個人の好みを独立に管理できる。
設計のガイドライン
- グローバル: 言語設定、個人の好みなど全プロジェクトに適用する情報のみ
- プロジェクトルート: チーム全員が従うべき規約。200行以内を厳守
- ローカル: Git管理しない個人設定。環境依存の情報
- サブディレクトリ: そのディレクトリ固有の設計方針。プロジェクトルートの CLAUDE.md を補完
前へ: CLAUDE.md の設計原理