← Files get-fableARCHIVED FILE

skills/fable-memory/references/durable-fact-lifecycle.md

2.15 KB · Oct 3, 2026 · 06:31 UTC

↓ Download file

# Durable Fact Lifecycle

A durable memory record should be useful months later without becoming a stale hidden instruction.

## Persist only what changes future decisions
Good candidates:
- explicit user preference that recurs;
- repository runtime/tooling constraint;
- architecture decision and rationale;
- stable naming/contribution/release convention.

Poor candidates:
- current test failure;
- temporary branch name unless part of handoff;
- speculative diagnosis;
- external API fact likely to change;
- one-time personal/conversational detail unrelated to future work.

## Scope is part of the fact
These are different memories:
- `get-fable uses Bun for package management`;
- `all projects owned by this user use Bun`.

Do not broaden scope unless the user explicitly does.

## Provenance
For consequential facts record how you know:
- explicit user instruction;
- repository file/commit;
- architectural decision document;
- verified repeated preference.

Provenance lets a future agent resolve conflict when reality changes.

## Supersession
Avoid two active contradictory records. When a decision changes:
- mark old record superseded;
- link new record;
- keep rationale/history if future migration/debugging may depend on it.

## Time-sensitive facts
External versions, office holders, pricing, API limits, dependency behavior, and service capabilities age quickly. Prefer storing a revalidation instruction/source rather than treating a snapshot as timeless truth.

## Retrieval policy
Before applying memory ask:
1. Does scope match this task/repo?
2. Is current user instruction different?
3. Does repository/source evidence contradict it?
4. Is the fact time-sensitive enough to revalidate?
5. Has a newer record superseded it?

## Security
Credentials never belong in durable memory. If continuity needs authentication, store only the secure mechanism to use (credential manager, `gh auth`, CI OIDC, environment secret), not the secret itself.

## Conflict example
Stored: `package manager: npm` (project scope, 2025)
Current `package.json` + user instruction: Bun-only

Correct action: supersede old project record, cite current evidence, do not maintain both as active preferences.

SHA-256: 90741c943ee5977a042b1247b14b4cee31a4d888e921ab765bcee1ce4e31938e