この記事の結論
Claude Codeのメモリで毎回読まれるのは索引MEMORY.mdの先頭200行か25KBまでで、僕の会社の索引は141行・33KBと上限を超えていました。記録334件をCLAUDE.mdとどう分けるか、訂正のしかたまで。
目次9項目
【無料・メールだけ】Claude Code 2daysセミナー(第二の脳構築講座)の次回開催の案内を受け取る →
Claude Codeのメモリで僕に必要だったのは、覚えさせ方より「索引を細く保つこと」でした。会話のたびに読まれるのは索引の頭の部分だけで、334件ある中身は必要なときに開かれます。だから決まりはCLAUDE.mdとrulesに置き、メモリには経緯と訂正を残す形に分けています。
2026年11月7日に数えると、索引は141行・33,112バイトでした。社内の決まりの「140行未満」を1行超え、公式の25KBもバイトでは超えています。10月27日に105行・24.7KBまで削った後、11日で戻りました。
この記事では、メモリの仕組み、索引と中身の実物、8月3日の訂正のやり方、CLAUDE.md・rulesとの分け方を順に見せます。「AIに覚えさせたけれど、昔の間違いまで覚え続けていない?」と気になる方に向けて書きました。
Claude Codeのメモリとは:AIが自分で書くメモと、毎回読まれる索引の組み合わせ
Claude Codeのメモリとは、作業中に受けた指摘や好みをClaude自身がファイルに書き残し、次の会話で読み返す仕組みです。公式ドキュメントでは auto memory(自動メモリ)と呼ばれ、手元で動かす会話では最初からオンです。
人が書くCLAUDE.mdと並んで、会話の最初に読み込まれるもう1つの記憶です。違いを、公式の説明と僕の会社の数字で並べます。
| 項目 | CLAUDE.md | 自動メモリ |
|---|---|---|
| 書く人 | 人 | Claude |
| 中身 | 指示と決まり | 学んだことと傾向 |
| 効く範囲 | プロジェクト・ユーザー・組織 | リポジトリごと(worktreeでも共有) |
| 会話の最初に読まれる量 | ファイル全体(4MiB以下) | 索引MEMORY.mdの先頭200行か25KBまで |
| 僕の会社(2026年11月6〜7日) | 全体用181行・フォルダ用75行 | 索引141行・中身のファイル334件 |
いちばん効いてくる違いは、毎回読まれる量です。CLAUDE.mdは丸ごと読まれますが、メモリは索引の頭しか読まれません。だから僕の会社では、メモリを中身の倉庫ではなく「どこに何があるかの目次」として使っています。
なお「claude メモリ」で調べると、チャットアプリ側のメモリの話も出てきます。この記事で扱うのは、Claude Codeの自動メモリです。
ChatGPTから記憶を移した話は、ChatGPTのメモリをClaudeへ移した手順に書きました。
MEMORY.mdの仕組み:毎回読まれるのは先頭200行か25KBまで
MEMORY.mdは自動メモリの索引で、会話の最初に読まれるのは先頭200行か25KBの、先に達したほうまでです。それより後ろは、起動時には読まれません。
保存場所はリポジトリごと、メモは4種類
保存先は ~/.claude/projects/<project>/memory/ です。<project> はGitリポジトリから決まるので、同じリポジトリならworktreeやサブフォルダでも1つのフォルダを共有します。
Claudeはメモを4種類に分け、ファイル先頭の type に書きます。user(役割や好み)、feedback(受けた指摘や確かめたやり方)、project(進行中の仕事や決定)、reference(外部の情報の置き場所)です。
コードから分かること(構成やファイルの場所、不具合の直し方)と、CLAUDE.mdにすでに書いてあることは保存しません。毎回の会話で必ず書くわけでもなく、次の会話で役に立つかで決めています。
自動メモリはその機械の中だけに保存され、ほかの機械やクラウドの環境とは共有されません。新しいMacへ移すなら、Claude Codeを新しいMacに移行する方法に写し方があります。
読まれるのは索引だけ、中身は必要なときに
索引の下には、1件1ファイルのトピックのファイルが並びます。トピックは起動時には読まれず、Claudeが必要になったときに通常のファイル操作で開きます。
画面に「Saved 2 memories」「Recalled 2 memories」と出たら、メモリのフォルダを書いたり読んだりした合図です。書き込んだ時刻は、ファイル先頭の modified の欄に残ります。
サブエージェントには、元の会話の自動メモリは読み込まれません。例外は、会話をそのまま引き継ぐforkです。サブエージェントに自前のメモリを持たせる設定もありますが、置き場所は別のフォルダになります。
上限を超えても、書き込みは止まらない
Claudeが索引を書き換えると、Claude Codeは200行と25KBの上限に照らして測ります。上限に近いと、1行1件にする・詳細はトピックへ移す・古い行はまとめるか消す、と短くするよう促します。
上限を超えた場合も、書き込み自体は成功します。そのうえで、索引を書き直すよう求めるエラーがClaudeに返ります。次の読み込みで、上限より後ろが落ちるためです。
上限があるのは索引だけです。CLAUDE.mdは4MiB以下なら全体が読まれます。メモリのファイルは、古い会話の記録を消す保存期間の掃除からも外されていて、自分かClaudeが消すまで残ります。
索引は1行に束ね、中身は1件1ファイル:MEMORY.mdとトピックの実物
僕の会社の索引は、関係の深いメモを1行に束ねた141行です。中身のトピックは334件ありました。
内訳はproject 224件・feedback 62件・reference 44件・user 4件です。2026年11月7日に、各ファイルの type を数えた値です。
索引の形を、案件名などを架空のものに置き換えて見せます。形はそのまま、1行に「リンク」と「—」の後ろの要点が並びます。
- [請求書の型](invoice-template.md) / [見積もりの型](estimate-template.md) — 日付は西暦で書く・型の並びを崩さない
- [サンプル案件](sample-project.md) — 🔴公開前に先方の確認が要る・正本=案件フォルダの引き継ぎメモ
- [空振りしたら即再実行](feedback-no-silent-stall.md) — 「やる」と言ったら同じ応答の中で動く
公式の説明は「1行に1件」ですが、僕の会社では関係の深いメモを「/」で1行に束ねています。141行の中に、トピックへのリンクが303本あります。
要点の頭の🔴は、間違えると事故になる注意の印で、索引の中に56か所あります。社内の決まりでは、🔴の要点は索引に残し、それ以外の詳しい話はトピックへ移します。
feedbackのメモは「Why」と「How to apply」で書く
中身のファイルの実物を1つ、一部を短くして見せます。2026年7月10日に、AIが「やります」と書いたまま実際には動いていなかった件で、僕が強く直してほしいと伝えたときのメモです。
---
name: feedback-no-silent-stall
description: ツール呼び出しが空振りしても止まらず自分で即再実行する
metadata:
type: feedback
---
(7月10日に何が起きて、何を求められたか)
**Why:** テキストだけ喋って実際にはツールが実行されておらず、
確認のたびに時間を奪われていた。
**How to apply:**
- 「やる/確認する」と言ったターンでは、同じ応答内で実際にツールを呼ぶ
- 空振りに気づいたら、聞き返さず自分で正しい形で再送する
- 「完了しました」は実データ・実挙動で確かめてから言う
恒久ルール化済み: rules/07 + CLAUDE.md 最重要ルール6
このメモは、何が起きたか・なぜ直すのか・次からどう動くかの3つでできています。理由まで残っていると、少し違う場面でもAIが判断の筋を追いやすい、と僕は考えています。
7月10日の出来事そのものは、Claude Codeが途中で止まる・固まる時の切り分けに詳しく書きました。
メモの最後の行のとおり、決まりの本体はすでに規則のファイルとCLAUDE.mdへ移っています。この移し方は後の節で書きます。
2026年8月3日の訂正:古い記録は消さず、日付つきで上書きした
メモリに残った前提が間違っていたとき、僕の会社では記録を消さず、本文の頭に「日付+訂正」の段落を足して書き換えます。2026年8月3日に、projectのメモ1件をこの形で直しました。
7月11日のメモは、誤った前提で書かれていた
2026年7月11日、ある上位モデルの考え方の原則を、ほかのモデルでも再現できる形で保存しました。メモリにもprojectのメモを1件作り、当初は「そのモデルがサブスクから外れる前に残す」という前提で書いていました。
8月3日、この前提が事実誤認だと分かりました。そのモデルは8月3日の時点で現役で、提供終了の指定も、退役日の告知もありませんでした。手元の設定でも、選べるモデルに入っていることを確かめています。
訂正は、最初の1行のすぐ下に置いた
訂正の段落は、いつ何を保存したかを書いた最初の1行の、すぐ下に入れました。形を短くして見せます。
(最初の1行:7月11日に何を保存したか)
**2026-08-03 訂正**: 当初「〜が外れる前に」という前提で書いていたが事実誤認。
8月3日時点で現役(提供終了の指定・退役日の告知なし)。
位置づけは「安いモデルで規律を再現する移植」。重い局面は本体を使ってよい。
書いているのは4点です。もとの前提、それが誤りだったこと、今の事実、そして使い方がどう変わるかです。最後の点がないと、誤った前提から出た「本体は使わない」のような動き方が残ってしまいます。
このメモの先頭の modified は、2026年8月3日の11時8分(UTC)になっています。公式が書くとおり、書き込んだ時刻がそのまま残り、どの時点の事実かを後から読む側が判断できます。
同じメモには、9月3日にも1行足しています。後継のモデルが出たことへの注記と、社内の規則の中の言葉の意味を公式どおりに直した記録です。訂正は1回で終わらず、日付ごとに積み重なっていきます。
この訂正は、Claudeプロジェクト機能の使い方でも短く触れました。ここではメモリ側の書き方を見せています。
消さずに上書きする理由
誤った前提を消してしまうと、7月から8月の間に作った別の資料に同じ前提が残っていても、なぜそう書かれたのかを追えません。訂正の段落に「もとはこう考えていた」と残しておけば、古い資料を見つけたときに照らし合わせられます。
社内の決まりでも、ほかの会話が残した記録に古い・誤った情報を見つけたら、直せるものはその場で直すことにしています。メモリは1つの会話の持ち物ではなく、次の会話がみな読む共有の記録だと僕は考えています。
自分で直すときの4つの手順
- 会話の中で
/memoryを打ち、自動メモリのフォルダを開いて、該当のトピックを探す - 本文の頭に「日付+訂正」の段落を足し、もとの前提・誤り・今の事実を書く
- 誤った前提から出た「使い方」の行も書き換える
- 索引のMEMORY.mdにその件の要点があれば、そこも直す
4番目を忘れやすいので注意してください。毎回読まれるのは索引の頭だけなので、トピックを直しても、索引の要点が古いままだと会話の最初に古い前提が入ります。
索引は9月に36KB、11月7日に33KB:MEMORY.mdが太る理由と削り方
索引は放っておくと太ります。僕の会社では9月に36KBあり、10月27日に105行・24.7KBまで削りましたが、11月7日には141行・33,112バイトに戻っていました。
数字の出所ごとに並べます。行数とバイト数は、それぞれの日に数えた実測です。
| 日付 | 索引の大きさ | 出所 |
|---|---|---|
| 2026年9月16日 | 36KB・189件(約16,500トークン) | 社内の規則ファイル(利用枠の点検) |
| 2026年10月1日 | 155行 | 公開済みの記事の実測(ls・wc) |
| 2026年10月27日 | 105行・24.7KB | 社内ナレッジ(メモリの整理の記録) |
| 2026年11月7日 | 141行・33,112バイト(20,454字) | この記事のために数えた値(wc・python) |
9月16日の数字は、利用枠の減り方を調べる点検の中で出てきました。索引を縮めれば1回の会話あたり約8,000トークン減る見込みでしたが、何を捨てるかは僕が決めることとして、その場では削りませんでした。
この点検の話は、プロンプトの書き方とルール化の実録で少し触れています。ルールや記録は足すほど効きますが、そのぶん毎回の会話で読む量も増えます。
10月27日と11月2日に、要点をトピックへ移した
10月27日には索引を整理し、索引の行にあった説明の文を、112件のトピックの末尾の節へ移しました。索引には要点だけを残し、その日のうちに105行・24.7KBに収めています。
11月2日にも、38件のトピックへ「索引から移した要点」の節を足しました。それでも5日後の11月7日には141行に増え、社内の決まりの「1行1件・140行未満」を1行超えていました。
日本語の索引は、200行より先に25KBに当たる
日本語は1字がたいてい3バイトなので、行数より先にバイトの上限に当たります。僕の会社の索引も、行数は200行の7割なのに、バイトでは25KBを超えています。
33,112バイトは文字数にすると20,454字です。公式は「25KB」とだけ書いています。バイトで数えるなら、上限の内側は先頭のおよそ106〜109行目までです。実際にどこまで読まれているかは、この記事では確かめていません。
削るときの4つの手順
僕の会社で10月27日と11月2日にやったことを、手順にするとこうなります。
- 索引の行にある説明の文を、そのトピックの末尾の節へ移す
- 索引には「—」の後ろに要点を1つだけ残す
- 関係の深い行は「/」で1行に束ねる。🔴の注意だけは索引に残す
- 削った後に、行数とバイト数を測る
wc -l ~/.claude/projects/<project>/memory/MEMORY.md
wc -c ~/.claude/projects/<project>/memory/MEMORY.md
wc -l が行数、wc -c がバイト数です。200行と25KBの両方の内側に入っているかを見ます。
CLAUDE.md・rulesとメモリの使い分け:守らせる決まりはメモリに置かない
毎回必ず守らせたい決まりはCLAUDE.mdとrulesに、そう決めた経緯や指摘の理由・訂正はメモリに置きます。メモリは索引の頭しか毎回は読まれないので、決まりの本体を置く場所には向きません。
公式も役割を分けています。人が書く指示と決まりはCLAUDE.md、Claudeが学んだことはメモリです。「覚えておいて」と頼めばメモリに、「add this to CLAUDE.md」のように頼めばCLAUDE.mdに入ります。
メモリから決まりへ上げた2つの実例
7月10日のfeedbackのメモは、その後「恒久ルール化」されました。本体は実行の規律の規則ファイル(rules/07)に、入口の1行はCLAUDE.mdの最重要ルール6にあります。
メモリには、理由と経緯だけが残っています。
2026年10月4日に僕が出した「品質・時間・費用に関わることは必ず報告する」という指示も同じ形です。正本は文体の規則のファイル(rules/02)、写しは全体用のCLAUDE.mdで、メモリにはなぜ決めたかを残しました。
置き場所の早見表
何をどこに置くかを、僕の会社の例と並べます。迷ったら、上の行から順に当てはまるかを見てください。
| 置くもの | 置き場所 | 僕の会社の例 |
|---|---|---|
| 全プロジェクトで毎回守らせる決まり | 全体用のCLAUDE.md | 応答は日本語、品質・時間・費用の報告 |
| そのフォルダだけの決まりの入口 | フォルダ用のCLAUDE.md | 必ず読む規則13本の一覧 |
| 決まりの本体と手順 | rules/ のファイル | 実行の規律(rules/07) |
| 決めた経緯・指摘の理由・訂正 | 自動メモリのトピック | 7月10日の指摘のWhyとHow to apply |
| どこに何があるかの要点 | MEMORY.md | 1行に要点1つと🔴の注意 |
僕は、メモリから決まりへ上げるかどうかを「次の会話でも毎回守らせたいか」で決めるのがよいと考えています。上の2つの実例は、どちらもこの問いに「はい」と答えたものです。
なお、CLAUDE.mdもメモリも、Claudeは強制の設定ではなく文脈として扱います。必ず止めたい操作は、PreToolUseフックで止めます。
CLAUDE.mdの置き場所と書き方は、CLAUDE.mdとは?書き方と二層の分け方に書きました。
メモリの設定と確認:/memoryでオンとオフ、保存先も変えられる
中身の確認もオンとオフの切り替えも、会話の中で /memory を打てばできます。保存先を変えるときだけ、設定ファイルに1行足します。
- 会話の中で
/memoryを打つ。CLAUDE.mdなどの一覧と、自動メモリのトグル、メモリのフォルダを開く項目が出る - メモリのフォルダを開き、トピックを読む・直す・消す。中身はただのMarkdown
- 止めたいときは
/memoryのトグルを切る。設定は~/.claude/settings.jsonのautoMemoryEnabledに保存される - 1つのプロジェクトだけ止めるなら、そのプロジェクトの設定ファイルに下の1行を書く。環境変数
CLAUDE_CODE_DISABLE_AUTO_MEMORY=1でも止まる - 保存先を変えるなら
autoMemoryDirectoryを書く。値は絶対パスか~/で始める
{
"autoMemoryEnabled": false
}
1つ注意があります。バックグラウンドの会話や、別の会話から起動された会話では、トグルでオフにはできても、オンには戻せません。戻すときは、ターミナルで直接 claude を起動した会話でトグルを入れます。
秘密の値はメモリに書かせない
メモリは手元のMarkdownで、毎回の会話でAIに読まれます。パスワードや鍵のような値は、覚えさせたい内容に混ざっていても書かせず、置き場所だけを書く形にします。
まとめ
- Claude Codeのメモリは、Claudeが自分で書くメモと、毎回読まれる索引MEMORY.mdの組み合わせ
- 毎回読まれるのは索引の先頭200行か25KBまで。日本語の索引は、行数より先にバイトの上限に当たる
- 索引には要点と🔴の注意だけを置き、説明はトピックへ移す。僕の会社は束ねて141行・トピック334件
- 間違った記録は消さず、日付つきの訂正で上書きし、索引の要点もあわせて直す
- 僕なら最初に、
wc -cで自分の索引のバイト数を測るところから始めます
よくある質問
Claude Codeのメモリはどこに保存されますか?
プロジェクトごとに ~/.claude/projects/<project>/memory/ へ保存されます。<project> はGitリポジトリから決まるので、同じリポジトリならworktreeやサブフォルダでも1つのフォルダを共有します。保存はその機械の中だけで、ほかの機械やクラウドの環境とは共有されません。
MEMORY.mdはどこまで読み込まれますか?
会話の最初に読まれるのは、先頭200行か25KBのうち先に達したほうまでです。それより後ろは起動時には読まれません。索引からリンクしたトピックのファイルは起動時には読まれず、Claudeが必要なときに開きます。CLAUDE.mdは4MiB以下なら全体が読まれます。
Claude Codeの自動メモリをオフにするには?
会話の中で /memory を開き、自動メモリのトグルを切ります。設定は ~/.claude/settings.json の autoMemoryEnabled に保存されます。1つのプロジェクトだけ止めるならその設定ファイルに "autoMemoryEnabled": false を書き、環境変数 CLAUDE_CODE_DISABLE_AUTO_MEMORY=1 でも止められます。
CLAUDE.mdとメモリは、どちらに書けばいいですか?
毎回必ず守らせたい決まりはCLAUDE.mdに書きます。メモリは索引の頭しか毎回は読まれないためです。僕の会社では、決まりの本体はCLAUDE.mdと規則のファイルに置き、そう決めた経緯・指摘の理由・訂正をメモリに残しています。
メモリに間違った記録が残っていたら、どう直しますか?
メモリはただのMarkdownなので、/memory からフォルダを開いて直接直せます。僕の会社では誤りを消さず、本文の頭に「日付+訂正」の段落を足して、何が誤りで今の事実は何かを書きます。毎回読まれる索引の要点も、あわせて直します。
