fable-memory について
Fable Memoryは、会話ログではなく、範囲、出典、新しさ、矛盾への対処を備えた長期的な事実を保持するスキルです。セッションをまたいでユーザーの好みやプロジェクト制約、決定を管理し、一時的な状態や秘密情報は除外します。
主な機能
- 01事実の持続性を分類
- 02範囲と出典を記録
- 03更新前に矛盾を確認
- 04古い記録を置き換え
- 05秘密情報と一時状態を除外
活用シーン
- 01明示された長期的な好みを保存
- 02セッションをまたいでプロジェクト制約を管理
- 03過去の決定を修正または取得
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ immamdouhaboammar/ get-fable --skill fable-memoryインストール後、Claude Code で/fable-memoryを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
skill.package.jsonagents/openai.yamlevals/scenarios.jsonexamples/recording-user-preference.mdreferences/durable-fact-lifecycle.mdmemory-management-protocol.mdtemplates/memory-fact.template.md詳細
Fable Memory
セッションを越えて残す価値のある事実だけを、出典情報と矛盾への対処を十分に備えて保存します。古い記憶が、気づかぬうちに新たな誤りの原因にならないようにします。
目的
記憶はチャットのアーカイブではありません。一時的な推測を恒久的な指示に固定することなく、情報の再発見を減らすものです。
長期的に有効な記録には、スコープ、出典情報、確信度、新しさ、そしてユーザーやリポジトリの変更時に古い内容を置き換える方法が必要です。
有効にする場合
- ユーザーが、長期的に有効な好みや制約を明示的に記憶するよう求めた場合;
- 安定したプロジェクト規約やアーキテクチャ上の決定が、今後の作業に実質的な影響を与える場合;
- 同じ事実にセッションをまたいで繰り返し依存する場合;
- 以前の長期的な事実の訂正、置き換え、または検索が必要な場合。
有効にしない場合
- 情報が一時的な実行状態(
.fable/state、台帳、引き継ぎ)である場合; - 今後の判断に影響する可能性が低い、一度限りの会話上の詳細である場合;
- 安定して保存するにはまだ不確かな推測や推論である場合;
- パスワード、トークン、秘密鍵、セッション Cookie、その他の秘密情報を含む場合。
記憶の分類
| 種類 | 例 | 保存の基準 |
|---|---|---|
| ユーザーの好み | 希望するパッケージマネージャー | 明示的で安定している場合に保存 |
| プロジェクトの制約 | ランタイム Bun >=1.3 | プロジェクト/出典に紐付ける |
| アーキテクチャ上の決定 | イベントには outbox を使う | 根拠と置き換え方法を記録 |
| 繰り返し適用されるワークフロー規則 | リリース前にパッケージのクリーンインストールを検証する | プロジェクト固有で長期的に有効な場合に保存 |
| 外部の事実 | API の動作/バージョン | 通常は使用時に出典を確認・調査し、永続的な記録は避ける |
| 一時的な状態 | 現在失敗しているテスト | 記憶ではなく、引き継ぎ/状態に記録 |
| 機密性の高い認証情報 | API トークン | 記憶に保存しない |
プロトコル
ステージ 1 — 記憶する価値があるか判断する
以下を確認します。
- 別のセッションでも必要になる可能性が高いか?
- 安定しているか、明示されているか、出典に裏付けられているか?
- より限定的な既存の記録を更新できるか?
- 保存によってプライバシーやセキュリティのリスクが生じる可能性はあるか?
長期的に有効でなければ、現在のコンテキスト/引き継ぎにのみ残します。
ステージ 2 — 事実を正規化する
一貫性のある決定/事実を 1 つ保存し、以下を含めます。
- 正式な記述;
- スコープ(ユーザー/プロジェクト/リポジトリ/サブシステム);
- 種類;
- 出典/来歴;
- 確信度/ステータス;
- 対応している場合は作成日時/更新日時;
- 関連する場合は、置き換える/置き換えられる関係。
ステージ 3 — 書き込む前に競合を確認する
同じ主題について既存の記録を検索します。以下を比較します。
- 完全に一致する → 重複させず、出典情報/新しさを更新する;
- スコープがより限定的/広範 → スコープが実際に異なる場合にのみ両方を保持する;
- 矛盾する → 有効な事実を 2 つ併存させない。解決するか、競合を明示的に記録する。
ステージ 4 — アトミックに書き込み、インデックスを更新する
正規の事実記録を 1 つ更新し、インデックス/カタログと同期します。無関係な記録はそのまま保持します。
ステージ 5 — 検索時の意味を検証する
将来のエージェントの視点で記録を読み返します。過度に一般化されていないことを確認します。
use Bun in get-fableはuser always uses Bun everywhereを意味するわけではありません;API v4 did X in Aug 2026は永続的な API の保証ではありません。
ステージ 6 — 検索した記憶を慎重に適用する
記憶した事実が現在の作業に影響する場合:
- スコープが一致することを確認する;
- 古い記憶より、現在のユーザー/リポジトリの情報を優先する;
- 時間とともに変化する外部の事実を再検証する;
- 明示的な新しい指示は、該当する場合、古い好みを置き換えるものとして扱う。
判断ルール
- ユーザーによる現在の明示的な発言は、保存済みの好みより優先されます。
- リポジトリ/設定/ソースの証拠は、リポジトリの状態に関する矛盾した記憶より優先されます。
- 時間とともに変わる外部の事実は、いつまでも信頼せず、改めて調査する必要があります。
- 記憶は過去のものであっても、現在も有効とは限りません。履歴が重要な場合は、削除ではなく「置き換え済み」の状態を使います。
- 1 つのプロジェクトでの選択から、広範な個人の好みを推測しないでください。
- ユーザーが「トークンを記憶して」と頼んだ場合でも、認証情報を保存してはいけません。代わりに、安全な認証情報管理を案内してください。
- 1 レコードにつき 1 つの事実を記録することは保守性のためのルールですが、関連する根拠や出典をその事実に添えてもかまいません。
不変条件
- シークレットを永続的な記憶に含めないでください。
- アクティブな記憶に、明示的な競合状態の指定がないまま、未解決の矛盾する事実を含めてはいけません。
- 意図しない一般化を防げるよう、適用範囲を明確にしてください。
- 重要な制約や判断の出典を保持してください。
- 現在の証拠や指示によって、記憶を置き換えられるようにしてください。
- インデックスと元のレコードの内容を一致させてください。
失敗の分類
重複した記憶
わずかな表現の違いで、同じ事実が 2 回記録されています。正規のレコードに統合、または更新してください。
適用範囲の漏れ
プロジェクト固有の選択が、ユーザー全体の好みとして扱われています。適用範囲を狭めてください。
古くなった記憶
リポジトリ、ユーザー、または外部の実情が変わっています。使用する前に置き換えるか、再検証してください。
アクティブな事実の矛盾
2 つのレコードが、互いに両立しないアクティブな指針を示しています。現在のソースやユーザーの証拠に基づいて解決してください。
推測が事実として固定化
エージェントが、仮定を永続的な事実として保存しました。確度を下げるか削除し、証拠を必須にしてください。
シークレットの永続化
機密情報が記憶に含まれています。露出を取り除き、必要に応じて認証情報のローテーションやセキュリティ対策を行ってください。
反パターン
- 「念のため」と会話の詳細をすべて保存すること。
- 一時的なエラーや進行中のタスクを、永続的な好みとして保存すること。
in this repoをalwaysに広げること。- 有効期限や出典を示さず、現在の API/バージョンに関する主張を保存すること。
- 矛盾するレコードを更新せず、新しい事実ファイルを作成すること。
- 将来の自動化で必要になるかもしれないという理由でトークンを保存すること。
- 記憶を、現在のリポジトリの証拠より優先して扱うこと。
- 置き換えの経緯が重要な場合に、過去の判断を黙って削除すること。
記憶レコード
Subject/fact:
Scope:
Type:
Status: active | superseded | conflicted
Source/provenance:
Confidence:
Rationale/context:
Supersedes / superseded by:
Freshness/revalidation note:
完了基準
次の条件を満たしたとき、記憶の作業は完了です。
- 事実が真に永続的で、安全な範囲に限定されている。
- 重複や矛盾を確認している。
- 後から評価できるだけの出典情報がレコードに含まれている。
- インデックスが同期されている。
- 機密情報や一時的なデータが除外されている。
- 後続のエージェントが、過度に一般化することなく事実を検索し、適用できる。
詳細リソース
- 詳細ガイド:
references/durable-fact-lifecycle.md - 既存のプロトコル:
references/memory-management-protocol.md - テンプレート:
templates/memory-fact.template.md - 例:
examples/recording-user-preference.md