[[Claude Code]] は `CLAUDE.md` ファイルを複数の階層から読み込む。読み込みタイミングには「起動時」と「ファイル操作時」の 2 種類がある。
## 階層構造
| 階層 | 場所 | 用途 |
|:--|:--|:--|
| グローバル | `~/.claude/CLAUDE.md` | 全プロジェクト共通の個人設定 |
| プロジェクト | `./CLAUDE.md` または `./.claude/CLAUDE.md` | プロジェクト固有の指示 |
| サブディレクトリ | `./services/api/CLAUDE.md` など | 特定モジュール固有の指示 |
## 読み込みタイミング
**起動時 (即時読み込み):**
- カレントディレクトリからルート方向へ「上に」遡りながら、途中にある `CLAUDE.md` を全て読み込む
- 例: `/project/src/` で起動 → `/project/CLAUDE.md` と `/project/src/CLAUDE.md` の両方が読まれる
**ファイル操作時 (遅延読み込み):**
- カレントディレクトリより「下の」サブディレクトリの `CLAUDE.md` は、そのディレクトリ内のファイルを読み書きしたタイミングで初めて読み込まれる
- 例: ルートで起動後、`services/api/` 内のファイルを読むと → その時点で `services/api/CLAUDE.md` が読み込まれる
## モノレポでの活用
```
monorepo/
├── CLAUDE.md # 共通ルール
├── services/
│ ├── api/
│ │ └── CLAUDE.md # API固有のルール
│ └── frontend/
│ └── CLAUDE.md # フロントエンド固有のルール
```
この構成により、各サービスに固有の指示 (使用フレームワーク、命名規則、テスト方針など) を分離でき、必要なときだけ読み込まれる。
## 関連ノート
- **[深掘り]** [[複数の CLAUDE.md 読み込んだ場合の優先順位]]: 本ノートの読み込み挙動を、競合時のオーバーライド挙動まで掘り下げた内容
- **[応用]** [[Claude Code の Hooks で音を鳴らして通知を受け取る]]: 本ノートの設定読み込みルールを前提とした具体的な活用
- **[応用]** [[Claude Code に rm ではなく trash を使わせる]]: 本ノートの読み込みルールを前提に、`CLAUDE.md` の活用方法を示す
- **[派生]** [[CLAUDE.md の階層別設計ガイド]]: 本ノートの読み込みルールを前提に、書き分け方を扱う別トピック