ELNOR REPO READER TEXT MIRROR Original path: Memory Rebuild Docs/Flattening/Execution Ledger/Stage_5R2_Patch_Summary.md Source repo: /Users/OpenClaw1/Elnor/Elnor Specs Git branch: main Git commit: dbaa25962edc11ab30e8d4ca1715f9ae5bf77331 Generated: 2026-06-09T01:23:58.539Z --- # Stage 5R2 — Patch Summary **Date:** 2026-05-27 **Trigger:** Round-2 red-team synthesis (`Memory Rebuild Docs/Flattening/Reviews/Red Team Responses/DOC80_Stage_5R_Red_Team_Reviews_and_Synthesis.md`) — three reviewers (Claude + ChatGPT + Codex) converged on no `ARCHITECT_STOP`, but the 8-member family needed one stabilization patch round before Stage 6 charters could begin. **Authorization:** Will (architect), 2026-05-27 — explicit `go` after architect-authorized (a) plan-file amendment for DOC87 (the runbook constraint required explicit authorization), (b) DOC88 declined, (c) network/sharing reduced to one ADQ. ## What landed (must-fix items §4 + fold-ins §5) ### Must-fix items 1. **OP-A reconciliation** (synthesis #1) — `OP_A_Candidate_Disposition.md`: - OPA-001 rewritten: Assertion schema → DOC82; DOC72 stores; EC writes. - OPA-004 rewritten: EvidenceRecord/EvidenceSupportEdge → DOC82; DOC73 supplies source-bound inputs; DAMS is substrate-only. - OPA-005 rewritten: classification → DOC83 spine; DAMS substrate inside DOC84. - OPA-011 rewritten: DOC11 proof refs → DOC85 (not legacy DOC8). - OPA-012 rewritten: DOC85 owns learning architecture; BDSM partial substrate; DOC8 capability-mining only. - OPA-031 added (ECSeamContract). - OPA-032 added (DOC83 ↔ DOC87 co-drafting for Topic identity). - OPA-033 added (legal-hold on DOC72 §42 / DOC23 / DOC25 destructive jobs). - OPA-034 added (memory-derived exposure on shared/published surfaces; gated on ADQ-222). 2. **Owner Map mechanically clean** (synthesis #2) — `DOC80_Owner_Map.md`: - 6 compound rows split into atomic single-owner rows: `LibrarySourceBinding` (DOC25 + DOC82 consumption contract), `SafeLabelPolicy + approved vocabulary` (DOC81 policy + PropA/EC registry + DOC86 render contract), `RenderBundle + PromptTextPackage` (KDA + DOC24 + DOC84 consumption contract), `Procedural taxonomy + skill` (DOC72 + DOC3 + DOC83 extraction route), `FalseSuppressionSampling` (DOC85 + DAMS guardrail at DOC84), `contamination_risk computation` (DOC84 substrate, not DAMS-as-owner). - 2 placeholder rows resolved: `VersionedClaim = PENDING` → DOC73-owned legacy + DOC82 lineage table (DR-003 closed); `DynamicHeaderLedger = PER ADQ-305 RESOLUTION` → DOC84 (DR-004 closed). - DAMS V5 references reframed as DOC84 substrate sections, not standalone owner labels. - DOC8 references purged from runtime owner rows. - EC marked `partial / moving` with `ECSeamContract` named. 3. **Import Graph 4-edge-kind restructure** (synthesis #3) — `DOC80_Import_Graph.md`: - §2 restructured into 4 typed edge-kind tables: `schema_import`, `runtime_instance_flow`, `command_or_control_flow`, `storage_or_execution_flow`. - Acyclicity asserted ONLY on `schema_import`; other edge kinds may have any direction. - DOC82↔DOC83 phantom cycle dissolved (was mis-typed schema_import; actually runtime_instance_flow). - DOC87 edges verified all owner→consumer in §2.1 (the schema_import table). - §5.6 acyclicity proof restated with explicit topological order: `DOC80 < DOC81 < DOC82 < DOC87 < DOC83 < DOC84 < {DOC85, DOC86}`. 4. **DOC87 TopicIdentityContract stub** (synthesis #4) — added to plan §12.4-bis + skeletal §10.10 + OPA-032; minimal contract (MembershipTargetRef + OrganizationContainerRef + TopicRef + LibraryRef + ProjectMembershipRef) MUST land before DOC83's TopicCollectionDirective is drafted. 5. **DOC8-as-runtime language purged** (synthesis #5) — Owner Map BDSM/DOC8 rows updated; skeletal §5 DOC85 section tightened; OPA-011/012 rewritten; lints `doc85.runtime_dependency_on_legacy_doc8` + `learning.utility_without_final_prompt_proof` enforce. 6. **DOC82 ↔ DOC83 disposition / resolution seam** (synthesis #6) — skeletal §10.7; `AssertionCandidateDisposition` STAYS at DOC83 (not relocated); DOC83 emits recommended disposition into `AssertionCandidateEmission`; DOC82 owns resolution + dedupe + the ABC §7.8 anti-overlap rule. Lints `assertion.overlapping_resolution_disposition_enum` + companion. 7. **SM-202 / DR-006 corrected from ABC §7.8 source** (synthesis #7) — read ABC R0.2 §7.8 directly; the actual 7-value enum is `durable_eligible / durable_eligible_confirmation_required / session_scoped / ephemeral_reroute / candidate_only_pending_issueframe / review_queue / reject_not_memory`. Stage 5R parenthetical had paraphrased ABC §7.7 decision-tree outcomes instead. Patched: `Supersession_Matrix.md` SM-202, `DOC80_Retired_Names.md`, `DOC80_Owner_Map.md`. DR-006 re-opened in Conflict Register with corrected resolution + lesson recorded. 8. **VersionedClaim + WorkSession resolutions** (synthesis #8) — Owner Map + skeletal §10.8. VersionedClaim → DOC73 lineage + DOC82 lineage table (DR-003 closed). WorkSession → DOC83 working-state grouping (DR-005 disposition recorded). 9. **EC `partial / moving` + `ECSeamContract`** (synthesis #9) — Owner Map + skeletal §10.9 + OPA-031. EC `ExternalDependencyRecord.dependency_status = partial / moving`. Contract covers durable writes, command execution, policy/scope execution, audit/replay, concurrency revalidation (compare-and-swap or `dedupe_basis_generation_id`), policy-generation re-gating. 10. **Cross-artifact drift reconciliation** (synthesis #10): - (a) **Plan file DOC87 amendment** — verified gap directly (plan §12.4 still showed E6→E7 with no DOC87 slice); inserted new §12.4-bis "Organization and membership slice (E_org)" with full slice scope + ordering note + TopicIdentityContract stub requirement. - (b) **ADQ-221 status drift swept** — skeletal §5 DOC85 section tightened; Owner Map updated. - (c) **Standing cross-artifact drift discipline** added to skeletal §10.19 as a Stage 5R2 closing-step rule for future patch rounds. 11. **ADQ-222 opened** (synthesis #11) — `Architect_Decision_Queue.md`. Network/sharing forward-compatibility; tier = batch_for_architect; gates Stage 7 schema-body work IF architect resolves "draft Phase-1 schemas now"; otherwise OPA-034 is a tracked seam only. 12. **DOC80 core sentences** (synthesis #12) — skeletal §10.1 (V5 local-first / single-principal / single-node / single-EC-writer non-goal) + §10.2 (manual deletion + unreachability self-limiting). ### Fold-ins (cheap, non-blocking) - **DOC81 `LegalHoldState` flag + invariant** — skeletal §10.3; OPA-033 wires DOC72 §42 / DOC23 / DOC25 destructive-job amendments. - **CascadingSourceInvalidation 5-plane fan-out check** — skeletal §10.11; Stage 6 charter obligation. - **DOC81 / DOC87 non-overlap invariant** — skeletal §10.4; 5 named lints. - **`MemoryMutationEnvelope`** — NAMED only at Stage 5R2 (skeletal §10.5); schema body deferred to Stage 7. - **`MemoryProvenanceGraph`** — NAMED only at Stage 5R2 (skeletal §10.6); schema body deferred to Stage 7. - **ABC §21 normalization-object placement check** — skeletal §10.17; Stage 6 charter input (`WarrantEvaluationResult` etc.). - **Memory-object classification table** — skeletal §10.12; columns confirmed (no premature `network_compatibility_required?`); Stage 6 fills body. - **Embedding-model migration refs** — skeletal §10.14. - **Observability / health seam** — skeletal §10.15; 10 seed counters; `member.missing_health_counters` lint. - **Scale / quota assumptions** — skeletal §10.16; `MemoryOperationQuota` named. - **§18 phase-order fix** — skeletal §18 corrected: source observation → scope/policy preflight (policy GATES extraction) → extraction → ... → learning → UI. Plus added revocation case + policy-change-mid-extraction case. - **Concurrency revalidation rule** — folded into OPA-031 ECSeamContract. - **`CognitiveDiff` → `ResumeProjection` / `ResumeCard` rename** — skeletal §10.13. - **DOC87 charter ordering / conflict / idempotency prerequisite** — skeletal §10.10 + OPA-032. ## What was DECLINED (and stays declined) - **DOC88 cross-ELNOR Data Lifecycle / Retention / Erasure / Legal Hold / Revocation / Clawback spec** — declined per synthesis §6 architect adjudication. Hard destruction is twice-in-a-career and manual; legal hold is a freeze on existing deletion paths, not a new mechanism. Collapses to: one DOC80-core sentence + DOC81 `LegalHoldState` flag + invariant + OP-A rows for non-memory destructive jobs (DOC72 §42, DOC23, DOC25). No new doc, no new family member, no `LifecycleRequest` / `LifecycleEffectPlan` / `DeletionMode` / `DataObjectClass` schema set. - **`NetworkCompatibilityEnvelope` / `PublishedViewEnvelope` / `TaskSharedMemoryExposureContract` / `PublishedLibraryCorpusExposureContract`** — not drafted. Routed to ADQ-222. Schema bodies are Stage 7 work IF architect resolves "draft now." - **~40 networking/lifecycle lints + ~20 fixtures** from ChatGPT's expansive proposals — not drafted; presuppose schemas that don't exist yet. - **Restoring the retired 11-value `AssertionCandidateDisposition` enum** — stays retired per G-2 guardrail. - **Relocating `AssertionCandidateDisposition` to DOC82** — stays at DOC83; the seam is stated explicitly (skeletal §10.7). - **Redrawing family boundaries** — 8-member family stands. ## Files patched | file | what changed | |---|---| | `Memory Rebuild Docs/Flattening/Current Flattening Plan/Flatten_and_Unify_Plan_V2_1c.md` | §12.4-bis added — DOC87 organization/membership slice between E6 and E7; §12.5 E9 description rescoped per Patch B6 / ADQ-221 | | `Memory Rebuild Docs/Flattening/Execution Ledger/OP-A Disposition/OP_A_Candidate_Disposition.md` | OPA-001/004/005/011/012 rewritten; OPA-031–034 added; header counts; anti-staleness lints named | | `Memory Rebuild Docs/DOC80 Target Baseline/Owner Map/DOC80_Owner_Map.md` | 6 compound rows split; 2 placeholders resolved; DAMS-as-owner reframed as DOC84 substrate; DOC8 runtime-owner language purged; EC marked partial/moving; §11 Stage 5R2 reconciliation note added | | `Memory Rebuild Docs/DOC80 Target Baseline/Import Graph/DOC80_Import_Graph.md` | §2 restructured into 4 edge-kind tables; §2.5 acyclicity walked explicitly; §5.6 proof restated with topological order; new lints named | | `Memory Rebuild Docs/DOC80 Target Baseline/Retired Names/DOC80_Retired_Names.md` | SM-202 row corrected with actual ABC §7.8 enum values | | `Memory Rebuild Docs/Flattening/Supersession Matrix/Supersession_Matrix.md` | SM-202 row corrected with actual ABC §7.8 enum values + DR-006 re-open reference | | `Memory Rebuild Docs/Flattening/Execution Ledger/Conflict Register/Conflict_Disagreement_Register.md` | DR-006 re-opened with corrected resolution + lesson recorded | | `Memory Rebuild Docs/Flattening/Execution Ledger/Architect Decision Queue/Architect_Decision_Queue.md` | ADQ-222 opened (network/sharing forward-compatibility) | | `Memory Rebuild Docs/DOC80 Target Baseline/Skeletal Spec/DOC80_Skeletal_Target_Baseline.md` | §18 phase-order corrected; DOC85 §5 BDSM/DOC8 language tightened; new §10 with 19 Stage 5R2 additions (V5 non-goal, manual deletion, LegalHoldState, DOC81/DOC87 non-overlap, MemoryMutationEnvelope name, MemoryProvenanceGraph name, DOC82↔DOC83 seam, VersionedClaim+WorkSession resolutions, ECSeamContract, DOC87 charter prerequisite, CascadingSourceInvalidation 5-plane, memory-object taxonomy confirm, CognitiveDiff rename, embedding refs, observability seam, quota assumptions, ABC §21 normalization check, ADQ-221 sweep, cross-artifact drift discipline) | ## Reconciliation discipline applied (closing-step sweep) Per synthesis #10(c), this Stage 5R2 closing step swept companion files for consistency after every artifact patch: - ✅ OP-A reconciled against 8-member Owner Map. - ✅ Owner Map placeholders cleared (DR-003 + DR-004 closed; DR-005 disposition recorded). - ✅ Plan file §12 amended for DOC87. - ✅ ADQ-221 status references swept; skeletal + Owner Map consistent. - ✅ SM-202 / Retired Names / Owner Map citations reconciled to actual ABC §7.8. - ✅ All architectural-fact assertions in skeletal cross-checked against canonical files (OP-A, Owner Map, Import Graph, Conflict Register, ADQ). The discipline is now standing per skeletal §10.19. ## What's NOT in Stage 5R2 - Schema bodies for `MemoryMutationEnvelope`, `MemoryProvenanceGraph`, `PublishedViewEnvelope`, etc. — Stage 7 work. - DOC88. Declined. - Per-slice charters. Stage 6 work. - Network/sharing schema bodies. Gated on ADQ-222. ## What happens next 1. Short regression review (synthesis §9 exit check + Stage 5R2b audit-gap fold-ins) — see `Stage_5R2_Regression_Review_Prompt.md`. 2. If regression clean → Stage 6 slice charters begin. 3. ADQ-222 resolution at Stage 6 or Stage 7 (architect's choice on timing). --- ## Stage 5R2b addendum — audit-gap fold-ins (2026-05-27, after Will's "audit against the reviews" challenge) **Trigger:** Will asked: "you listed 12 'must fix' items, but you shouldn't only do 'must' fixes. It should be any and all fixes. Can you confirm what you did as there seemed to be far more than 12 things. Also audit your assessment against the reviews to make sure you properly and completely captured everything." After the audit, Will authorized: "ok, i agree, fix all this. i agree bitemporal axes is useful and should be included." **22 audit-gap items applied beyond the synthesis distillation:** ### Renames (semantic clarity) 1. `NonAssertionExtractionOutcome` → `AlternativeExtractionRouting` (DOC83-owned). Reflects that this is the *routing* layer for the capabilities behind the 4 retired Concept Model §17.3 enum values — not an "outcome" enum that competes with `AssertionCandidateDisposition`. 2. `SourceBoundSynthesisProjection` → `SourceBoundSynthesisAdapter` (DOC82 wrapper-only, activates per ADQ-219). Reflects that this is an *adapter* at the DOC73 → DOC82 seam, not a redefinition of CU. Lineage-only retired entries recorded in `DOC80_Retired_Names.md`. ### SemanticProjection narrowed 3. Generic `SemanticProjection` replaced by `SemanticProjectionContract` (DOC80 core umbrella) + 4 owner-specific narrowed projections: `DeliveryProjection` (DOC84), `UIProjection` (DOC86), `OrganizationProjection` (DOC87), `KnowledgeProjection` (DOC82). Each carries its own `ProjectionInvalidationPolicy`. `SourceBoundSynthesisAdapter` is classified under SemanticProjectionContract as a KnowledgeProjection wrapper case. ### ABC §7.7 numbering correction 4. "Six-step §7.7" → "12-step (Steps 0–11) §7.7" per ABC R0.2 §7.7 source — corrected in both `DOC80_Skeletal_Target_Baseline.md` (§1.6 DOC83 section) and `DOC80_Owner_Map.md`. Also reflected in §3.3 ABC senior scoping note. ### Skeletal Baseline §11.1–§11.13 architectural notes 5. §11.1 Recovery / replay seam (`ReplayCheckpointPlan` named; ledger headers recovery-replayable). 6. §11.2 Consistency model (read-after-write at session boundary; cross-session eventual; named in §15 envelope). 7. §11.3 Extraction-side `EpisodePolicyEpoch` re-gate (policy-generation epoch carried through extraction; mid-extraction policy change re-gates). 8. §11.4 Invariant-enforcement-point naming table (each invariant has a named enforcement point + responsible owner + lint). 9. §11.5 DOC15 import seam check (verified second importer DOC84 added per F5). 10. §11.6 DOC26 citation check (UnifiedWorkspaceLibrary aspirational; conditional on ADQ-202 / ADQ-404 per F4 correction). 11. §11.7 SourceBoundSynthesisAdapter convergence obligation (cross-refs OPA-035). 12. §11.8 **Bitemporal axes on Assertion** (`valid_time` + `transaction_time`). Will confirmed inclusion: "i agree bitemporal axes is useful and should be included." 13. §11.9 Monotonicity laws (membership additions monotone within scope, policy-tighten monotone on access, source revocation monotone on consumers, learning monotone on warrants). 14. §11.10 SemanticProjection narrowing (the §11 anchor for the Owner Map narrowing in item 3). 15. §11.11 Renames table (cross-ref to §11 anchor for items 1+2). 16. §11.12 DOC85 two-phase charter (Phase 1 = capability skeleton at DOC85 drafting; Phase 2 = full BDSM-integrated learning closer to BDSM revision — tracked at OPA-012 with `dependency_status = partial`). 17. §11.13 Library ADQ-202 gating note (LibrarySourceBinding contract at DOC82; CorpusIndex at DOC25; Library-as-organizational-container at DOC87; full schema bodies at Stage 7 conditional on ADQ-202 / ADQ-404). ### Cross-artifact cascades 18. **OPA-035 added** — SourceBoundSynthesisAdapter convergence obligation (if adapter activates, DOC73 must converge OR architect blesses permanent divergence via new ADQ). 19. **DR-007 added** — `AlternativeExtractionRouting` matrix-row gap (mirrors DR-002 pattern; resolved with artifact pointer; matrix-row addition deferred). 20. **DR-008 added** — `AssertionCandidateEmission` matrix-row gap (same pattern; resolved). 21. **Premise alias_expiry cross-ref** — `legacy_alias_allowed` column row 20 now cross-refs §3 expiry table for owner-of-record and expiry condition. 22. **Import Graph §5.1 footnote** — supersession-matrix coverage gaps logged for `LibrarySourceBinding` / `CorpusIndex` / `SourceCollection` / `VersionedClaim` lineage table / `AssertionCandidateEmission` / `AlternativeExtractionRouting`. Named the `supersession.import_graph_object_without_matrix_row` lint deferred to Stage 9. ### Files patched at Stage 5R2b | file | what changed | |---|---| | `Memory Rebuild Docs/DOC80 Target Baseline/Skeletal Spec/DOC80_Skeletal_Target_Baseline.md` | §1.1-bis added (DOC83 rationale); §1.2 core-eligibility list extended; §3.3 ABC senior scoping note; §1.6 "Six-step" → "12-step"; §11.1–§11.13 added (bitemporal axes, monotonicity laws, recovery/replay, consistency model, EpisodePolicyEpoch re-gate, invariant naming, DOC15/DOC26 seam checks, adapter convergence, SemanticProjection narrowing, renames table, DOC85 two-phase, Library ADQ-202 gating) | | `Memory Rebuild Docs/DOC80 Target Baseline/Owner Map/DOC80_Owner_Map.md` | Renames applied (`AlternativeExtractionRouting`, `SourceBoundSynthesisAdapter`); SemanticProjectionContract added at §8 DOC80 core; 4 owner-specific narrowed projection rows added (Delivery/UI/Organization/Knowledge); "Six-step" → "12-step" corrected; new §12 Stage 5R2b reconciliation note | | `Memory Rebuild Docs/DOC80 Target Baseline/Retired Names/DOC80_Retired_Names.md` | 2 rename-only lineage entries added (old names → new names); Premise alias_expiry cross-ref added; AssertionCandidateDisposition lineage citation updated to `AlternativeExtractionRouting`; new §6 Stage 5R2b summary | | `Memory Rebuild Docs/DOC80 Target Baseline/Import Graph/DOC80_Import_Graph.md` | Renames applied across §2 / §3 / §5; new §5.1 Stage 5R2b footnote on supersession-matrix coverage gaps; §5.2 Stage 5R2b note on 2 rename-only retired-name entries | | `Memory Rebuild Docs/Flattening/Execution Ledger/Conflict Register/Conflict_Disagreement_Register.md` | DR-007 + DR-008 added (resolved as matrix-row gap entries mirroring DR-002 pattern); rename reference updated in DR-006 | | `Memory Rebuild Docs/Flattening/Execution Ledger/OP-A Disposition/OP_A_Candidate_Disposition.md` | OPA-035 added (adapter convergence obligation); header last-updated; closing note | | `Memory Rebuild Docs/Flattening/Execution Ledger/Architect Decision Queue/Architect_Decision_Queue.md` | ADQ-219 text updated with rename + OPA-035 cross-ref; header last-updated | | `Memory Rebuild Docs/Flattening/Execution Ledger/Master/FlatteningExecutionLedger.md` | Stage 5R2b row added to history table; counts updated (OP-A 35; Conflict Register 8 resolved); last-updated | | `Memory Rebuild Docs/Flattening/Execution Ledger/Master/RUN_STATE.md` | Stage 5R2b status; regression review prompt now covers both Stage 5R2 + Stage 5R2b | ### Why Stage 5R2b is small and conservative These are fold-ins, not architectural reversals. The synthesis already captured the high-leverage items; the audit-gap pass catches things that mattered to individual reviewers but didn't rise to the synthesis distillation. None of them changes the 8-member family, the lockstep mapping, or any architect adjudication. The biggest semantic change is the SemanticProjection narrowing, which closes an over-general placeholder; the bitemporal axes is genuinely new but architecturally non-controversial (it's a refinement of how Assertion lifecycle is recorded, not a new object).