record-memory について
record-memory は、長期的に役立つプロジェクト知識を記録し、後続のエージェントが利用できるようにするスキルです。記録範囲、関連付け、信頼度、寿命の設定と、検索可能性の確認を案内します。
主な機能
- 01適切な記憶タイプと寿命の選択
- 02パス、glob、コマンド、タグによる範囲指定
- 03記録間の永続的な関係の設定
- 04信頼度と重要度の設定、検証
- 05検索による記録の見つかりやすさの確認
活用シーン
- 01再利用できる手順や不変条件の保存
- 02後続セッション向けのサブシステム情報の記録
- 03範囲を指定した記憶の検索可能性の確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ davidlee/ doctrine --skill record-memoryインストール後、Claude Code で/record-memoryを入力して読み込まれたか確認します。
詳細
メモリの記録
会話のコンテキストは保持されません。知識を記録しておけば今後のエージェントの時間を大幅に節約できる場合は、すぐにメモリレコードを書き込みます。フェーズとスライスの完了時には、必ず notes.md、アクティブなランタイムフェーズシート、監査結果、新たに判明した注意点を確認し、長期的に役立つガイダンスを残してください。
長期的に役立つガイダンス、つまり、繰り返し使えるワークフロー、注意すべき落とし穴、不変条件、サブシステムに関する事実のみを昇格させます。会話の状態は記録しません。
1. 適切な範囲で最も限定的なタイプを選ぶ
--type の値については、doctrine memory record --help を参照してください。
concept|fact|pattern|signpost|system|thread.
⚠ thread は検証されるまで find/retrieve で表示されません。
作業ループをスコープ検索で再び見つけられるようにしたい場合は、長期的に使えるタイプ(pattern/system/concept)を選ぶか、thread を記録してクリーンなツリーで verify してください。未検証の thread は list/show にのみ表示され、スコープのランキングには表示されません。
2. 記録する
doctrine memory record で記録します(フラグは --help を参照してください。動詞のモデルについては lib:reference/using-doctrine.md を参照してください)。.doctrine/memory/items/ 以下に TOML と本文が生成されます。誕生時の git アンカーは自動的に記録されます。手動で記述しないでください。
記録後
推奨される関連付け。 既存のメモリとの高い確度の一致が検出されると、record は標準エラー出力に関連付け候補を表示します。候補を確認し、一致すると判断したものには doctrine link を実行してください。これにより、後続のエージェントがたどれる永続的なグラフのエッジが構築されます。
グラフと本文のリンク。 永続的なグラフ構造(型付きで、機械的にたどれる関係)には [[relation]] エッジを使用します。本文中で「こちらも参照」と示す文脈的な参照には、[[mem.…]] のウィキリンクを使用します。関連付けは retrieve --expand に表示されますが、ウィキリンクは表示されません。ウィキリンクは人が読むためのものです。
--lifespan の選択。 知識に合った最も限定的な有効期間を、長期的な順に選びます。
| 有効期間 | 目安 |
|---|---|
identity | 古くならない — サブシステムのアイデンティティ、不変条件、正式名称 |
semantic | 減衰率 10:1 — 設計の根拠、アーキテクチャ上の制約 |
procedural | 減衰率 3:1 — コマンドの手順、ビルド手順、ワークフロー |
episodic | 基準値 — 一度限りの発見、バグのメモ、セッションのコンテキスト |
working | 急速に減衰 — 一時的な TODO、短期間の仮説 |
省略すると episodic がデフォルトになります。スコープと有効期間の両方を限定することで、検索結果の関連性を保てます。
3. 見つけられるようにスコープを設定する
次の4つの軸でメモリのスコープを設定します(フラグは --help を参照してください)。
- path — 正確なファイル。最も強く一致します。
- glob — サブシステムとの関連性(例:
src/auth/**)。 - command — コマンドのフローに紐づけます(トークンプレフィックス)。
- tag — 安定した分類に使用します。タグをスコープとして過剰に利用しないでください。
4. リスクの軸を設定する
record のデフォルト値は [trust] trust_level = "medium"、[ranking] severity = "none"、weight = 0 です。リスクが高いメモリや内容が変わりやすいメモリの場合は、記録時にフラグを指定するか、後から更新してください。
doctrine memory record ... --trust high --severity critical
または、記録後に調整します。
doctrine memory edit <REF> --trust low --severity medium
--trust= 確信度:low(推測であり、検証されていない)・medium(妥当なコンテキストから導かれたもの。デフォルト)・high(コード/仕様/直接観察によって検証済み)。--severity= 誤っていた場合や無視された場合の重要度:critical・high・medium・low・none(デフォルト)。
正直に評価してください。メモリの作成は記述であり、検証ではありません。
5. 検証した場合は証明する
doctrine memory verify <UID|KEY>
作業ツリーを対象に verified_sha を記録します(ダーティツリーでは拒否され、誤った証明を防ぎます)。証明されていないメモリは、信頼度が低く扱われます。
thread を表示するには、この手順が必須です。 thread_expiry は、14日以内に verified かつ reviewed になっていない thread を find/retrieve の検索対象から除外します。record は常に unverified として記録するため、新しい thread は、verify するまでスコープのランキングに表示されません。また、verify はダーティツリーでは拒否されるため、クリーンなツリーで証明してください。他のタイプはこの制限の対象になりません。
doctrine memory retrieve --help を参照してください。retrieve では、迂回できない信頼度による保留が適用されます(信頼度が低く、重要度が高いものは除外されます)。
6. 本文は短く、実行可能な内容にする
「X を実行する」手順は、正確なコマンドスニペットとともに箇条書きにします。関連する成果物やメモリは、[[uid]] / [[key]] を使って本文中で参照します(リレーションより低コストです)。
その項目が ADR や恒久的な仕様になる場合は、そこで作業を止めてください。代わりに doctrine adr new を実行するか、仕様書または ADR を作成します。メモリはポインター/レシピのレイヤーであり、正典ではありません。
7. 表示可能な状態か確認する
将来のエージェントが実際に検索するコンテキストに範囲を絞って doctrine memory search を実行し(--help を参照)、メモリが表示されることを確認します。検索結果は 1 ページ分だけ返されるため、範囲を絞った閲覧ではページ送りによって対象が表示されない場合があります。メモリ独自の用語を使ったクエリ(フリーテキストでは根拠に基づいて見つかります)で確認するか、--page でページを進めてください。
例外:未検証の thread は、正しく記録されていても(§1/§5)、ここには表示されません。まず verify するか、代わりに memory show を確認してください。