Supersession_Matrix.md
Memory Rebuild Docs/Flattening/Supersession Matrix/Supersession_Matrix.md
# DOC80 Memory Rebuild — Supersession Matrix (Stage 4)
**Repository:** github.com/wbrody/Elnor-Specs — branch `main`
**Generated:** 2026-05-25 (Stage 4)
**Rows:** 49
One SupersessionMatrixRow per plan §8 schema, covering at minimum the plan §8.5 mandatory named families plus all old/new mappings extracted from ABC R0.2, Round D R0.2, Concept Model, DAMS V5 Outline, and the Adjudication Delta.
**Plan §8.3 rule applied:** every row is `agent_proposed` or `requires_architect_review`. No row is `architect_approved` (agents may not self-approve). Rows requiring architect adjudication carry an `architect_decision_ref` pointing to the Architect Decision Queue.
**Plan §8.2 preservation proof requirement:** every disposition in {merge_into_target, split_into_multiple_targets, replace_by_edge, replace_by_function, replace_by_static_table, replace_by_projection, semantic_compression, federate_to_owner_doc, defer_completion, park_future_module, retire_as_superseded, reject} carries a `capability_preservation_proof_ref` field marked TBD pending Stage 8 patch. The placeholder is intentional — Stage 4 cannot self-write its own proof; proofs land at Stage 8 after slice review.
**Plan §8.5 coverage check** (mandatory list — all present):
- PremiseFamily / PremiseVariant — SM-001, SM-002, SM-003 (Premise as use role)
- generic Claim — SM-004
- ConsolidatedUnderstanding / SourceSetSynthesis — SM-005, SM-006
- Assertion / AssertionVariant / AssertionCandidate / AssertionResolution — SM-007, SM-008
- ScopeMembrane / ScopeBoundary / EffectiveMemoryPolicy — SM-010, SM-011, SM-013
- PolicyMembraneDecision / MemoryPolicyDecision — SM-012, SM-013, SM-014
- SearchAffordance — SM-030
- DAMS standalone ranking / DAMS context-product seam — SM-020, SM-021
- Library / Corpus / SourceCollection / CorpusIndex — SM-040
- MemoryFlowCertificate / ContextPacketProof — SM-050, SM-051
- ContextProduct / legacy memory card / KDA render card — SM-060
- TopicLens / TopicCollectionDirective / Topic facts — SM-070, SM-071, SM-072
- WorkingStateEvent / IssueFrameUpdate — SM-080, SM-081
- UserContextSurfacePlan old/new — SM-090
## Disposition distribution
| disposition (plan §9.2 DispositionMove) | count |
|---|---|
| absorb_as_target_rule | 33 |
| merge_into_target | 2 |
| retire_as_superseded | 5 |
| semantic_compression | 3 |
| split_into_multiple_targets | 5 |
| unresolved | 1 |
## Approval status distribution
| approval_status (plan §8.1) | count |
|---|---|
| agent_proposed | 31 |
| requires_architect_review | 18 |
## Rows
| row_id | source_name | source_kind | disposition | target_name | approval_status | migration_effect | architect_decision_ref | preservation_proof | source_refs |
|---|---|---|---|---|---|---|---|---|---|
| SM-001 | PremiseFamily | concept | retire_as_superseded | Assertion | agent_proposed | semantic_change | ADQ-201 | PROVISIONAL (Stage 8 finalizes). Old: PremiseFamily was generic truth-apt object family. Target: Assertion (canonical durable) + AssertionVariant (scoped) + AssertionCandidate (staged). Preserved: distinction between staged-candidate vs durable-canonical truth; scoped variants. Risk: domain-specific Premise reasoning patterns may not map cleanly. Slice: E3 (Canonical knowledge objects). | ABC R0.2 §3.1; DAMS V5 §4.13; archived DAMS V3/V4 drafts |
| SM-002 | PremiseVariant | concept | retire_as_superseded | AssertionVariant | agent_proposed | semantic_change | ADQ-201 | PROVISIONAL (Stage 8). Old: PremiseVariant as parallel memory object. Target: AssertionVariant. Preserved: scoped / preconditioned answers to canonical_question. Risk: variant-edge semantics if not threaded through Assertion identity. Slice: E3. | ABC R0.2 §3.1; legacy DAMS drafts |
| SM-003 | Premise (as memory object) | concept | absorb_as_target_rule | Premise (use role in reasoning / injection only) | agent_proposed | semantic_change | ADQ-201 | TBD — Premise becomes a use role on an Assertion, not a separate truth store; injection contracts must distinguish use-role from canonical identity | ABC R0.2 §3.1 |
| SM-004 | generic Claim | concept | split_into_multiple_targets | AssertionCandidate (staged extraction) + namespaced Claim (LegalClaim / EvaluationClaim / ClaimExtractorOutput) | agent_proposed | semantic_change | ADQ-201 | PROVISIONAL (Stage 8). Old: generic `Claim` ambiguous across truth, legal, and evaluation contexts. Target: AssertionCandidate (staging) + namespaced Claim (LegalClaim / EvaluationClaim / ClaimExtractorOutput). Preserved: domain claim semantics via namespacing; staged-truth pipeline via AssertionCandidate. Risk: legacy `Claim` references that don't namespace cleanly need translation. Slice: E3 + E5. | ABC R0.2 §3.1; Concept Model §3.2; legacy DOC73 drafts |
| SM-005 | ConsolidatedUnderstanding (as reusable truth) | concept | absorb_as_target_rule | ConsolidatedUnderstanding (source-bound synthesis only, may generate Assertions) | requires_architect_review | semantic_change | ADQ-201 | TBD — CU semantics from DOC73 preserved; reusable-truth path runs through Assertion pipeline | Adjudication Delta §1.9; ABC R0.2 §4.5 |
| SM-006 | SourceSetSynthesis | concept | absorb_as_target_rule | ConsolidatedUnderstanding (source-bound) | agent_proposed | rename_only | ADQ-219 | TBD — same semantics, canonical name is ConsolidatedUnderstanding | (legacy DOC73 / DAMS drafts) |
| SM-007 | Assertion (canonical truth-apt object) | concept | absorb_as_target_rule | Assertion | agent_proposed | none | | TBD — Assertion semantics retained per ABC §3.1 | ABC R0.2 §3.1–3.5; Concept Model §3; DAMS V5 §4 |
| SM-008 | AssertionCandidate / AssertionVariant / AssertionResolution | concept | absorb_as_target_rule | AssertionCandidate / AssertionVariant / AssertionResolution | agent_proposed | none | | TBD — pipeline preserved | ABC R0.2 §3.4–3.7; Concept Model §17.1–17.3 |
| SM-010 | ScopeMembrane (as monolithic policy boundary) | policy_object | split_into_multiple_targets | ScopeBoundary + PolicyMembraneDecision | agent_proposed | semantic_change | | PROVISIONAL (Stage 8). Old: ScopeMembrane as monolithic policy + boundary object. Target: ScopeBoundary (topology) + PolicyMembraneDecision (membrane crossing). Preserved: scope topology survives; crossing decisions become policy-driven. Risk: code paths that treated scope and policy as one need splitting. Slice: E1 + E2 (Scope/Policy lockstep). | Round D R0.2 §3.1; archived scope-resolution drafts |
| SM-011 | ScopeBoundary (canonical) | scope_object | absorb_as_target_rule | ScopeBoundary | agent_proposed | none | | TBD — defines topology only, no policy decisions | Round D R0.2 §3.1; Concept Model §11 |
| SM-012 | MemoryPolicyDecision (scalar) | policy_object | semantic_compression | MemoryPolicyDecision (dimensional) + EffectiveMemoryPolicy | agent_proposed | semantic_change | | PROVISIONAL (Stage 8). Old: scalar MemoryPolicyDecision (one ranking). Target: dimensional MemoryPolicyDecision (5 axes) + EffectiveMemoryPolicy (per-dimension meet). Preserved: policy decision survives via dimensional formulation; action-independence (one action's permission doesn't constrain another). Risk: scalar ranking code paths need refactor to per-dimension. Slice: E1 + E2. | Round D R0.2 §1.1–1.5; legacy policy drafts |
| SM-013 | EffectiveMemoryPolicy (undefined / informal) | policy_object | absorb_as_target_rule | EffectiveMemoryPolicy (concrete; per-dimension meet) | agent_proposed | semantic_change | | TBD — informal usage formalized as dimensional meet | Round D R0.2 §1.5; legacy informal references |
| SM-014 | PolicyMembraneDecision (as allow/block scalar) | policy_object | split_into_multiple_targets | PolicyMembraneDecision (membrane crossing only) + MemoryPolicyDecision (per-dimension) | agent_proposed | semantic_change | | PROVISIONAL (Stage 8). Old: PolicyMembraneDecision as allow/block scalar. Target: PolicyMembraneDecision (membrane crossing only) + MemoryPolicyDecision (per-dimension). Preserved: crossing decision and policy decision both expressible. Risk: old allow/block code paths conflate the two. Slice: E1 + E2. | Round D R0.2 §19.1; legacy drafts |
| SM-020 | DAMS (as memory truth owner) | concept | semantic_compression | DAMS V5 — attenuator / capacity-prior / salience substrate (no truth ownership) | requires_architect_review | semantic_change | ADQ-301 (DAMS attenuator formula) | PROVISIONAL (Stage 8). Old: DAMS as memory truth owner with broad scope. Target: DAMS V5 as attenuator / capacity-prior / salience substrate (no truth, source, policy, final-prompt, rendering, learning, UI, or EC writes). Preserved: attenuator contributions, capacity priors, cold-start defaults, role-band hints, false-suppression guardrails. Risk: code paths treating DAMS as truth owner need refactor. Slice: E7 (Runtime context products + DAMS seam). | ABC R0.2 §1.3, §8.2; Adjudication Delta §1.1 |
| SM-021 | DAMS standalone ranking | concept | merge_into_target | DAMS context-product seam (PolicyCappedDAMSInput → DAMS attenuator → ContextProductDecision) | agent_proposed | semantic_change | | PROVISIONAL (Stage 8). Old: DAMS as standalone ranker. Target: DAMS context-product seam (PolicyCappedDAMSInput → attenuator → ContextProductDecision). Preserved: ranking semantics under eligibility ceiling. Risk: unbounded ranking calls that bypass policy. Slice: E7. | ABC R0.2 §8.2; legacy DAMS V3/V4 |
| SM-030 | SearchAffordance (scalar / undefined) | ui_surface | absorb_as_target_rule | SearchAffordance (state machine) + SearchAffordancePreflight + SearchAffordanceExecutionMode | agent_proposed | semantic_change | | TBD — preflight prevents phantom tools; execution_mode covers ui_hint_only / manual_user_action / agent_auto_pull_allowed / blocked_by_policy_or_scope | Round D R0.2 §7.1; legacy informal references |
| SM-040 | Library / Corpus / SourceCollection / CorpusIndex (intermixed) | concept | split_into_multiple_targets | Library (user-visible) + Corpus / SourceCollection / CorpusIndex (internal deep-ingestion) | requires_architect_review | semantic_change | ADQ-202 (Corpus hierarchy) | PROVISIONAL (Stage 8). Old: Library / Corpus / SourceCollection / CorpusIndex intermixed. Target: Library (user-visible) + Corpus / SourceCollection / CorpusIndex (internal deep-ingestion). Preserved: user-facing single-source-of-truth (Library); internal aggregation / dedup layer (Corpus family). Risk: code paths treating Corpus as user-visible scope. Slice: E0 + E4. Depends on ADQ-202. | ABC R0.2 §6.5; Adjudication Delta §1.8; Concept Model §8 |
| SM-050 | MemoryFlowCertificate (general delivery proof) | concept | absorb_as_target_rule | MemoryFlowCertificate (mandatory for durable write / render / export / carryover / delegation / learning attribution) | requires_architect_review | semantic_change | ADQ-207 (MemoryFlowCertificate mandatory scope) | TBD — every durable-effect action gets a certificate; internal candidate reads exempt | Adjudication Delta §3 item 7; legacy DOC11 drafts |
| SM-051 | ContextPacketProof | concept | absorb_as_target_rule | ContextPacketProof + RenderSafetyProof | agent_proposed | none | | TBD — used as final-prompt-proof gate for learning | ABC R0.2 §7.13; Round D R0.2 §9.2 |
| SM-060 | legacy memory card / KDA render card (ad-hoc) | context_product | merge_into_target | ContextProduct (registry product) — fixed registry of 17 product kinds (canonical = ABC R0.2 §9.2; E0 discharge 2026-06-01) | requires_architect_review | semantic_change | ADQ-203 (ContextProduct ownership: Memory Control Plane vs DOC24) | PROVISIONAL (Stage 8). Old: ad-hoc memory card / KDA render card / legacy notice. Target: ContextProduct (fixed registry of 17 kinds; canonical ABC R0.2 §9.2). Preserved: all delivery semantics via registry mapping. Risk: ad-hoc card variants without registry entries. Slice: E7. Depends on ADQ-203 / ADQ-211. | ABC R0.2 §1.3; archived KDA drafts; legacy DOC24 cards |
| SM-070 | Topic facts (parallel truth store) | concept | retire_as_superseded | MemoryMembershipEdge + canonical Assertion / CU / EvidenceRecord | agent_proposed | semantic_change | | PROVISIONAL (Stage 8). Old: Topic / Library / Project facts as parallel truth stores. Target: MemoryMembershipEdge + canonical Assertion / CU / EvidenceRecord (no parallel truth). Preserved: membership relationship as edge; truth at canonical objects. Risk: code paths reading 'Topic facts' as truth. Slice: E3 + E10. | ABC R0.2 §1.3, §2.2; Adjudication Delta §1.7, §2.4 |
| SM-071 | TopicLens (passive saved view only) | concept | split_into_multiple_targets | TopicLens (semantic lens / search / injection surface) + TopicCollectionDirective (governed extraction rule) | requires_architect_review | semantic_change | ADQ-204 (TopicLens object identity) | PROVISIONAL (Stage 8). Old: TopicLens as passive saved-view-only object. Target: TopicLens (semantic lens / search / injection surface) + TopicCollectionDirective (governed extraction rule). Preserved: saved-view semantics; user-visible Topic identity. Risk: legacy code that treated TopicLens as the extraction driver needs to route extraction through TopicCollectionDirective. Slice: E1 + E3 + E10. Depends on ADQ-204, ADQ-205. | Adjudication Delta §1.7, §2.3 |
| SM-072 | TopicCollectionDirective | concept | absorb_as_target_rule | TopicCollectionDirective | requires_architect_review | none | ADQ-205 (TopicCollectionDirective ownership: memory spec defines seam, PropA/EC/DOC23 execute) | TBD — extraction routes through common AssertionCandidate pipeline; memberships are edges, not truth | Adjudication Delta §1.7; Concept Model §10; ABC R0.2 §6.2 |
| SM-080 | IssueFrameEvent (proposed earlier name) | concept | retire_as_superseded | WorkingStateEvent / IssueFrameUpdate | agent_proposed | rename_only | | PROVISIONAL (Stage 8). Old: IssueFrameEvent as proposed name. Target: WorkingStateEvent / IssueFrameUpdate (append-only updates). Preserved: append-only event semantics. Risk: rename pass needed across consumers. Slice: E6 (Temporal / working-state). | Adjudication Delta §1.10 |
| SM-081 | IssueFrame (as Assertion / truth store) | concept | absorb_as_target_rule | IssueFrame (workbench state) + AssertionCandidate (for truth-apt content) | requires_architect_review | semantic_change | ADQ-206 (IssueFrame necessity) | TBD — IssueFrame is workbench (open questions / hypotheses / rejected paths / decision checkpoints / blocking source needs / next actions), not a parallel assertion system | ABC R0.2 §3.1; Concept Model §9 |
| SM-090 | UserContextSurfacePlan (informal / undefined) | ui_surface | absorb_as_target_rule | UserContextSurfacePlan (concrete; with VisibleContextActionSpec, HiddenContextRef, InspectorVisibilityPlan) | agent_proposed | semantic_change | | TBD — phantom controls replaced with command-closed VisibleContextActionSpec (every visible action has ECCommandRef + RegisteredRouteRef + degraded_noop_receipt_kind) | Round D R0.2 §5.2–5.5 |
| SM-100 | MemoryCoordinationTrace (dropped in R0.1, restored) | concept | absorb_as_target_rule | MemoryCoordinationTrace | agent_proposed | none | | TBD — connects ExtractionContextPlan / MemoryContextPlan / UserContextSurfacePlan + manifests + proofs + learning events; Inspector explanation backed by trace | Round D R0.2 §13, §19.1 |
| SM-101 | EpisodePolicyEpoch (dropped in R0.1, restored) | concept | absorb_as_target_rule | EpisodePolicyEpoch | agent_proposed | none | | TBD — atomic policy-generation boundary for in-flight context products | Round D R0.2 §2.5, §19.1 |
| SM-102 | ask_user (scalar policy result) | policy_object | retire_as_superseded | PolicyDisambiguationRequest (safe question + fallback) | agent_proposed | semantic_change | | PROVISIONAL (Stage 8). Old: scalar `ask_user` policy result. Target: PolicyDisambiguationRequest (safe question + fallback). Preserved: user-clarification semantics. Risk: ask_user calls that leak protected info. Slice: E2 + E10. | Round D R0.2 §1.8 |
| SM-103 | NullResultMemory (undefined freshness) | concept | absorb_as_target_rule | NullResultMemory (with scope_population_generation_id, source_index_generation_id, materialization_snapshot_ref, policy_generation_id, access_set_hash) | agent_proposed | semantic_change | | TBD — staleness metadata makes null results invalidatable when scope/source/policy change | Round D R0.2 §10.1 |
| SM-104 | implicit disclosure (in notices) | policy_object | absorb_as_target_rule | disclosure_class (explicit; capability meet separate from disclosure meet) | agent_proposed | semantic_change | | TBD — capability and disclosure are orthogonal; blocked items may be disclosable or suppressed | Round D R0.2 §1.6 |
| SM-105 | safe labels (ad-hoc) | policy_object | absorb_as_target_rule | SafeLabelPolicy + approved vocabulary (registry maintained by PropA/EC) | requires_architect_review | semantic_change | ADQ-308 (safe-label vocabulary) | TBD — labels must not be derived from protected content; registry pre-approves vocabulary | Round D R0.2 §6.2 |
| SM-106 | contamination risk (linear penalty) | concept | absorb_as_target_rule | contamination_risk (threshold veto, not penalty) | agent_proposed | semantic_change | | TBD — over-threshold reroutes; not a gradient | Round D R0.2 §8.3 |
| SM-107 | DAMS (unbounded eligibility input) | concept | absorb_as_target_rule | PolicyCappedDAMSInput (with eligibility_ceiling) | agent_proposed | semantic_change | | TBD — DAMS may rank only eligible candidates; cannot bypass policy | Round D R0.2 §8.2 |
| SM-108 | RecentActivity (as evidence) | concept | absorb_as_target_rule | RecentActivityRollup (orientation only, not evidence) | agent_proposed | semantic_change | | TBD — can_orient_only flag; not a basis for warrant or evidence | ABC R0.2 §4.4 |
| SM-200 | (undefined) EvidenceSupportEdge | schema | absorb_as_target_rule | EvidenceSupportEdge (with support_relation: supports / contradicts / qualifies / reports / mentions_only) | agent_proposed | none | | TBD — contrary edges mandatory for warrant evaluation | ABC R0.2 §4.2; Concept Model §17.2 |
| SM-201 | (undefined) ExtractionRouteContext | schema | absorb_as_target_rule | ExtractionRouteContext (mode / surface / capture_authority) | agent_proposed | none | | TBD — route is provenance; does not determine canonical identity (ABC §1.2) | ABC R0.2 §7.7; Concept Model §17.1 |
| SM-202 | AssertionCandidateDisposition | enum | semantic_compression | AssertionCandidateDisposition (ABC §7.8 7-value enum, VERIFIED against source 2026-05-27: `durable_eligible` / `durable_eligible_confirmation_required` / `session_scoped` / `ephemeral_reroute` / `candidate_only_pending_issueframe` / `review_queue` / `reject_not_memory`) + separate AssertionDedupeOutcome (`outcome` ∈ {merge_to_existing_variant, add_variant_to_existing_assertion, create_new_assertion, reroute_misclassified}; `dedupe_basis` ∈ {source_span_duplicate, canonical_question_match, semantic_equivalence, authority_citation_match, manual_user_merge, no_match}; ABC §7.8 explicitly forbids overlapping resolution/disposition enums) | agent_proposed | semantic_change | ADQ-219 | PROVISIONAL (Stage 8 finalizes). Old: 11-value AssertionCandidateDisposition mixed with dedupe outcomes (Concept Model §17.3 values: `discard_not_memory` / `retain_ephemeral_observation` / `retain_session_note` / `record_friction_event` / `update_issue_frame` / `retain_as_evidence_only` / `retain_as_cu_component` / `create_or_merge_assertion` / `create_directive_candidate` / `create_procedure_candidate` / `evaluation_only`). Target: 7-value ABC §7.8 disposition + orthogonal AssertionDedupeOutcome. Preserved: every candidate gets exactly one disposition; dedupe is orthogonal axis; 4 truly-retired Concept Model values re-home via `AlternativeExtractionRouting` (DOC83 — Stage 5R2c rename-propagation; was `NonAssertionExtractionOutcome` through Stage 5R2; renamed at Stage 5R2b for semantic clarity, with lineage entry in `DOC80_Retired_Names.md`). Risk: addenda referencing the 11-value enum need translation table. Slice: E3 + E5. **Stage 5R2 correction (2026-05-27):** prior parenthetical listed ABC §7.7 decision-tree outcome values, NOT the ABC §7.8 disposition enum — corrected against source per DR-006 re-opening. **Stage 5R2c (2026-05-28):** re-home schema name propagated `NonAssertionExtractionOutcome` → `AlternativeExtractionRouting` to match Stage 5R2b rename. | ABC R0.2 §7.8 (senior; verified directly 2026-05-27); Concept Model §17.3 (lineage only); Adjudication Delta §1.6 (lineage); DR-006 re-opened + corrected at Stage 5R2; Stage 5R2c rename propagation 2026-05-28 |
| SM-203 | (undefined) PromptShellVariant | schema | absorb_as_target_rule | PromptShellVariant + PromptShellRegistry + PromptShellLearningContract | requires_architect_review | none | ADQ-208 (PromptShellVariant ownership: DOC24 / KDA / BDSM / Memory Control Plane) | TBD — shell variants must be load-bearing for final-prompt proof | Concept Model §17.9; Adjudication Delta §1.16 |
| SM-204 | (undefined) AssertionMergeOperation / AssertionMergeReconciliation / AssertionSplitOperation / AssertionUnmergeOperation | schema | absorb_as_target_rule | AssertionMergeOperation / Reconciliation / Split / Unmerge (atomic, reversible, auditable) | agent_proposed | none | | TBD — merge follows deterministic reconciliation; inverse operations preserve auditability | ABC R0.2 §3.5–3.6 |
| SM-205 | (undefined) NullResultMemory | schema | absorb_as_target_rule | NullResultMemory | agent_proposed | none | | TBD — covered by SM-103 freshness fields | Concept Model §2; ABC R0.2 §4.4 (footnote) |
| SM-206 | (undefined) IncidentObservation / FrictionEvent / FrictionPattern | schema | absorb_as_target_rule | IncidentObservation / FrictionEvent / FrictionPattern (lifecycle: Observation → Pattern → Assertion with evidence) | requires_architect_review | none | ADQ-302 (FrictionPattern promotion criteria) | TBD — promotion to Assertion requires evidence-supported diagnosis (architect call) | ABC R0.2 §7.14 |
| SM-207 | (undefined) SourceParseQualitySidecar | schema | absorb_as_target_rule | SourceParseQualitySidecar + SemanticFormattingSignal | requires_architect_review | none | ADQ-303 (parse-quality numeric thresholds) | TBD — parse quality bounds candidate eligibility (DOC25 owner) | ABC R0.2 §7.11 |
| SM-208 | (undefined) CascadingSourceInvalidation | schema | absorb_as_target_rule | CascadingSourceInvalidation (when last lawful support edge is lost → variant retires or becomes audit_only) | requires_architect_review | none | ADQ-304 (cascading invalidation scope precision) | TBD — graceful degradation bypassed when last support edge lost | Round D R0.2 §10.2; ABC R0.2 §7.13 |
| SM-209 | (undefined) DynamicHeaderLedger | schema | absorb_as_target_rule | DynamicHeaderLedger (stable vs volatile header manifest for KV-cache safety on policy change) | requires_architect_review | none | ADQ-305 (DynamicHeaderLedger header classification) | TBD — owner-doc (DOC24/KDA) creates the classification | Round D R0.2 §9.3 |
| SM-210 | (undefined) ReviewQueueBatch | schema | absorb_as_target_rule | ReviewQueueBatch | requires_architect_review | none | ADQ-306 (review-queue auto-archive TTL) | TBD — gridlock-warning lint exists; TTL must be set | Round D R0.2 §11.1–11.2 |
| SM-211 | (undefined) TopicCollectionDirectiveBudget | schema | absorb_as_target_rule | TopicCollectionDirectiveBudget (velocity tiers + actions) | requires_architect_review | none | ADQ-307 (Topic future-watch tier/action matrix) | TBD — Topic runaway must be predictable | Round D R0.2 §12.2 |
| SM-212 | (undefined) ProjectAutoLinkState | schema | absorb_as_target_rule | ProjectAutoLinkState (suggested / quarantined / accepted; TTL TBD) | requires_architect_review | none | ADQ-309 (ProjectAutoLinkState declaration + quarantine TTL) | TBD — auto-link is user-visible; state must be deterministic | Round D R0.2 §0A.5, §4.1; fixtures D-10 |
| SM-213 | ReasonCode (no canonical registry) | concept | absorb_as_target_rule | ReasonCode canonical cross-doc registry owned by **DOC80 core / contracts member**; EC / PropA / DOC24 / DOC8 / DOC20 / etc. own producer-specific namespaced reason-code entries within that registry (Stage 5R2c — status `unresolved → absorb_as_target_rule` after ADQ-310 resolution 2026-05-25; was stale through Stage 5R2b). | agent_proposed | none | ADQ-310 (resolved 2026-05-25 — DOC80 core owns the registry) | RESOLVED at Stage 5R2c (was TBD through Stage 5R2b). Registry now lives in DOC80 core/contracts member; cross-doc reason-code wiring may land via producer namespaces. Owner Map row at `ReasonCode` (DOC80 core; producers EC / PropA / DOC24 / DOC8 / DOC20) is the authoritative pointer. | Round D R0.2 §0A.3; ADQ-310 (resolved 2026-05-25); Stage 5R2c status propagation 2026-05-28 |
## Notes
- Cross-references: `architect_decision_ref` rows point at `Architect_Decision_Queue.md` items; `capability_preservation_proof_ref` (carried in row but not in summary table to keep width manageable) is TBD pending Stage 8.
- Stage 9 lint `supersession.source_concept_unaccounted` runs against this file plus extracted names from frozen source. The current matrix covers all plan §8.5 mandatories; additional names from individual source files will be added by Stage 9 if the lint flags gaps.
- Plan §8.4 retired-name lints (`supersession.retired_name_used`, `supersession.retired_name_used_outside_allowed_historical_context`) operate against the `retired_name_lint` patterns in each row.