`CLAUDE.md` は階層ごとに役割が異なる。適切な階層に適切な内容を書くことで、設定の重複や競合を防げる。
## ユーザーの CLAUDE.md (`~/.claude/CLAUDE.md`)
**目的:** 個人の全プロジェクト共通設定
**書くべき内容:**
- 応答言語 (日本語で回答など)
- 個人的なコーディングスタイル
- 好みのツールやコマンド
**アンチパターン:**
- プロジェクト固有の設定 → 他のプロジェクトにも適用されてしまう
- チームで共有すべきルール → 自分だけに適用され、チームに共有されない
## プロジェクトルートの CLAUDE.md (`./CLAUDE.md`)
**目的:** チーム全体で共有するプロジェクトルール
**書くべき内容:**
- コーディング規約
- [[Git]] 運用ルール (コミットメッセージ形式など)
- 全サービス共通のアーキテクチャ方針
**アンチパターン:**
- 個人的な好み → チーム全員に強制されてしまう
- サービス固有の設定 → 関係ないサービスにも読み込まれる
## サブディレクトリの CLAUDE.md (`./sub-directory/CLAUDE.md`)
**目的:** 特定サービス・モジュール固有のルール
**書くべき内容:**
- 使用フレームワーク・ライブラリの指定
- サービス固有のテスト方針
- サービス固有の命名規則
**アンチパターン:**
- 共通ルールの重複 → ルートに書けば済む内容を重複して書く
- 他のサービスにも適用したいルール → ルートに書くべき
## プロジェクトルートの CLAUDE.local.md (`./CLAUDE.local.md`)
**目的:** 個人のプロジェクト固有設定 (Git 管理外)
**書くべき内容:**
- ローカル環境固有のパス設定
- 個人的なデバッグ用設定
- 一時的な作業メモ
**アンチパターン:**
- チームで共有すべき設定 → Git 管理外なので他のメンバーに共有されない
- 永続化したい設定 → `.gitignore` されているため消失リスクがある
## 関連ノート
- **[前提]** [[CLAUDE.md の読み込みルール]]: 本ノートの階層別設計はこの読み込みルールの上に成り立つ運用論
- **[派生]** [[複数の CLAUDE.md 読み込んだ場合の優先順位]]: 本ノートの階層別書き分けと合わせて、競合回避の仕組みを押さえる