Claude Codeの仕組み講座(講師のためのエンジニア水準)

区分3 拡張の仕組み★★★

No.08 CLAUDE.md と記憶の読み込まれ方

CLAUDE.md と記憶は、会話のたびにまっさらになるAIへ「毎回の前提」を渡す2つの仕組みです。受講生の「言ったのに守らない」「前に教えたのに忘れた」の大半はここが原因なので、この単元はしっかりやります。
目次
  1. 第0章 前提知識
  2. 第1章 CLAUDE.md が置かれる場所と、読まれる時機
  3. 第2章 @ で別のファイルを取り込む
  4. 第3章 記憶(auto memory)
  5. 確認問題

第0章 前提知識

① 毎回まっさらな机に、前提を置いておく

AIが一度に見渡せる範囲を、コンテキスト(机の上)と呼びます(No.05)。 会話が終わると机は片付けられ、次の会話は何も置かれていない机から始まります。前回の指示も失敗も持ち越されません。

事務所でいえば、毎朝まったく記憶のない新人が出社してくるようなものです。 だから新人の机に、最初から「社内の決まり」と「引き継ぎメモ」を置いておきます。 その2つが、この単元の主役の CLAUDE.md と記憶(公式名:auto memory)です。

② 似た2つの違い

CLAUDE.md 記憶(auto memory)
書く人 あなた Claude が自分で
中身 指示・決まり 訂正されたこと・好み・調べた場所
机に置かれる時機 毎回の最初 毎回の最初(ただし索引だけ)

どちらも、AIへの命令ではなく、机の上に置かれる読み物です。この点は後の章で大事になります。

第1章 CLAUDE.md が置かれる場所と、読まれる時機

① 置き場所は4種類 必ず覚える

CLAUDE.md は、置く場所で「誰に効くか」が変わります。 公式の表を、読み込まれる順に並べました。

種類 置き場所 効く範囲
組織の管理用(会社のIT担当などが全員分に配る物) Macなら /Library/Application Support/ClaudeCode/CLAUDE.md そのパソコンの全員・全作業場
ユーザー用 ~/.claude/CLAUDE.md 自分の全作業場
作業場用 ./CLAUDE.md または ./.claude/CLAUDE.md その作業場
個人用ローカル ./CLAUDE.local.md 自分だけ・その作業場だけ

「作業場」は、いま開いているフォルダのことです(公式の説明では「プロジェクト」)。 ~ は自分のホームフォルダ(パソコンの中の、自分用のフォルダ)、./ は作業場の一番上のフォルダを指します。

並んでいる順が、そのまま机に置かれる順です。 広い範囲の物が先に置かれ、狭い範囲の物が後に置かれます。

② 起動時に読む物と、あとで読む物 必ず覚える

読み込みには2つの時機があります。

たとえば foo/bar/ で起動すると、foo/CLAUDE.md と foo/bar/CLAUDE.md が最初から机に置かれます。 foo/bar/baz/CLAUDE.md は、AIが baz の中のファイルに触れた瞬間に追加されます。 見つかった物は上書きされず、全部が足されます。同じ階層なら、CLAUDE.local.md が CLAUDE.md の後ろに置かれます。

仕組みとして大事な点が2つあります。

1つ目は、CLAUDE.md の中身がシステムプロンプト(AIの土台になる指示)には入らないことです。 会話の最初の「ユーザーのメッセージ」として届くので、AIにとっては「あなたが最初に送ってきた長いメッセージ」と同じ扱いです。

2つ目は、会話の途中で編集しても、すぐには反映されないことです。 作業場の一番上にある CLAUDE.md とユーザー用の CLAUDE.md は、起動時に1回だけ読まれます。 編集の内容は、次の /clear・/compact・再起動まで反映されません(No.07 と同じ内容です)。 下のフォルダの CLAUDE.md は、読み込まれる前に編集すれば、そのまま効きます。

○ 受講生によく聞かれる質問:「書いたのに守ってくれません。なぜですか」
→ 答え方:CLAUDE.md は命令として組み込まれる物ではなく、読み物として机に置かれる物だからです。矛盾する2行があるとAIはどちらかを選びます。まず /context で、そのファイルが本当に読み込まれているかを見ます。本当に外せない事は、仕組みで止めます(フック。No.10)
○ 関係する単元:No.05 コンテキストウィンドウの中身(机の広さの話)

③ あなたの環境では さらっと

あなたの メイン作業場/CLAUDE.md は、約77行・約15KBです。 ~/.claude/CLAUDE.md は、この講座を書いた時点では存在しません。 つまり、あなたの決まりは全部が作業場用のファイルに入っています。

公式の目安は、1ファイル200行以内です。 77行はその目安の内なので、長さの面では問題ありません。

作業場の .claude/rules/ というフォルダに置くルールのファイルは、先頭に paths: を書くと「その種類のファイルに触れた時だけ」読み込まれます。毎回読ませなくてよい分、机が軽くなります。

読み込まれているかを確かめるのは /context です。読み込まれた CLAUDE.md と記憶のファイルが一覧で出ます。 /memory は、その一覧から選んで開いて直す画面です(No.03・No.05 も同じ説明です)。

第2章 @ で別のファイルを取り込む

① 書き方 必ず覚える

CLAUDE.md の中に @ と、取り込みたいファイルの場所を書くと、そのファイルの中身が一緒に机へ置かれます。

詳しい進め方は @docs/git-instructions.md を見る。

公式で確かめた決まりは次の通りです。

作業場の外にあるファイルを取り込むと、初めての時に承認の画面が出ます。知らないうちに他人の物を読み込まないための安全装置です。

② 取り込んでも軽くならない 必ず覚える

ここは勘違いしやすい点です。 @ で別ファイルに分けても、起動時に全部が机へ置かれます。 整理しやすくなるだけで、机の広さは変わりません。

机を軽くしたいなら、第1章③の paths: つきのルールか、スキル(No.09)に移します。

第3章 記憶(auto memory)

① Claude が自分で書くメモ 必ず覚える

記憶は、あなたの訂正や好みを見て、Claude が自分で書いておくメモです。 メモの種類は4つあります(公式の分類):あなたの立場(user)、直された事や認められたやり方(feedback)、進行中の仕事の事情(project)、外のどこに情報があるか(reference)。

コードを見れば分かる事や、CLAUDE.md にすでに書いてある事は、書き留めません。 保存するかどうかは、「今後の会話で役に立つか」で Claude が判断します。

② 置き場所と、索引だけが毎回読まれる仕組み 必ず覚える

標準の置き場所は、~/.claude/projects/<作業場ごとの名前>/memory/ です。 同じ git のリポジトリ(git で変更履歴を管理しているフォルダ)なら、フォルダが違っても同じ記憶の置き場を使います。 置き場所を変えたい時は、設定の autoMemoryDirectory という項目で指定します。

中身は2種類です。

毎回の最初に読まれるのは、索引の先頭200行か25KBまで(先に来た方)。 KB(キロバイト)はファイルの大きさの単位で、25KBは日本語でおよそ8,000文字です。 索引より後ろの内容は、起動時には読まれません。 1件ごとのファイルは起動時に読まれず、AIが必要だと思った時に、ファイルを読む道具で自分で開きます。

だから索引は、1行で「何のメモか」が分かる短い目次にして、詳細は各ファイルに逃がします。

③ あなたの環境では 必ず覚える

あなたの作業場では、autoMemoryDirectory で記憶の置き場所を作業場の memory/ に変えています。 そこにある memory/MEMORY.md は、約173行・約34KBです。 行数は上限の200行の内ですが、容量は25KBを超えています。

先頭から25KB分を数えると、およそ130行目あたりまでです。 公式の上限は「先頭200行か25KB、先に来た方」なので、それより後ろの約40行は、起動時に読み込まれていない可能性が高いです。 索引の後ろの方にある記憶は、会話の最初には机に載っていません。

確かめるには、/context で読み込まれた記憶の量を見るか、/memory で索引を開いて長さを見ます。講義で「索引は短く」を伝える実例になります。

④ 圧縮した後は

長い会話は途中で要約されます(圧縮。No.06)。 作業場の一番上にある CLAUDE.md は、圧縮の後でもファイルから読み直され、会話中に編集した内容も反映されます。 一方、会話の中だけで言った指示は、要約で消えることがあります。「ずっと守らせたい」ことは、CLAUDE.md か記憶に書かせます。

○ 受講生によく聞かれる質問:「記憶と CLAUDE.md、どっちに書けばいいですか」
→ 答え方:自分で決めて必ず守らせたい決まりは CLAUDE.md、直されて学んだ好みは記憶です。迷ったら「誰が書くか」で分けます
○ 受講生によく聞かれる質問:「覚えさせたのに、別のPCで忘れています」
→ 答え方:記憶はそのパソコンの中のファイルで、別のパソコンやクラウドには共有されません

CLAUDE.md=あなたが書く・起動時に机へ置かれる読み物。記憶=Claudeが書く・索引(先頭200行か25KB)だけ毎回。どちらも命令ではなく、強制は別の仕組み。

確認問題

問1 受講生が「`foo/bar/` で Claude Code を起動しました。`foo/bar/baz/CLAUDE.md` の内容がいつ机に置かれるか分かりません」と言っています。正しい説明は?

問2 CLAUDE.md が長くなったので、`@docs/rules.md` のように別ファイルに分けて取り込みました。机の重さはどうなりますか?

問3 記憶の索引 `MEMORY.md` が長くなりすぎると、どうなりますか?

問4 「返事は必ず日本語」と CLAUDE.md に書いたのに、たまに英語で返ってきます。仕組みから説明すると?

出典:Claude Code 公式ドキュメント「How Claude remembers your project」(https://code.claude.com/docs/en/memory)/「Explore the context window」(https://code.claude.com/docs/en/context-window)/「How Claude Code uses prompt caching」(https://code.claude.com/docs/en/prompt-caching)/手元の メイン作業場/CLAUDE.md・memory/MEMORY.md・.claude/settings.json の実物(2026年10月13日に測定)。数字は2026年10月時点の公式による