CLAUDE LABEN
TEACHERS — AnthropicがClaude for Teachersを公開。米国K-12の認証済み教員に、プレミアム機能と授業向けスキル、全50州の学習指導基準に沿ったカリキュラム連携を無償提供しますADMIN — Claude Enterprise全組織でAdmin APIがベータ提供に。メンバーと招待の操作はベータヘッダー不要、グループとカスタムロールは専用ヘッダーが必要ですM365 — Microsoft 365コネクタに書き込みツールが追加。メールの下書き・送信・整理、カレンダー操作、OneDriveとSharePointのファイル作成・更新まで任せられますMCP — --mcp-configや.mcp.jsonのサーバ単位request_timeout_msが無視され、新規セッションで60秒既定のままタイムアウトする不具合が修正されましたSUBAGENT — --forward-subagent-textとCLAUDE_CODE_FORWARD_SUBAGENT_TEXTが追加。サブエージェントのテキストと思考をstream-json出力に含められますDEADLINE — 7月24日にOpus 4.7のfastモードが削除されます。残り7日、speed: "fast" はエラーになるためOpus 4.8への移行をご確認くださいTEACHERS — AnthropicがClaude for Teachersを公開。米国K-12の認証済み教員に、プレミアム機能と授業向けスキル、全50州の学習指導基準に沿ったカリキュラム連携を無償提供しますADMIN — Claude Enterprise全組織でAdmin APIがベータ提供に。メンバーと招待の操作はベータヘッダー不要、グループとカスタムロールは専用ヘッダーが必要ですM365 — Microsoft 365コネクタに書き込みツールが追加。メールの下書き・送信・整理、カレンダー操作、OneDriveとSharePointのファイル作成・更新まで任せられますMCP — --mcp-configや.mcp.jsonのサーバ単位request_timeout_msが無視され、新規セッションで60秒既定のままタイムアウトする不具合が修正されましたSUBAGENT — --forward-subagent-textとCLAUDE_CODE_FORWARD_SUBAGENT_TEXTが追加。サブエージェントのテキストと思考をstream-json出力に含められますDEADLINE — 7月24日にOpus 4.7のfastモードが削除されます。残り7日、speed: "fast" はエラーになるためOpus 4.8への移行をご確認ください
記事一覧/Claude Code
Claude Code/2026-03-25初級

Claude Codeのメモリ管理入門 — CLAUDE.mdとMEMORY.mdの仕組みと使い方

Claude Codeのメモリシステム(CLAUDE.mdとMEMORY.md)の仕組みを基礎から解説。プロジェクト固有の指示やフィードバックを永続化し、AIとの協業を効率化する方法を、実運用で得た知見とあわせて整理します。

claude-code129memory5CLAUDE-md7MEMORY-md開発効率化8

「さっき伝えたはずなのに」を、なくすところから

新しいセッションを開くたびに、同じ前提をもう一度打ち込んでいる。そんな瞬間はないでしょうか。「このプロジェクトはTypeScriptです」「テストはVitestで」「コミットメッセージは日本語で」——私自身、Claude Codeを使い始めた頃は、毎回このやり取りから作業を始めていました。指示そのものは一分で済むのに、それを毎回繰り返すと、集中が細切れになります。

いまは違います。個人開発で複数のサイトをClaude Codeで自動運用している関係で、どのセッションも冒頭でCLAUDE.mdMEMORY.mdが自動的に読み込まれるようにしてあります。前提を伝え直す時間がほぼゼロになり、そのぶんすぐ本題に入れる。ここで整理するのは、その土台になっているメモリシステムの仕組みと、最初の一歩の踏み出し方です。

CLAUDE.mdとは — プロジェクトの取扱説明書

CLAUDE.mdは、プロジェクトのルートディレクトリに置く設定ファイルです。Claude Codeはセッション開始時にこのファイルを自動的に読み込み、記載された指示に従って動作します。

CLAUDE.mdに書くべき内容

CLAUDE.mdは「このプロジェクトでClaude Codeがどう振る舞うべきか」を定義するファイルです。以下のような情報を記載するのが効果的です。

# プロジェクト概要
Next.js 16 + TypeScript + Tailwind CSSのWebアプリケーション。
Cloudflare Workersにデプロイしている。
 
# 開発ルール
- テストフレームワークはVitest を使用
- コミットメッセージは日本語で書く
- CSS-in-JSは使わず、Tailwind CSSのユーティリティクラスを使う
 
# ディレクトリ構造
- src/app/ — App Routerのページ
- src/components/ — 共通コンポーネント
- src/lib/ — ユーティリティ関数

私の経験では、最初から欲張らないことが長続きのコツです。技術スタックとディレクトリ構造の二つだけでも、Claudeの初手の精度は目に見えて変わります。運用しながら「毎回言い直していること」を見つけるたびに、一行ずつ足していく。その積み重ねが、結局いちばん実態に合ったファイルになります。

CLAUDE.mdの配置場所と優先順位

Claude Codeは複数のCLAUDE.mdを階層的に読み込みます。

~/.claude/CLAUDE.md          ← グローバル設定(全プロジェクト共通)
./CLAUDE.md                  ← プロジェクトルート(最も一般的)
./src/CLAUDE.md              ← サブディレクトリ固有の設定

下位のファイルほど優先度が高く、特定のディレクトリ内での作業時にはそのディレクトリのCLAUDE.mdが追加で適用されます。たとえば、フロントエンドとバックエンドでコーディング規約が異なるモノレポでは、それぞれのディレクトリに別々のCLAUDE.mdを置くことで、文脈に応じた指示を自動的に切り替えられます。

MEMORY.md — 会話から学んだ知識の蓄積

CLAUDE.mdがプロジェクトの静的なルールを定義するのに対し、MEMORY.mdはClaude Codeとのやりとりの中で蓄積される動的な知識ベースです。

メモリの種類

Claude Codeのメモリは、主に以下の4つのタイプに分類されます。

タイプ用途
userユーザーのプロフィール・好み「シニアエンジニア、Go経験10年」
feedbackClaudeへのフィードバック「末尾の要約は不要」「テストではDBをモックしないで」
projectプロジェクトの進行状況「3/25以降マージ凍結、モバイルリリース準備」
reference外部情報への参照「バグはLinearの"INGEST"プロジェクトで管理」

メモリが保存される仕組み

Claude Codeは会話の中で重要な情報を検知すると、自動的にメモリファイルを作成します。たとえば、「テストではデータベースをモックしないでほしい」と指示すると、以下のようなファイルが作成されます。

---
name: feedback_no_mock_db
description: テストではDBモックを使わず実DBを使用する
type: feedback
---
 
テストでは実データベースを使用し、モックは使わない。
 
**Why:** 過去にモック/本番の乖離でマイグレーションの破損が検出できなかった。
**How to apply:** integration テスト作成時、DB接続は実環境を使う。

この情報はMEMORY.mdのインデックスに登録され、次回以降のセッションで自動的に参照されます。ひとつのファイルにはひとつの事実だけを書き、本文の**Why:**で背景を残しておくと、後から読み返したときに「なぜこの指示だったのか」を取り違えずに済みます。

実際にメモリを活用してみよう

ステップ1: CLAUDE.mdを作成する

プロジェクトのルートディレクトリで、以下のコマンドを実行します。

# CLAUDE.mdを作成
cat << 'MEMO' > CLAUDE.md
# プロジェクト設定
 
## 技術スタック
- Next.js 16 (App Router) + TypeScript
- パッケージマネージャ: pnpm
- テスト: Vitest + Testing Library
 
## コーディング規約
- 関数コンポーネントのみ使用(クラスコンポーネント禁止)
- named exportを推奨(default exportは避ける)
- コミットメッセージはConventional Commitsに従う
MEMO
 
echo "✅ CLAUDE.mdを作成しました"
# 出力: ✅ CLAUDE.mdを作成しました

ステップ2: メモリの蓄積を確認する

Claude Codeとの会話中に、Claudeに対して好みや指示を伝えてみましょう。

あなた: テストを書くときは、describeブロックは日本語で書いてください。
Claude: 承知しました。今後テストのdescribeブロックは日本語で記述します。
        (→ メモリに自動保存)

保存されたメモリは.auto-memory/ディレクトリで確認できます。

# メモリの一覧を確認
ls .auto-memory/
# 出力例:
# MEMORY.md
# feedback_test_describe_japanese.md
# user_profile.md

ステップ3: メモリインデックスを確認する

MEMORY.mdには、保存されたメモリファイルへのリンクが記録されています。

cat .auto-memory/MEMORY.md
# 出力例:
# # Memory Index
# ## Feedback
# - [feedback_test_describe_japanese.md] — テストのdescribeブロックは日本語で書く

運用してわかった、メモリを腐らせないコツ

仕組みを知ることと、長く使い続けられる形に保つことは、別の技術です。私が複数プロジェクトでメモリを回すうちに、いくつか手痛い遠回りをして身についた運用の型を、正直に共有します。公式ドキュメントには載っていない、実地の勘所です。

ひとつ目は、1ファイルに1つの事実だけを書くこと。ひとつのファイルに複数の話題を詰めると、片方が古くなったときに全体を消すか残すかで迷います。粒を小さく保つと、間違ったメモリだけを外科的に消せます。

ふたつ目は、MEMORY.mdは索引に徹すること。ここに事実そのものを書き込みたくなりますが、太らせると読み込みが重くなります。「1メモリ=1行のリンクと一言」に留め、中身は各ファイルへ逃がす。索引が薄いほど、必要な記憶を素早くたぐり寄せられます。

三つ目は、重要な事実ほど先頭に置くこと。自動読み込みは常に全文が丸ごと届くとは限らず、長くなると先頭が優先される場面があります。頻繁に効かせたい規約は上に、めったに参照しない補足は下に。この並べ替えだけで、効き目が安定します。

四つ目は、古いメモリは指し示す前に確認すること。「このファイルではAを使う」というメモリが残っていても、リファクタでAが消えていることは珍しくありません。メモリはあくまで「書かれた当時の事実」です。ファイル名・関数・フラグを指す記憶は、いま実在するかを一度確かめてから頼る。これを習慣にすると、古い前提に引きずられた提案が減ります。

最後に、関連するメモリは本文中で[[ファイル名]]のようにゆるくつないでおくと、後から関連情報をたどりやすくなります。まだ存在しないメモリへのリンクを先に書いておいても構いません。「いずれ書くべきこと」の付箋として機能します。

まとめ — メモリ管理はClaude Codeの生産性を左右する

Claude Codeのメモリシステムは、AIとの協業を継続的に改善していくための基盤です。CLAUDE.mdでプロジェクトのルールを明文化し、MEMORY.mdで会話から学んだ知識を蓄積することで、セッションを重ねるほどClaudeの応答精度が上がっていきます。仕組みそのものより、腐らせずに育て続ける運用のほうが、効果を大きく左右すると感じています。

まずは今日、使っているプロジェクトにCLAUDE.mdを1つ作成するところから始めてみてください。技術スタックとディレクトリ構造を書くだけでも、体感できる効果は大きいはずです。一週間ほど使ってみて、「毎回言い直していること」に気づいたら、それをそのまま一行足す。その繰り返しが、あなたの手に一番なじむメモリへと育ててくれます。

私自身もまだ運用の型を磨いている途中です。あなたのプロジェクトでも、メモリが少しずつ賢く育っていくことを願っています。

シェア

お読みいただきありがとうございます

Claude Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

もしこの記事がお役に立ちましたら、チップ(¥150)で応援いただけると大変励みになります。広告なしでの運営を続けるため、皆さまのご支援が大きな力になっています。

関連記事

Claude Code2026-04-25
Claude Code × uv で Python 環境を瞬速構築する — pip より 10 倍速いパッケージ管理の現場活用
Rust製の高速Pythonパッケージマネージャー「uv」をClaude Codeと組み合わせた開発環境構築を解説。pipの10〜100倍速い環境セットアップと、Claude Codeによる依存関係管理の自動化を実践的に紹介します。
Claude Code2026-04-05
Claude Code プロジェクト初期化完全自動化ガイド — CLAUDE.md 設計から CI/CD セットアップまで
Claude Code を使ってプロジェクト初期化を完全自動化する実践ガイド。CLAUDE.md の設計パターン、スキャフォールディング自動化、Git hooks、CI/CD パイプライン構築まで体系的に解説します。
Claude Code2026-03-28
Claude Code チーム開発 — CLAUDE.md・Git Hooks・レビュー自動化で実現するAIペアプログラミング
Claude Code をチーム開発に導入し、CLAUDE.md によるプロジェクト共有、Git Hooks 連携、コードレビュー自動化まで実践的に解説。AIペアプログラミングで開発効率を最大化する方法を学びましょう。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →