Claude Codeは毎回まっさらな状態でセッションを始めます。「毎回同じ説明をしている」「同じ指摘を繰り返している」なら、それはCLAUDE.mdと自動メモリ(auto memory)の出番です。この記事では、Claude Codeにプロジェクトの知識を記憶させる2つの仕組みを、置き場所・読み込み順・書き方のコツまで実践的に解説します。
記憶を引き継ぐ2つの仕組み
セッションをまたいで知識を運ぶ方法は2つあり、どちらもセッション開始時に読み込まれます。
| CLAUDE.md | 自動メモリ(auto memory) | |
|---|---|---|
| 誰が書く | あなた | Claude自身 |
| 内容 | 指示・ルール | 学習・パターン |
| 使いどころ | コーディング規約、ワークフロー、アーキテクチャ | あなたの好み、修正指示、コードから読み取れない文脈 |
CLAUDE.mdは「あなたがClaudeを導きたいとき」、自動メモリは「修正を手間なく学ばせたいとき」に使います。 どちらも強制設定ではなく「文脈」として扱われる点に注意してください。絶対に守らせたい制約はフック(PreToolUseフック)で実装します。
CLAUDE.mdの置き場所と読み込み順
CLAUDE.mdは複数の場所に置け、それぞれスコープが異なります。読み込みは「広いスコープ→狭いスコープ」の順で、後に読まれたものほど優先されます。
| スコープ | 置き場所 | 用途 |
|---|---|---|
| 組織ポリシー | 管理者が配布(/etc/claude-code/CLAUDE.mdなど) |
会社全体の規約・コンプライアンス |
| ユーザー | ~/.claude/CLAUDE.md |
全プロジェクト共通の個人設定 |
| プロジェクト | ./CLAUDE.md または ./.claude/CLAUDE.md |
チーム共有のプロジェクト指示 |
| ローカル | ./CLAUDE.local.md |
個人的なプロジェクト設定(.gitignore推奨) |
作業ディレクトリとその上位すべてのCLAUDE.mdが起動時に読み込まれ、連結されます。サブディレクトリのCLAUDE.mdは、そのディレクトリのファイルをClaudeが読んだときに随時読み込まれます。
現在のセッションでどのファイルが読み込まれたかは/contextコマンドの「Memory files」で確認できます。
/initで自動生成する
ゼロから書く必要はありません。/initを実行すると、Claudeがコードベースを解析し、ビルドコマンド・テスト方法・命名規約などを含んだCLAUDE.mdのたたき台を自動生成してくれます。既にファイルがある場合は、上書きではなく改善提案をしてくれます。
効果的な書き方3原則
CLAUDE.mdは毎セッションの文脈トークンを消費するため、書き方が守られやすさを左右します。
- サイズ:1ファイル200行以内が目安。長いほど文脈を圧迫し、遵守率が下がる
- 構造:Markdownの見出しと箇条書きで整理する。密な文章より読み取りやすい
- 具体性:検証できるレベルで書く
具体性の例:
- ×「コードを整形する」 → ○「インデントはスペース2つを使う」
- ×「テストする」 → ○「コミット前に
npm testを実行する」 - ×「ファイルを整理する」 → ○「APIハンドラは
src/api/handlers/に置く」
@importで分割する
CLAUDE.mdは@path/to/file構文で他ファイルを読み込めます。
プロジェクト概要は @README を、npmコマンドは @package.json を参照。
# 追加指示
- gitワークフロー @docs/git-instructions.md
相対パスは「そのファイルからの相対」で解決されます。なお、importしても内容は起動時に文脈へ展開されるため、トークン削減目的には向きません。整理のための機能と捉えてください。パスを文字として書きたいだけなら` @README `のようにバッククォートで囲みます。
自動メモリ(auto memory)
自動メモリは、あなたが何も書かなくてもClaudeが学びを蓄積する仕組みです。既定でオンになっており、4種類のメモを保存します。
user:あなたの役割・専門・作業の好みfeedback:あなたが与えた修正、承認したアプローチproject:進行中の作業・締切・コードから読み取れない決定事項reference:課題管理ツールやダッシュボードなど外部情報のありか
コードから読み取れること(アーキテクチャ、ファイルパスなど)や、CLAUDE.mdに既に書かれていることは保存しません。「pnpmを使って、npmは使わないで」のように頼めば、自動メモリに記録されます。
保存先はリポジトリごとの~/.claude/projects/<project>/memory/で、MEMORY.mdという索引と、トピックごとのファイルで構成されます。索引の先頭200行(または25KB)が毎セッション読み込まれます。中身はただのMarkdownなので、/memoryコマンドから閲覧・編集・削除できます。
オフにしたいときは/memoryのトグル、または設定で"autoMemoryEnabled": falseを指定します。
うまく従ってくれないときは
CLAUDE.mdはシステムプロンプトそのものではなく、その後のユーザーメッセージとして渡されるため、厳密な遵守は保証されません。次を確認してください。
/contextで対象のCLAUDE.mdが読み込まれているか確認する- 指示をより具体的にする(「2スペース」など)
- 複数ファイル間で矛盾した指示がないか見直す
- 「コミット前に必ず実行」のような確実性が必要なものは、CLAUDE.mdではなくフックで実装する
まとめ
CLAUDE.mdと自動メモリは、Claude Codeを「使うたびに賢くなる相棒」に育てる仕組みです。まずは/initでたたき台を作り、200行以内・具体的・構造化を意識して整えましょう。同じ指摘を2回した内容はCLAUDE.mdへ、細かな好みは自動メモリへ。この分担を意識するだけで、Claude Codeの作業品質が目に見えて安定します。
Views: 0

