コンテンツにスキップ

CLAUDE.md と auto memory を使いこなす

tier 1(まず入れる)確認 1 か月前(2026年8月23日)

どこまで来たら使えたと言えるか

面: 両方で同じ

段達成したと言える状態
1. 触るセッションを開き直し、/context の Memory files に自分が書いた CLAUDE.md が出ることを確認する
2. 入れるプロジェクトの CLAUDE.md に、そのリポジトリでしか通じない規約だけが残っている(一般論が無い)
3. 効かせる必ず守らせたい指示を CLAUDE.md から hook へ移し、/compact をまたいでも効くことを確認した

何のためのものか

セッションをまたいで知識を持ち越す仕組みが 2 つある。ユーザーが書く CLAUDE.md files と、Claude が自分で書く auto memory。どちらも毎回の会話開始時に読み込まれる。

どちらも context であって、強制される設定ではない。 ここを取り違えると、いくら書いても守られないという結論になる。

触る

  1. /init を実行して初期の CLAUDE.md を作る。既にある場合は上書きせず改善案が出る
  2. 1 行だけ規約を書き足す
  3. セッションを開き直し、/context を実行して Memory files に出ているか見る

書いたものが読み込まれているかは、/memory(ファイルの場所の一覧)ではなく /context(実際に読み込まれたもの)で確認する。この 2 つは別物である。

入れる

置き場所を用途で分ける。読み込み順は広いスコープから具体的なものへで、連結される(上書きではない)。

置き場所何を書くか
~/.claude/CLAUDE.md自分の癖。全プロジェクトに効く
./CLAUDE.mdチームで共有する規約。ソース管理に乗せる
./CLAUDE.local.md自分だけの事情。.gitignore に入れる

増えてきたら .claude/rules/ に分割する。paths frontmatter を付ければ、そのパターンのファイルを Claude が読んだときだけ効く。

1 ファイル 200 行未満が目安。 長いほどコンテキストを食い、遵守率が下がる。/doctor はチェックイン済み CLAUDE.md の削減案を出す(コードベースから分かることを削り、落とし穴と規約を残す)。

効かせる

  • 確実に止めたいものは hook にする。 CLAUDE.md はシステムプロンプトではなくユーザーメッセージとして届くため、厳密な遵守は保証されない。特定の時点で必ず実行させたい指示は PreToolUse hook として書く
  • /compact で消えるものを知る。 プロジェクトルートの CLAUDE.md と auto memory はディスクから再注入されるが、paths: frontmatter を持つ rule とサブディレクトリのネストした CLAUDE.md は、対象ファイルを再度読むまで失われる。またいで効かせたい rule は paths: を外す
  • auto memory の上限を知る。 MEMORY.md は先頭 200 行または 25KB のいずれか早い方までしか会話開始時に読まれない。トピックファイルは必要になったときに読まれる

落とし穴

  • @path import はコンテキスト削減にならない。 整理には役立つが、import 先も起動時に展開されて読み込まれる
  • 矛盾するルールを置くと、どちらかが任意に選ばれる。 優先順位は決まらない
  • --add-dir で足したディレクトリの CLAUDE.md は既定では読まれない。 CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1 が要る
  • メイン会話の auto memory は subagent には読み込まれない。 例外は fork
  • Claude Code は AGENTS.md を読まない。既にあるなら @AGENTS.md を import する CLAUDE.md を置く

根拠と前後

このページが書ける範囲は、根拠にした facts に書かれていることだけです。 仕様そのものはそちらを読んでください。