← フック エージェント →

06 メモリ — セッションClaude Codeの1回の対話単位。起動から終了までの会話と作業状態のこと。長く使うと内容が混ざるため、トピックの区切りで新セッションに引き継ぐ運用をするを超えた記憶

💡 章の核: memoryは個人用の覚え書き。作業/短期/長期の役割分担で使い、永久保存はSSOT正典へ。

メモリとは

Claude Codeはセッションを超えて記憶を保持する仕組みを持つ。新しいセッションを開始しても、前回の文脈の一部を引き継げる。


graph TD subgraph "🧠 メモリシステム" AUTO["Auto Memory
~/.claude/projects/"] USER["User Memory
~/.claude/CLAUDE.md"] PROJ["Project Memory
repo/CLAUDE.md"] IDX["MEMORY.md
インデックス"] end AUTO --> T1["user: 役割・目標"] AUTO --> T2["feedback: 指導"] AUTO --> T3["project: 決定事項"] AUTO --> T4["reference: 外部参照"] IDX --> AUTO

メモリの種類

<a id="auto-memory"></a>Auto Memory(自動メモリ)

Claude Codeが自動的に保存するプロジェクト単位の記憶。

記録される内容の例:

<a id="user-memory"></a>User Memory(ユーザーメモリ)

~/.claude/CLAUDE.md に記述されたルール。

<a id="project-memory"></a>Project Memory(プロジェクトメモリ)

各リポジトリの CLAUDE.md に記述されたルール。

<a id="memory-md"></a>MEMORY.md(インデックス)

Auto Memoryの目次ファイル。


メモリの4つのタイプ

Auto Memoryには4つのタイプがある。

タイプ 説明 保存タイミング
user ユーザーの役割・目標・知識レベル ユーザー情報を学んだ時
feedback ユーザーからの指導(「こうして」「これはやめて」) 指摘・確認を受けた時
project プロジェクトの状況・決定事項 重要な決定をした時
reference 外部システムへのポインタ 外部リソースを知った時

メモリのライフサイクル

セッション開始
  │
  ├─ MEMORY.md を読み込み(インデックス)
  ├─ 関連するメモリファイルを読み込み
  │
  ▼
セッション中
  │
  ├─ 新しい情報を学ぶ → メモリに保存すべきか判断
  ├─ ユーザーからフィードバック → feedback メモリに保存
  ├─ プロジェクトの決定 → project メモリに保存
  │
  ▼
セッション終了
  │
  └─ 保存されたメモリは次回セッションで利用可能

メモリの管理

確認

保存

削除

月次棚卸し(定期メンテナンス)

注意点


CLAUDE.mdの3層構造(Instruction Memory)

CLAUDE.md(User/Project Memory)は3層構造で運用すると、肥大化と「読むか怪しい間接リンク」のジレンマを解決できる(Z.AIベストプラクティス準拠)。

層 場所 読み込み 役割
層1 常時展開 CLAUDE.md + rules/_shared/ セッション起動時に全プロジェクトで自動 核心ルール・共通ルール原本
層2 パススコープ rules/*.md(frontmatter globs) 該当ファイル操作時に自動 言語/作業別ルール
層3 スキルClaude Codeで「特定の作業手順」をパッケージ化したもの。SKILL.mdに手順を書いておくと、対応する場面でAIがその手順を読み込んで従う。経験を再利用する仕組み/参照 skills/ + 参照資料 トリガー/強指示 スキル・詳細参照

層1の一元管理(@import)

共通ルール(セキュリティ・コーディング原則・記録・LLMルーティング)は rules/_shared/ に1箇所まとめ、グローバルCLAUDE.mdから @import で取り込む。

層2のパススコープ(globグロブ。ファイル名を「*(任意の文字列)」等のワイルドカードで指定する書き方。「*.md」=すべてのmdファイル、のような使い方s)

rules/*.md のfrontmatterに globs: ["**/*.py"] のように指定すると、該当拡張子ファイル名の末尾の「.md」「.py」等の部分。ファイルの種類を示す目印のファイル操作時にだけ読み込まれる。Python・Dart・TypeScript等、言語別ルールを必要な時だけ自動ロードできる。

設計原則

  1. 200行以下 — メインCLAUDE.mdは核心のみ(展開後も維持)
  2. 具体命令化 — 「詳細: 〇〇.md参照」より @import常時展開が確実
  3. パス指定ロード — 言語別ルールは層2(必要時だけ)
  4. Instruction vs Learning分離 — CLAUDE.md(人間が書く)と memory/(AI蓄積)を混在させない

詳細: 3層メモリ構造・3層メモリ再設計


💡 やさしい補足(初心者向け)


SSOT検索スキル(ssot-search/v2=RAGRetrieval-Augmented Generation(ラグ・検索拡張生成)の略。AIに答えさせる前に、自分の文書から関連箇所を検索して渡し、その内容に基づいて答えさせる仕組み主経路)

SSOT横断検索の正典は ssot-search スキル。自然文クエリは v2(RAG意味検索)、型番・固有名は v1(字句検索)。

経路使い分け

クエリ型 経路 コマンド
自然文・概念・語彙が不定 v2(主) cd ~/projects/ssot-search-v2 && .venv/bin/python3 cli.py "<クエリ>" --top 5
型番・固有名・エラー文の正確コピー v1(サブ) python3 ~/.claude/scripts/ssot/search.py "<クエリ>" --top 5
両方広く v2 hybrid cli.py "<クエリ>" --mode hybrid

索引保守

層1ルールとの接続

層1 rules/_shared/LLMサボりバイアス防止.md のタスク再着手検索節は v2(RAG)を主経路、v1(字句)はサブ。grepグレップ。ファイルやテキストの中から、指定したパターンを含む行を抜き出すコマンド。大量のファイルから目的の言葉を探す時の定番 単独での「ゼロ件」断定は禁止(語彙違いを吸収できないため、誤断定が起きやすい・2026-10-17実測)。