Claude Codeの仕組み講座(講師のためのエンジニア水準)
区分3 拡張の仕組み★★★AIが一度に見渡せる範囲を、コンテキスト(机の上)と呼びます(No.05)。 会話が終わると机は片付けられ、次の会話は何も置かれていない机から始まります。前回の指示も失敗も持ち越されません。
事務所でいえば、毎朝まったく記憶のない新人が出社してくるようなものです。 だから新人の机に、最初から「社内の決まり」と「引き継ぎメモ」を置いておきます。 その2つが、この単元の主役の CLAUDE.md と記憶(公式名:auto memory)です。
| CLAUDE.md | 記憶(auto memory) | |
|---|---|---|
| 書く人 | あなた | Claude が自分で |
| 中身 | 指示・決まり | 訂正されたこと・好み・調べた場所 |
| 机に置かれる時機 | 毎回の最初 | 毎回の最初(ただし索引だけ) |
どちらも、AIへの命令ではなく、机の上に置かれる読み物です。この点は後の章で大事になります。
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 も同じ説明です)。
CLAUDE.md の中に @ と、取り込みたいファイルの場所を書くと、そのファイルの中身が一緒に机へ置かれます。
詳しい進め方は @docs/git-instructions.md を見る。
公式で確かめた決まりは次の通りです。
docs/rules.md)で、書いたファイルが基準です(開いているフォルダではありません)。絶対パスは、パソコンの一番上から全部書いた場所(例:/Users/...)です@ をそのまま読ませたいときは、バッククォート(`)で囲む。バッククォートは、コードを囲む記号です作業場の外にあるファイルを取り込むと、初めての時に承認の画面が出ます。知らないうちに他人の物を読み込まないための安全装置です。
ここは勘違いしやすい点です。
@ で別ファイルに分けても、起動時に全部が机へ置かれます。
整理しやすくなるだけで、机の広さは変わりません。
机を軽くしたいなら、第1章③の paths: つきのルールか、スキル(No.09)に移します。
記憶は、あなたの訂正や好みを見て、Claude が自分で書いておくメモです。
メモの種類は4つあります(公式の分類):あなたの立場(user)、直された事や認められたやり方(feedback)、進行中の仕事の事情(project)、外のどこに情報があるか(reference)。
コードを見れば分かる事や、CLAUDE.md にすでに書いてある事は、書き留めません。 保存するかどうかは、「今後の会話で役に立つか」で Claude が判断します。
標準の置き場所は、~/.claude/projects/<作業場ごとの名前>/memory/ です。
同じ git のリポジトリ(git で変更履歴を管理しているフォルダ)なら、フォルダが違っても同じ記憶の置き場を使います。
置き場所を変えたい時は、設定の autoMemoryDirectory という項目で指定します。
中身は2種類です。
MEMORY.md:索引。目次のように1件1行で並べた物毎回の最初に読まれるのは、索引の先頭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月時点の公式による