Memory Engine

手動メモリシステムに構造化と予算管理を追加し、セッション終了時のチェックポイントと重複排除を提供する強化レイヤー。

Memory Engine とは?

Memory Engineは、Claude CodeおよびCodexの既存の自動メモリ動作を置き換えるのではなく、その上に構造化、予算認識、そしてセッション終了時のチェックポイント機能を追加するスキルです。核となる哲学は「提案するが、自動保存はしない」ことで、人間だけが何を保持する価値があるかを決定します。このスキルは、メモリの保存、メンテナンス、7次元統合チェックポイントの3つのフェーズで構成されています。最初のフェーズでは、メモリを5つのタイプ(ユーザー、フィードバック、プロジェクト、リファレンス、決定)に分類し、重複排除を行い、トークンコストを見積もり、YAMLフロントマター付きで保存します。2番目のフェーズでは、メモリの健全性をチェックするスクリプトを実行し、古くなったファイルや壊れたリンクなどの問題を特定して対処します。3番目のフェーズでは、7次元にわたって会話をスキャンし、2つ以上の次元でヒットがあった場合に統合候補を提案します。このスキルはCLAUDE.mdのルールやstopフックによってトリガーされ、ユーザーの承認なしにファイルを書き込むことはありません。

対応✓Claude Code✓Codex CLI~Cursor
npx skills add coni555/CONI-skill

Installed? Explore more 生産性&コラボレーション skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Memory Engine は何をしますか?

手動メモリシステムのための拡張レイヤー。このスキルは既存の自動メモリ動作を置き換えるものではなく、その上に構造、予算認識、そしてセッション終了時のチェックポイントを追加します。

核となる哲学: 提案はするが、自動保存はしない。何を保持する価値があるかは人間が決定します。

メモリディレクトリ

すべてのメモリファイルは ~/.claude/projects/-Users-coni/memory/ に保存されます。 インデックスファイル: MEMORY.md(常に読み込まれ、純粋なポインタのみ、内容は含まれない)

フェーズ 1: メモリキャプチャ

メモリを保存するとき(トリガーがあなた自身であれセッションチェックポイントであれ)、毎回以下のフローに従ってください。

ステップ 1 — 分類

5つのタイプ。適切なものを選んでください:

タイプキャプチャする内容シグナル
userアイデンティティ、好み、価値観、知識「私は...」「私は...が好き」、性格の変化
feedbackユーザーとの協業方法 — 訂正と確認の両方「そうじゃなくて」「そう、それでいい」、アプローチの検証
projectアクティブな作業コンテキスト、締め切り、目標「Xを木曜までにやる」、マイルストン達成
reference外部知識、ツール設定、ポインタ新しいツールを発見、APIを設定
decisionYではなくXを選んだ理由「Xを選びYは選ばなかった」、トレードオフの比較、アーキテクチャ上の判断

decision タイプの場合: references/decision-type-spec.md を読み、フロントマタースキーマと本文構造(コンテキスト → オプション → 決定 → いつ再検討すべきか)を確認してください。

ステップ 2 — 重複排除

書き込む前に、MEMORY.mdインデックスをスキャンして重複エントリがないか確認:

  • 同じトピックがすでにカバーされているか? → 新しいファイルを作成せず、既存のファイルを更新
  • CLAUDE.mdのルールと重複しているか? → 保存しない(ルールが優先される)
  • 一時的なタスクの詳細か? → 保存しない(git log / コードが信頼できる情報源)

feedback-memory-hygiene.md のすべてのルールを適用 — これらは引き続き権威があります。

ステップ 3 — トークンコストの見積もり

計算: file_bytes / 3.2(整数、切り捨て)。これにより、外部依存関係なしでCJK/英語混在コンテンツに対して妥当な近似値が得られます。

ステップ 4 — 書き込み

  1. YAMLフロントマター(name、description、type)でメモリファイルを作成
  2. MEMORY.mdインデックスを更新 — 正しいセクション見出しの下にエントリを追加
  3. トークン見積もりを追加: インデックス行の末尾に `~NNNNtk`

インデックス行の例:

- [decision-deploy-cloudflare.md](decision-deploy-cloudflare.md) — 国内デプロイはVercelではなくCF Pagesを選択 `~280tk`

保存してはならないもの

これらのルールは交渉不可です(メモリ衛生 + 自動メモリシステムより):

  • コードパターン、アーキテクチャ、ファイルパス — コードから導出可能
  • Git履歴、最近の変更 — git log が信頼できる情報源
  • デバッグ解決策 — 修正はコード内にある
  • CLAUDE.md または ~/cc-personal/rules/ にすでにあるもの
  • 一時的なタスク状態 — 現在のセッションでのみ有用
  • プロジェクトステータスのスナップショット — コードとgitから読む

フェーズ 2: メモリメンテナンス

/memory-check

監査スクリプトを実行し、結果を表示:

bash ~/.claude/skills/memory-engine/scripts/memory-health-check.sh

スクリプトは構造化レポートを出力します:

  • 予算: 総トークン vs 40,000tk上限(200Kコンテキストの20%)
  • タイプ分布: タイプごとのカウントとトークン
  • サイズ上位5: 最も多くの予算を消費している大きなファイル
  • 問題: 古いファイル(>30日)、孤立ファイル、壊れたリンク、空のタイプ、予算警告

レポートを提示した後、見つかった各問題に対して具体的なアクションを提案:

問題アクション
STALE「確認またはアーカイブ: {file} — まだ関連性がありますか?」
ORPHAN「MEMORY.mdインデックスに追加、または不要であれば削除」
BROKEN LINK「MEMORY.mdから削除、またはファイルを再作成」
NO ENTRIES情報提供 — すべてのタイプが常にエントリを必要とするわけではありません
BUDGET WARNING「最大のファイル: ... — 圧縮または分割を検討」

問題を解決した後、MEMORY.mdの予算コメントを更新:

<!-- budget: ~NNNNtk / 40000tk (NN%) | updated: YYYY-MM-DD -->

トークン注釈フォーマット

すべてのMEMORY.mdインデックスエントリにはトークン見積もりのサフィックスが付いています:

- [filename.md](filename.md) — 説明 `~NNNNtk`

予算コメントはMEMORY.mdの最上部(見出しの前)にあります。 これはHTMLコメントです — レンダリングされたマークダウンでは不可視ですが、スクリプトで解析可能です。

フェーズ 3: 7次元統合チェックポイント

トリガー(二重保障)

主力トリガー — Promptベース(CLAUDE.mdルール): 会話中に以下のシグナルを感知した場合、積極的に7次元スキャンを実行:

  • ツール呼び出しが密集(>15回のツール呼び出し)
  • 実質的な成果物(コード、分析、提案)を完了
  • 話題が大きく切り替わった
  • ユーザーが明示的に「まとめて」「振り返って」「総括して」と言った

セーフティネットトリガー — Stopフック(settings.json): consolidation-trigger.sh がagent stopのたびに実行され、停止回数と時間間隔を追跡します。 停止回数が ≥ 20 かつ前回のトリガーから ≥ 30 分経過した場合、7次元スキャンプロンプトを出力します。 状態ファイル: ~/.claude/projects/-Users-coni/memory/.consolidate-state

7次元スキャン

現在の会話を1次元ずつスキャンし、ヒットするか判断:

#次元ヒットシグナル対応する記憶タイプ
1タスク完了完全なタスクが依頼から納品まで完了project (マイルストン)
2CLAUDE.mdの更新新しい汎用動作ルールを発見直接CLAUDE.mdに書き込み
3ルールの蓄積ドメイン/ツール/ファイルタイプ関連のルールを発見~/cc-personal/rules/ に書き込み
4アーキテクチャ上の決定ツール選定、技術方式、デプロイ戦略など、自明でない選択を実行decision
5プロジェクトマイルストンプロジェクトステータスが実質的に前進(リリース、公開、主要機能完了)project
6協業のキャリブレーションユーザーがやり方を訂正、または自明でないやり方を確認feedback
7高価値分析セッションをまたいで再利用可能な分析フレームワーク、洞察、モデルを生成reference または user

実行フロー

7次元をスキャン → ヒット数をカウント
  ヒット 0-1 → スキップ(何もしない)
  ヒット 2以上 → チェックポイント提案を出力

ルール

  • 「保存してはならないもの」リストを厳格に適用 — チェックポイント時も例外なし
  • 提案前に既存のMEMORY.mdエントリを確認 — 重複禁止
  • チェックポイントごとに最大3候補 — 質より量
  • 該当するものがなければ何も出力しない(サイレントスキップ、強制提案なし)
  • チェックポイント中にファイルを書き込まない — 承認のために候補を提示するのみ
  • 各候補にはヒットした次元番号を必ず付記

出力フォーマット

[定着チェック] 今回の会話は 3/7 次元にヒット(④⑥⑦)、定着を提案:

1. [decision] ④ Stopフック + prompt の二重トリガー方式を選択、純粋なフックではない — フックは会話のセマンティクスを認識できない
2. [feedback] ⑥ ユーザー確認: フライホイールの中核は自動トリガーであって記憶分類ではない
3. [reference] ⑦ 主体の生命力フレームワーク: 人/会社/AI の3主体における時間とエネルギーの配分モデル

どれを保存しますか?番号で返信(例: 1,2)、または "skip" でスキップ。

ユーザーが番号を確認したら、選択された各アイテムに対してフェーズ1の保存フローを実行します。 ユーザーが "skip" または同等のことを言った場合、何もしません。

注意点

  • 保存のたびにMEMORY.mdの予算コメントを更新しない — /memory-check のときのみ。 頻繁な更新はキャッシュを壊し、git差分にノイズを追加します。
  • トークン見積もりは近似値です — 正確なものとして扱わないでください。/3.2 方式は 混在CJK/ENコンテンツに対して約90%の精度があり、予算認識には十分です。
  • decisionタイプは重要な選択のために — 「vimの代わりにnanoを使った」は保存する価値のある 決定ではありません。将来のセッションに影響を与える選択のために予約してください。
  • Stopフックはセーフティネットであり主力ではない — ユーザーがCtrl+Cで終了した場合、 フックはトリガーされません。能動的なスキャンがフライホイールのエンジンです。
  • 能動的なスキャンでユーザーのフローを妨げない — タスクの合間(段階完了時、話題切り替え時)に トリガーし、実行途中に割り込まないでください。

関連スキル