# 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, - title format: [MEMORY][][HARD|SOFT] 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 4) Memory versioning - Use: bd supersede --with 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