🧠
Claude Code メモリ運用の教科書 – 迷わないフォルダ階層とサブツリー活用
この記事でわかること
- Claude Code の「メモリ」って何?
- どこに
CLAUDE.md
を置けば良い?- サブフォルダ用
CLAUDE.md
の書き分け例- 運用が楽になるチェックリスト
1. メモリを 3 行でつかむ
- メモリは 箇条書きのルール帳。Claude Code は起動時にこれを読み取って文脈にする。
- ルール帳は フォルダ階層ごとに置ける。近いフォルダほど「今の作業」にだけ効く。
-
詳しい資料は
import
でリンクし、CLAUDE.md
自体は 30 行以内にまとめる。
Note: 「30 行以内」という数値は公式ドキュメントに定められた上限ではありません。本記事が トークン節約 と 可読性 を目的に提案する運用目安です。プロジェクトの規模やニーズに合わせて自由に調整してください。
2. 3 つの置き場所と役割
どこに置く? | 誰のため? | 主な内容例 |
---|---|---|
./CLAUDE.md (リポジトリ直下) |
プロジェクト全員 | コーディング規約 / Git 運用ルール |
src/feature/CLAUDE.md など深い階層 |
そのフォルダで作業する人 | API 一覧 / モジュール制約 |
~/.claude/CLAUDE.md |
あなた個人 | 好きなインデント幅 / エイリアス |
ポイント
CLAUDE.local.md
は今後非推奨。個人用メモリは ホーム直下に置いてimport
で参照する。- 階層が深いほど “必要なときだけ” 読み込まれるのでメモリが散らからない。
3. 読み込み順をイメージで理解
[作業ファイル] ← 開いているファイル
│
└ src/feature/CLAUDE.md ← 直前で追加読み込み(Lazy)
│
└ src/CLAUDE.md ← ファイル読み込み時にロード(Lazy)
│
└ ./CLAUDE.md ← プロジェクト共通
Where to launch?
上図は プロジェクトルート(例:repo/
)でclaude
コマンドを実行してセッションを開始した場合を想定しています。
任意のサブディレクトリでclaude
を起動した場合は、そのディレクトリがcwd
となり、メモリのロード順もそれに合わせて変化します。
- 起動時 : カレントディレクトリ → ルートへ向かって順番にロード。
-
ファイルを開く瞬間 : そのファイルより下の階層にある
CLAUDE.md
が追加で読み込まれる。
補足: プロジェクトルートで
claude
を起動した場合、src/CLAUDE.md
など 子ディレクトリ のメモリは 起動時には読み込まれません。src/feature/foo.ts
などそのサブツリー内のファイルを Claude が読むタイミングで初めて “Lazy-Load” されます。
4. フォルダ別テンプレート
CLAUDE.md
4-1. ルート用 # プロジェクト共通ルール
## コーディング規約
- インデントは 2 スペース
- snake_case 推奨
## Git
- デフォルトは squash merge
- `feat:` / `fix:` コミット prefix 必須
## 参考
- アーキテクチャ図 @docs/architecture.md
src/feature/CLAUDE.md
)
4-2. モジュール用 (メモ: 公開 API を
CLAUDE.md
に直接書くかどうかは、モジュールが「どれくらい頻繁に変わるか」で選択してください。
- 安定している場合 → 箇条書きで列挙すると Claude が補完しやすい。
- 変化が激しい場合 → ここには書かず @docs/feature/openapi.md や型定義ファイルを import して参照させる方が陳腐化を防げます。
また、CI でCLAUDE.md
と実コードのシグネチャ差分を検出するスクリプトを組むとドリフトを最小化できます。
# Feature モジュール
## 責務
- ユーザの「いいね」ロジックを扱う
## 公開 API (任意)
- ※安定している場合に列挙。変動が大きい場合は下記のように import で参照
- @docs/feature/openapi.md
- `toggleLike(userId, postId): void`
- `getLikeCount(postId): number`
## 制約
- DB 直アクセス禁止。必ず @src/shared/db を経由
tests/CLAUDE.md
)
4-3. テスト用 (# テストポリシー
- 行カバレッジ 80% 以上
- 外部 API は nock でモック
- ファイル名は *.spec.ts とする
5. 使いながら更新するコツ
操作 | 効果 |
---|---|
メッセージ先頭に #
|
その行をメモリへ即追加 (保存先は選択可能) |
/memory と入力 |
既存メモリをエディタで一括編集 |
6. 月イチ点検チェックリスト
-
CLAUDE.md
が 30 行超え → 詳細を別ファイル &import
- 重複ルールがないか確認
-
新しいモジュールを追加したら
CLAUDE.md
を忘れず作成
7. まとめ
- 共通ルールは浅く、専門ルールは深く
- 詳しい説明は import で外出し
- メモリはこまめに棚卸し — これだけで Claude Code はブレずに賢く動きます。
開発フローに組み込んで、プロンプトを短く・レビューを速くしてみてください。疑問や改善アイデアがあれば気軽にコメントをどうぞ!
Discussion