Claude Code メモリ
CLAUDE.md を設定することで、スタック、規約、現在のフォーカスが起動時に Claude が最も厳密に従う高優先度スロットに読み込まれます。
設定をやめて、構築を始めよう。
AIオーケストレーション付きSaaSビルダーテンプレート。
問題: 毎回のセッションは白紙から始まります。同じコンテキストを何度も入力します。フレームワーク、規約、現在のフォーカス、ファイルのレイアウト。エージェントは昨日のことを覚えていません。
すぐできること: 30秒でメモリファイルを作成しましょう:
cd your-project
claude
/initClaude はリポジトリを読み込み、スターター用の CLAUDE.md を隣に作成します。そのファイルは永続的なプロジェクトコンテキストとなり、今後のすべてのセッションの先頭で読み込まれます。
CLAUDE.md の実態
メモリファイルは CLAUDE.md です。ディスク上に存在するため、あらゆる状況に対して永続します。チャット履歴はセッションが終わると消えます。このファイルは消えません。Claude は起動時にそれを読み込み、権威あるものとして扱います。
重要な点があります。CLAUDE.md 内のテキストは、コンテキストウィンドウの高優先度スロットを得ます。 Claude はチャットメッセージよりも、セッション途中で取り込んだファイルよりも厳密にそれに従います。設定ファイルとして扱い、ドキュメントとしてではなく。
この優先度の差が、他のすべての構造化方法を形作ります。優先度の階層がそれを詳しく説明しています。
保持のためのファイル構造
ファイルを2つの半分に分けましょう。変わらないものを上に。変動するものを下に。
# Project Context
- Framework: Next.js 14 with App Router
- Database: Supabase with Row Level Security
- Testing: Vitest for unit tests
## Key Directories
- `src/app/` - Route handlers and pages
- `src/lib/` - Shared utilities
- `src/components/` - React components
## Standards
- TypeScript strict mode required
- All API routes need error handling
- Run `npm test` before committing
## Current Focus
- Building user authentication flow
- Priority: Login and password resetCurrent Focus ブロックはスクラッチパッドです。数日ごとに上書きします。それ以外はそのままにします。
ツリー上に向けた階層的なメモリ
CLAUDE.md ファイルはネストできます。Claude はディレクトリツリーを上に向かって歩き、見つけたものを一つずつ読み込みます:
~/projects/CLAUDE.md <- Universal defaults
~/projects/my-app/CLAUDE.md <- Project-specific
~/projects/my-app/api/CLAUDE.md <- Component-specificモノリポ? 異なるスタックの異なるサブフォルダ? ここで真価を発揮します。トップレベルのファイルは短く保ちましょう。すべてのレイヤーが毎回の起動で読み込まれます。
@import: コンポーザブルなメモリ
一つのファイルが他のファイルを取り込めます。構文は @path/to/import です。メモリセットアップは単一のファイルから小さなグラフのような構造になります。
See @README for project overview and @package.json for available npm commands.
# Additional Instructions
- git workflow @docs/git-instructions.md相対パスと絶対パスの両方が機能します。相対パスは作業ディレクトリではなく、インポートするファイルに対して解決されます。マシン上の任意のものを指し示せます:
# Pull in shared team standards
- @docs/coding-standards.md
- @docs/api-conventions.md
# Reference external files with absolute paths
- @~/.claude/my-preferences.md初回の承認。プロジェクトがその外部のファイルを初めてインポートするとき、Claude Code は正確なパスを一覧表示した承認ダイアログをポップアップします。承認すれば読み込まれます。拒否すればスキップされます。その選択はプロジェクトごとに記憶されます。拒否は永続的で、解除するまでダイアログは再表示されません。
コードブロックの安全性。フェンスされたコードまたはインラインコードスパン内のインポートは無視されます。例の中で @path/to/file を書いても安全です。
再帰的なインポート。インポートされたファイルは自身のファイルをインポートできます。最大深度は5ホップです。すべてを一か所に詰め込まずに、命令セットをレイヤー化するのに使いましょう。
Git ワークツリーのヒント。CLAUDE.local.md は一度に一つのワークツリーにしか存在しません。ワークツリー間を行き来する場合は、個人の命令をホームディレクトリに置いてインポートしましょう:
# Individual Preferences
- @~/.claude/my-project-instructions.mdCLAUDE.local.md: プライベートなメモリ
一部のコンテキストはチームではなく、あなた個人のものです。ローカルサンドボックスの URL、テストフィクスチャ、ブランチ命名の習慣。それらは CLAUDE.local.md に入れましょう。Claude Code はこのファイルを .gitignore に自動的に追加するため、リポジトリに漏れることはありません。
# CLAUDE.local.md
## My Local Setup
- Dev server: http://localhost:3001
- Test database: local-dev-db
- Preferred branch naming: feature/[initials]-[description]同じ高優先度で CLAUDE.md の隣に読み込まれます。個人のノートは個人的なまま。共有ファイルはクリーンなまま。
/memory: ライブでの確認と編集
セッション内で /memory を実行すると、現在読み込まれているすべてのメモリファイルを確認し、エディタで開けます。3つの役割をカバーします:
- どの
CLAUDE.mdファイル、ルール、インポートがアクティブかを確認する - セッションを離れずにメモリを編集する
- 命令が無視されているように見えるときのデバッグ
モジュール式ルール: パスでスコープされたメモリ
より細かい制御が必要ですか? .claude/rules/ ディレクトリにより、命令をパスパターンにスコープされた多くの小さなファイルに分割できます:
.claude/rules/
├── api-guidelines.md # paths: src/api/**/*
├── react-patterns.md # paths: src/components/**/*
└── testing-rules.md # paths: **/*.test.*重要: ルールファイルは CLAUDE.md と同じ高優先度に置かれます。変わるのはスコープです。パスターゲティングがその優先度をいつ発動させるかを決めます。
これにより「モノリシックな CLAUDE.md」の問題が解決されます。すべてを一つのファイルに詰め込むと、今作業していることに関係のないものも含め、すべての命令が注目を争います。ルールにより、API ガイダンスは Claude が実際に API コードを編集しているときだけ競合します。
ユーザーレベルのルール。すべてのプロジェクトをカバーする個人ルールは ~/.claude/rules/ にあります。プロジェクトルールの前に読み込まれるため、プロジェクトルールがタイを制します。
波括弧展開。パスパターンは複数の拡張子やフォルダへの波括弧展開を受け付けます: src/**/*.{ts,tsx} または {src,lib}/**/*.ts。
シンボリックリンク。.claude/rules/ フォルダはシンボリックリンクを追跡するため、プロジェクト間でルールセットを再利用できます。循環シンボリックリンクはキャッチされスキップされます。
ルールディレクトリガイドには完全なパスパターン構文、優先順序、移行に関するメモが記載されています。
5つのメモリの場所
Claude Code には5つの異なるメモリスロットがあります。それぞれが役割を担います:
| メモリの種類 | 場所 | 目的 | 共有範囲 |
|---|---|---|---|
| マネージドポリシー | システムパス(下記参照) | 組織全体の命令 | 組織内のすべてのユーザー |
| プロジェクトメモリ | ./CLAUDE.md または ./.claude/CLAUDE.md | プロジェクトのチーム共有命令 | ソース管理経由でチーム |
| プロジェクトルール | ./.claude/rules/*.md | モジュール式トピック固有のプロジェクトルール | ソース管理経由でチーム |
| ユーザーメモリ | ~/.claude/CLAUDE.md | すべてのプロジェクトへの個人設定 | あなたのみ(すべてのプロジェクト) |
| プロジェクトローカル | ./CLAUDE.local.md | 個人プロジェクト固有の設定 | あなたのみ(現在のプロジェクト) |
マネージドポリシーパスは OS によって異なります:
- macOS:
/Library/Application Support/ClaudeCode/CLAUDE.md - Linux:
/etc/claude-code/CLAUDE.md - Windows:
C:\Program Files\ClaudeCode\CLAUDE.md
上位スロットが最初に読み込まれ、基底を設定します。より具体的なファイルがその上に重なります。
サブツリー探索: 遅延読み込み
Claude は起動時にツリーを上に向かって歩きます。また、開始したフォルダの下に存在する CLAUDE.md ファイルも認識します。
重要な違いがあります。それらのサブツリーファイルは起動時に読み込まれません。Claude がそのサブフォルダ内のファイルを読む瞬間に読み込まれます。起動は安価に保たれ、ローカライズされたルールは必要なときに現れます。
つまり packages/auth/CLAUDE.md に認証専用の命令が含まれている場合、Claude が packages/auth/ 以下のファイルを開くまで休眠したままです。
メモリファイルをバージョン管理する
CLAUDE.md をバージョン管理下に置くと、チェックポイント可能なメモリになります:
# Before experimenting with instructions
git add CLAUDE.md && git commit -m "working context state"
# Try new instructions, then restore if needed
git checkout CLAUDE.md編集が逆効果になった場合の即座のロールバック。
オートメモリ: Claude 自身のノート
あなたが CLAUDE.md を書きます。Claude も自身のノートブックを書きます。そのファイルは ~/.claude/projects/<project>/memory/ に存在し、デバッグの観察、ビルドパターン、アーキテクチャのノートで埋まっていきます。メインの MEMORY.md ファイルの最初の200行が、CLAUDE.md ファイルと並んで起動時に読み込まれます。完全なオートメモリガイドにはストレージレイアウトと設定が説明されています。
セッションメモリ: ローリングサマリー
Claude Code は現在のセッションのローリングサマリーを保持するようになり、メッセージごとに更新されます。サマリーファイルは ~/.claude/projects/[project]/[session]/session_memory に存在し、以下を追跡します:
- セッションタイトル: 作業内容の自動生成された説明
- 現在のステータス: 完了したアイテム、議論のポイント、未解決の質問
- 主要な結果: 重要な成果と学習
- 作業ログ: 実行されたアクションの時系列記録
このフィードが即座のコンパクションを可能にします。/compact を実行すると、Claude はすぐにそのサマリーを新鮮なコンテキストに落とし込みます。2分間の待機なしで。
Claude に「セッションメモリはどこに保存されているか?」と尋ねると、現在のセッションの正確なパスが表示されます。
オンデマンドでの新鮮なコンテキスト
長いセッションはノイズで満たされます。/clear でリセットしましょう:
/clear
これにより会話バッファが消去され、CLAUDE.md はそのまま残ります。ノイズは消えます。メモリは残ります。
完全なリセットには、終了して再起動します:
exit
claudeタスクごとの独立したコンテキスト
ブランチのためにまったく別のメモリが必要ですか? フォルダを分けましょう:
mkdir feature-auth && cd feature-auth
cp ../CLAUDE.md CLAUDE.md
echo "## Focus: Authentication only" >> CLAUDE.md
claude各フォルダには独自の CLAUDE.md があります。コンテキストは分離されたまま。フィーチャーブランチやスクラッチ作業に最適です。
問題が起きた場合
コンテキストが古く感じる: 会話履歴にゴミが積み重なっています。
- 修正方法:
/clearを実行します。チャットは消え、CLAUDE.mdは残ります。
プロジェクトが混ざり合う: 一つのリポジトリからの命令が別のリポジトリに現れています。
- 修正方法: すべてのプロジェクトには、プロジェクトルートに独自の
CLAUDE.mdが必要です。
命令が無視される: ファイルが長くなりすぎたか、形を失っています。
- 修正方法:
CLAUDE.mdを400行以内に保ちましょう。ドメイン固有の詳細をパススコープのルールに押し込み、パスが一致するときにのみ高優先度になるようにしましょう。
次のステップ
- より重いオーケストレーションパターンのためのオペレーティングシステムとして
CLAUDE.mdを扱う - Claude 自身のプロジェクトノートについてのオートメモリガイドを読む
- トークンを節約するためのコンテキスト管理を学ぶ
- 構造化された作業のためのプランニングモードを確認する
- メモリチェックポイントのための git 統合を設定する
- 本番エージェントシステムのためのコンテキストエンジニアリングでメモリがどのように位置づけられるかを確認する
覚えておく: CLAUDE.md はプロジェクトのドキュメントではありません。エージェントのオペレーティングシステムです。うまく構造化すれば、すべてのセッションが前回終了した正確な場所から再開されます。
設定をやめて、構築を始めよう。
AIオーケストレーション付きSaaSビルダーテンプレート。