「Claude Codeに、毎朝同じ説明をしている」 — 半年使った人の99%が感じる不満です。

私の場合、毎日「私は1人法人で」「税抜で見積もりを書く」「コミットは日本語で」と、似たような前提を3-4個必ず冒頭で伝えていました。1回30秒だけど、 積み重なると月に1時間以上を「前置きに溶かしている」 ことになる。

これを解決するのが、2026年から本格運用に入った 自動メモリ機能(persistent memory)。会話を跨いでClaude Code自身が学んでくれる仕組みです。今日はこれの中身を整理します。

自動メモリ機能とは

ざっくり言うと、 Claudeが「これは覚えておくべき」と判断した情報を、自動でファイルに書き残す 機能。

  • 保存場所 — ~/.claude/projects/<プロジェクト識別子>/memory/ 配下
  • 形式 — Markdownファイル(1メモリ1ファイル)
  • インデックス — MEMORY.md に1行ずつポインタが並ぶ
  • 読み込み — 次回以降の会話で、関連メモリが自動で参照される

つまり、 Claude側が「覚えるべきか」を判断して書き、必要な時に取り出す という人間っぽい挙動を、ファイルシステム上で再現しています。

私が最初にこの機能を知った時は 「ようやくか」 が正直な感想。ChatGPTのMemory機能と思想は似ていますが、 「自分のディスク上にMarkdownで残る」 透明性がClaude Codeらしい設計です。

4種類のメモリタイプ

メモリは4つに分類されます。

user(ユーザー像)

「この人は何者か」「どんな専門知識があるか」「どんな仕事をしているか」。例えば「Goを10年書いてきたエンジニア」「経理が本業の1人法人代表」のような情報。

feedback(やり方の好み)

「こうしてほしい」「こうしないでほしい」という指示。たとえば「コードコメントは最小限で」「Slack通知は禁止」「PRは1個ずつ立てる」など。

project(プロジェクトの背景)

「今このプロジェクトで何をやっているか」「いつまでに何を終わらせるか」「なぜそれをやっているか」など、コードを読んでもわからない事業背景・締切・関係者の情報。

reference(外部の場所)

「Slackで議論しているのはこのチャンネル」「Issueトラッカーはこのリポジトリ」「監視ダッシュボードはこのURL」のような 外部システムへのポインタ

私の体感だと、 feedbackとproject が一番使われます。userは初回会話で書き溜まって安定、referenceは思い出した時に追加、という頻度差。

1週間使って溜まったメモリの中身

参考までに、私の memory/ ディレクトリの1週間後の状態。

~/.claude/projects/-Users-daiki-claude-code-lab/memory/
├── MEMORY.md
├── user_role.md
├── user_writing_style.md
├── feedback_no_emoji.md
├── feedback_short_messages.md
├── feedback_japanese_commits.md
├── project_media_pipeline.md
├── project_coconala_status.md
└── reference_microcms.md

feedback_no_emoji.md の中身はこんな感じ。

---
name: emoji禁止
description: 文書・コード・コミットメッセージで絵文字を使わない
type: feedback
---

絵文字は使わない。

**Why** — ビジネスドキュメントで使うと格が下がる、と本人が明言。
**How to apply** — 記事・コミット・PR・コードコメント、すべてで絵文字を入れない。
ユーザーが明示的に「絵文字でお願い」と言った時だけ例外。

このフォーマットがいい。 「ルール+理由+適用条件」 の3つを残しておくと、エッジケースで自分で判断できる。「絵文字禁止と聞いたけど、ユーザーが絵文字で書いてきた時はどうする?」が、Whyを読めば判断できる。

CLAUDE.mdとの違い

「これってCLAUDE.mdと同じでは?」と聞かれることが多い。違いを整理。

CLAUDE.md

自動メモリ

場所

プロジェクトルート(git管理)

~/.claude/projects/.../memory/(個人ローカル)

共有

チーム全員と共有

自分専用

書く人

人間が手で書く

Claude自身が判断して書く

内容

プロジェクトのルール・前提

ユーザー個人の好み・履歴

つまり CLAUDE.mdはチームの公式ルール、自動メモリは個人の運用記録

私は両方併用しています。CLAUDE.mdに「日本語で書く」「税抜表示」を書き、メモリに「絵文字嫌い」「短い返事好き」を残す。 公私の分離 という感覚。

何が自動で保存され、何がされないか

「全部勝手に保存されるのでは怖い」と思う方もいるはず。実際は Claudeが慎重に取捨選択 しています。

保存される傾向

  • ユーザーが明示的に「覚えておいて」と言った内容
  • ユーザーが2回以上同じ指示を繰り返した時
  • 失敗を指摘された時の「次から避けるべきこと」
  • ユーザーが珍しい選択をして、それが採用された時(成功パターン)

保存されない傾向

  • 一回限りの作業内容(「このファイルを直して」)
  • コードや既存ドキュメントから読み取れる情報
  • 機密情報(APIキー・パスワード・個人情報)

Claudeは 「コードを読めばわかること」は保存しない 設計。「package.json を読めば依存がわかる」のような情報は、わざわざメモリ化しません。

私の体感だと、 1日3-5個 のペースでメモリが増えていく。多すぎず少なすぎず、ちょうど良い量。

古い情報の腐敗にどう対処するか

メモリの厄介な点は 「書いた時は正しかったが、今は古い」 情報が混じること。

たとえば「3月末までにこの案件を終わらせる予定」というproject memoryは、4月になったら役立たず。

Claude Codeは賢く、 古いメモリと現実が食い違った時に、メモリ側を更新するか削除する 動作を取ります。 「メモリは時間スナップショット、現在の状態は常にコードや実環境が正」 という設計思想。

私も最初は「過去のメモリが残り続けるのでは」と心配しましたが、 2-3週間に1回くらいの頻度で自動的に整理されている のを観察しています。

「自分でも一度メモリを見返したい」時は、 ~/.claude/projects/<識別子>/memory/MEMORY.md を直接開けばOK。エディタで読めるただのMarkdownなので、 手で消したい行はそのまま削除 できる。

業務利用での注意点

業務でClaude Codeを使う立場なら、押さえておきたい点。

チーム共有はされない

メモリは個人ローカル。 同僚のClaudeは、あなたのメモリを参照しません。チーム共通のルールは、自動メモリではなくCLAUDE.mdに書く。

機密情報を含む会話のメモリ化

クライアント名や案件詳細など、 メモリに残したくない情報 が話題になることがあります。その場合は明示的に「これは覚えないで」と伝えれば、Claudeは保存しません。

私は機密案件を扱う時、最初に 「この会話はメモリに保存しない方針で」 と一言伝えることにしています。

skill・hookとの関係

似た仕組みで SkillHooks もあります。役割分担を整理。

  • メモリ — 「あなたの好み・背景」を覚える(受動的)
  • Skill — 「特定タスクのやり方」を体系化する(能動的に呼ぶ)
  • Hooks — 「自動で必ず実行する処理」を仕込む(発火条件で動く)

メモリは 記憶、Skillは 手順書、Hooksは 自動装置。3つ揃うと、Claudeが 自分専用にチューニングされた相棒 に育っていきます。

まとめ

  • 自動メモリ機能は 会話を跨いでClaudeが自分で覚えてくれる仕組み
  • 保存場所は ~/.claude/projects/<識別子>/memory/ のMarkdown
  • メモリは 4種類(user / feedback / project / reference)
  • CLAUDE.mdとの違いは 「チーム公式 vs 個人運用」
  • 1日3-5個のペースで自然に溜まり、 古いものは自動で整理 される
  • 機密案件では 「メモリに残さないで」と明示 すると保存されない
  • Skill・Hooksと併用すると、Claudeが個人専用の相棒に育つ

「同じ説明を毎朝している」と感じている方は、メモリ機能のおかげで 1ヶ月後には冒頭の前置きが半分になっている はずです。今日は普段通りClaudeに話しかけて、何が勝手に保存されたか、 memory/ ディレクトリを覗いてみてください。