0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Code の auto memory を自作する — プロジェクト横断でナレッジを育てる設計パターン

0
Posted at

はじめに

Claude Code を長期プロジェクトで使っていると、「前回のセッションで分かったこと」が次回に引き継がれない問題 に必ずぶつかります。

Anthropic 公式の auto memory 機能は便利ですが、

  • 対応モデル・環境が限定される
  • どこに何が保存されているか不透明
  • プロジェクト横断では使いにくい

そこで、Markdownファイルベースの自作 memory システム をプロジェクトに組み込むと、Claude Code のセッションを越えてナレッジが育っていきます。

この記事では、自分が複数プロジェクトで実運用している設計パターンを紹介します。


設計の全体像

project-root/
├── CLAUDE.md                 # プロジェクトのメイン指示(不変)
├── .claude/
│   ├── rules/                # カテゴリ別のルール・設定
│   │   ├── project-info.md
│   │   ├── workflow.md
│   │   └── data-update.md
│   └── skills/               # カスタムスキル
└── memory/                   # ← ここが auto memory の核
    ├── MEMORY.md             # 索引(常に context に読ませる)
    ├── user_role.md
    ├── feedback_xxx.md
    └── project_xxx.md

ポイントは3つです。

  1. CLAUDE.md は不変の設定。頻繁に変わる情報は置かない
  2. memory/ は「学びの蓄積」。セッションで得た知見をここに書く
  3. MEMORY.md は索引だけ。本文はサブファイルに書いて Read で取りに行かせる

4種類の memory タイプ

自分の運用では、memory を 4種類に分類 しています。Claude Code が「何を保存すべきか」を判断できるよう、カテゴリを明示するのが肝です。

1. user 型 — ユーザーの役職・スキル・嗜好

---
name: ユーザー役職
type: user
description: ベンチャー企業CTO、Go歴10年、React初心者
---

- CTOとしてフルスタック開発を10年
- Go に深い知見、React は今月から触り始めた
- 技術説明は「Go の慣習とどう違うか」で例えると伝わりやすい

Claude Code はこれを読んで「この人には Go の慣習を引き合いに出して説明する」と判断できます。

2. feedback 型 — 過去に指摘された振る舞い

---
name: テストでモックを使わない
type: feedback
description: 統合テストは本物のDBを使う
---

**ルール**: 統合テストではDBをモックしない

**Why**: 昨Q、モックテストはグリーンなのに本番マイグレーションが壊れた事例あり
**How to apply**: `test/integration/**` のテストを書くときは testcontainers で本物のPostgresを立てる

重要なのは WhyHow to apply の2行を必ず添えること。理由が書いてあれば、エッジケースで「この場合は適用すべきか?」を Claude が自分で判断できます。

3. project 型 — プロジェクトの動的な状態

---
name: 次スプリントのマージ凍結
type: project
description: 3/5からモバイル版リリース前の凍結期間
---

**事実**: 2026-03-05 からマージ凍結(mobile-v2 リリースブランチ切り出しのため)

**Why**: モバイルチームのリリースが最優先
**How to apply**: 3/5 以降の非クリティカルPRは flag 立てて保留扱いにする

日付は 必ず絶対日付で書く。「来週」「Thursday」のような相対表現は時間が経つと意味不明になります。

4. reference 型 — 外部リソースのポインタ

---
name: 障害トラッカー
type: reference
description: パイプライン関連のバグは全てここに集約
---

Linear プロジェクト: `INGEST`
- URL: https://linear.app/xxx/project/INGEST
- パイプライン関連のバグ・改善要望はここを読む

MEMORY.md(索引)の設計

# Memory

## プロジェクト: X自動運用Bot
- 仕様書: `99_ツール/bot仕様書/docs/`
- Supabase Project: `xxxxx`
- 完了済み: pg_cron 5ジョブ稼働中

## 技術メモ
- [feedback_use_cmux.md](feedback_use_cmux.md) ブラウザ操作はcmux、mcpは使わない
- [feedback_qiita_no_retry.md](feedback_qiita_no_retry.md) Qiita投稿は1回失敗でスキップ

## ユーザー
- [user_role.md](user_role.md) ベンチャーCTO、テンポ重視、確認最小限

索引は最小限のメタ情報+サブファイルへのリンク に留めます。本文を MEMORY.md に書き込むと、肥大化して context を圧迫します。


Claude に「memory を更新して」と指示する運用

セッション中に新しい学びがあったら、明示的に更新させます。

/memory save
「今回の発見:pg_cron は `net.http_post` でJWTハードコード必須。
`current_setting` は使えない」
→ technical_notes.md に追記してください

自動化するなら、hooks で session end 時に memory update を走らせる方法もあります(.claude/settings.json):

{
  "hooks": {
    "SessionEnd": [
      {
        "matcher": "",
        "hooks": [
          { "type": "command", "command": "claude /memory-review" }
        ]
      }
    ]
  }
}

運用で気をつけるポイント

1. memory は腐る前提で書く

プロジェクト状態系は2週間で陳腐化します。日付を必ず添え、参照時に「まだ有効か」を Claude 自身に判定させましょう。

2. 索引はフラットに保つ

階層が深くなると Claude が見つけられません。MEMORY.md は最大で2階層、基本フラットで運用します。

3. 「保存すべき」判定を甘くしない

何でも memory に書くと、次回読むときのノイズになります。

  • 保存する: サプライズがあった学び、非自明な制約、ユーザー嗜好
  • 保存しない: コードから derivable な事実、git log で追える変更

まとめ

auto memory は、Claude Code のセッション寿命を超えてプロジェクト知識を育てる仕組みです。

  • 4つの type(user / feedback / project / reference)で分類する
  • 索引(MEMORY.md)と本体(サブファイル)を分離する
  • 書くたびに WhyHow to apply を添える

この設計で運用し始めてから、プロジェクト横断での「あの時の判断、なぜだっけ?」が激減しました。


AI時代のエンジニア学習サポートを MENTA で提供しています。
YouTube でもAI×プログラミングを発信中 → チャンネル

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?