Skip to content

🌐 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 の設計原理

次へ: CLAUDE.local.md の運用

Released under the CC BY 4.0 License.