58 lines
1.5 KiB
Text
58 lines
1.5 KiB
Text
# Memory Schema and Noise Budget
|
|
|
|
One memory bead = one atomic reusable rule.
|
|
If it is not reusable across future tasks, keep it in task notes instead.
|
|
|
|
Canonical memory schema:
|
|
- type: decision
|
|
- status: closed (after ratification)
|
|
- labels: memory,mem-canonical,mem-hard|mem-soft,<domain>
|
|
- title format: [MEMORY][<DOMAIN>][HARD|SOFT] <rule sentence>
|
|
|
|
Required description sections:
|
|
- Scope:
|
|
- Out of Scope:
|
|
- Rule:
|
|
- Rationale:
|
|
- Failure Mode:
|
|
|
|
Required acceptance style:
|
|
- Given / When / Then invariant
|
|
- Verification commands
|
|
|
|
Required metadata JSON keys:
|
|
- memory_version
|
|
- memory_strength
|
|
- domain
|
|
- effective_date
|
|
- owner
|
|
- supersedes
|
|
- superseded_by
|
|
- evidence_ids
|
|
- plan_refs
|
|
|
|
Edge rules:
|
|
1) Anchor <-> Canonical memory
|
|
- Use: bd dep relate
|
|
- Never use blocker edge for anchor indexing
|
|
|
|
2) Active task <-> Memory
|
|
- Default: bd dep relate
|
|
|
|
3) Active task <- Contract (hard rules only)
|
|
- Use: bd dep add <active-task> <contract>
|
|
|
|
4) Memory versioning
|
|
- Use: bd supersede <old> --with <new>
|
|
|
|
Noise budget limits:
|
|
- Per active task: 3-7 related memory nodes
|
|
- Per active task: 0-2 blocker contracts
|
|
- Per canonical memory: 1 primary anchor domain
|
|
- Per canonical memory: 2-5 source-bead provenance links
|
|
- Promote incident/workaround memory only after repetition evidence
|
|
|
|
Promotion policy:
|
|
1) Incident repeats 2+ times -> candidate soft canonical memory
|
|
2) Workaround survives release window -> candidate hard/soft canonical memory
|
|
3) Obsolete canonical memory -> supersede, do not rewrite history
|