OPA_V4.md
OP-A and Operations and Trackers/OPA_V4.md
# OP-A V4 — Stage 5R3 Pass 2 memory-flatten retarget over V3.18
**DOC ID:** DOC OP-A (operations spec, A series — cross-doc obligation tracker)
**Version:** V4 (Stage 5R3 Pass 2 — mechanical retarget of §6 active obligations onto the post-flatten DOC80 family). **OPERATIVE as of 2026-05-28.**
**Built from:** `OPA_V3_18.md` (now archived) + `PASS_1_ARCHITECT_DECISIONS_RESOLVED.md` (D1–D13) + Owner Map / Conflict Register / ADQ log (read-only).
**Date produced:** 2026-05-28 (Pass 2 candidate); **published live:** 2026-05-28 (Pass 2 ratification — ADQ-PASS2-01 + ADQ-PASS2-02 resolved by architect at landing; both Bucket C rows retargeted in §6).
**Status:** OPERATIVE. Supersedes V3.18.
**Owner:** Will (architect).
**Amended 2026-06-01 (Stage 6 E0 ratification):** E0 (DOC80 core) charter ratified; the §6.Z / §6.Z2 / §6.Z3 obligation waves stand as recorded. Per-owner folding + the 521/538 count reconciliation remain the documented deferral to the next OPA patch round (no row counts changed here).
**Amended 2026-06-08 (Stage 6 E1/E2 ratification):** DOC81 (Scope & Policy) charter ratified (R3.1). The 10 PropA→DOC81 rows (`OBL-PROPA-NEW-01/02`, `-V15-01..06`, `-DSPY-TARGETS-01`, `-SOURCE-EXCLUSION-FILTER-01`) + the 2 E0-handed obligations (`OBL-D81-TOPIC-COLLECTION-SUPPRESSION-01` §6.Z, `OBL-PROPA-LOCALFILEEXPORT-OUTBOUND-PATCH-01` §6.Z3) landed at DOC81 §7 (§7.1 collection-suppression governance, §7.2 source-exclusion, §7.3 PropA fold, §7.4 local-file-export cross-doc note). The PropA §2.6 outbound-matrix patch remains PropA's discharge item (DOC81 records the obligation + aligns destination handling). Per-owner folding + count reconciliation deferral stands; no row counts changed here.
**Amended 2026-05-30 (Stage 6 E0 design discussion):** 3 obligations added as a post-Pass-2 wave in §6.Z below — `OBL-D81-TOPIC-COLLECTION-SUPPRESSION-01` (DOC81), `OBL-EC-GLOBAL-RECYCLE-BIN-01` (EC), `OBL-EC-RESTORE-FROM-BACKUP-01` (EC). Per ADQ-406 / ADQ-407 / ADQ-408. Not yet folded into the §6 per-owner counts or the 521/538 reconciliation — to be absorbed into the owner sub-sections at the next OPA patch round (mirrors the Bucket C "physical reorg deferred; logical owner set" convention).
**Folder:** `OP-A and Operations and Trackers/` (live location). Candidate source preserved at `Memory Rebuild Docs/Flattening/Execution Ledger/Stage_5R3/OPA_V4_CANDIDATE.md` for audit lineage.
**Publication change log (added at ratification 2026-05-28):**
- `OBL-D72-NEW-PBE-CLUSTER-01` retargeted DOC72 → **DOC73** per ADQ-PASS2-01 (PBE is the producer; schema lives with producer; DOC72 stores; EC writes).
- `OBL-D24-CORPUS-LIB-MAP-01` retargeted DOC24 → **DOC87** per ADQ-PASS2-02 (DOC87 owns canonical corpus↔library identity mapping per ADQ-220; Library lives at DOC87 as organizational container; DOC25 owns CorpusIndex storage side; DOC24 consumes at search/onboarding).
- Both rows physically remain in their original sections (DOC72 / DOC24) pending reorganization in next OPA patch round; logical owners are updated in row cells.
- V3.18 archived to `Archived DOC OP-A and Operations DOCS/OPA_V3_18.md`.
> **Posture of OPA_V4:** V4 is a **retarget overlay** over archived V3.18. Pass 2 changed **only the target-document (owner) assignment** of each §6 active obligation per the resolved Pass-1 section→owner model. It did **not** rewrite obligation bodies, acceptance criteria, `why`, `calibrated-against`, `depends-on`, or `blocks` fields. The §6 table columns below surface the retarget decision (owner, legacy aliases, mapping basis); the full canonical row bodies for the 504 surviving-from-V3.18 rows remain at their V3.18 location, archived at `Archived DOC OP-A and Operations DOCS/OPA_V3_18.md`. **The 7 ADD rows have full bodies attached in §6.A below** (they have no V3.18 body to inherit). Stage 6 charter authors consume the §6 table here for owner assignment and look up V3.18 archive for surviving-row body content.
> **Prior patch-session history (V3.10–V3.18) is inherited verbatim from archived `OPA_V3_18.md` and not reproduced here.** V4 adds the Pass 2 retarget change-log entry below + the Pass 2c cleanup-patch change-log entry.
---
## Change log — Pass 2 retarget (2026-05-28)
| Change | Result |
|---|---|
| Retarget §6 active obligations onto DOC80 family | 117 rows now own a DOC80-family target (DOC81–DOC87); the remainder keep their current owner (outside the memory-flatten boundary). |
| Apply D10 duplicate merge | `OBL-D25-D24-V16-CACHE-BATCH-01` folded into winner `OBL-D25-V16-CACHE-BATCH-01` (loser → `legacy_id_aliases`); V1.6.1 normalized to a single V4 row. |
| Apply D3a ADD rows | 6 DOC24 R3.1.1 obligations added (high confidence) — see rows marked **NEW**. |
| Apply D13a ADD row | `OBL-D25-DEGRADED-STATE-REPORTING-01` added (medium) → DOC83. |
| Apply Bucket B splits | 3 V3.18 rows decomposed into 7 owner-clean child rows (net +4). See `BUCKET_B_SPLITS.md`. |
| Apply Bucket C resolutions at publication | 2 rows retargeted at architect ratification: `OBL-D72-NEW-PBE-CLUSTER-01` DOC72→DOC73 (ADQ-PASS2-01); `OBL-D24-CORPUS-LIB-MAP-01` DOC24→DOC87 (ADQ-PASS2-02). See `BUCKET_C_ARCHITECT_DECISIONS.md` for the audit lineage. |
### Pass 2c cleanup-patch change log (2026-05-28)
| Change | Result |
|---|---|
| Update §9 D7 for Bucket C resolutions | Marked ADQ-PASS2-01 + ADQ-PASS2-02 as resolved at publication; added explicit kept-both line for pair (4) `OBL-EC-V16-SESSION-CAPABILITY-MANIFEST-01 ↔ OBL-EC-NEW-SESSION-CONTEXT-01` per V3.18 Appendix A.4 traceability. |
| Retarget `OBL-D7-NEW-LIBRARY-NAMING-01` | DOC7 → **DOC86** per ADQ-PASS2-02 narrative (UI rendering rule = DOC86 concern in post-flatten family). Row physically remains in DOC7 §6 section; logical owner is DOC86. |
| Scrub candidate-era language | Replaced "Hold Bucket C rows" / "RESERVED" / "to be reattached at ratification" / "Will, not Pass 2" language with operative-state wording reflecting publication ratification 2026-05-28. |
| Add §6.A 7-row ADD body appendix | Per Pass 2 external review (GPT-5.5 Pro) — the 7 ADD rows have no V3.18 body to inherit. Body fields (source / why / acceptance / depends_on / blocks) attached in §6.A below for the 7 ADD rows. |
| Clarify §8 inheritance posture | Header note that §8 deferred rows are inherited verbatim from archived V3.18 §8 and not physically reproduced (538 total = 521 V4 §6-active + 17 inherited V3.18 §8). |
| Add §9 D14 (SOURCEARTIFACT charter-deferral marker) + D15 (113→117 reconciliation) | §9 D14 marks `OBL-D25-O-SOURCEARTIFACT-01` `pending_charter_resolution` (DOC82/E4 vs DOC25-stays); §9 D15 carries the 113-Bucket-A-internal → 117-published delta math. |
### Row-count reconciliation
| Quantity | Count |
|---|---:|
| V3.18 §6 active rows (physical count, lines 931–7239) | 511 |
| V3.18 §8 deferred rows (lines 7257–7423) | 17 |
| V3.18 total OBL rows | 528 |
| — D10 merge (loser folded into winner) | −1 |
| + D3a ADD rows | +6 |
| + D13a ADD row | +1 |
| + Bucket B split net (3 parents → 7 children) | +4 |
| **V4 §6 active rows** | **521** |
| §8 deferred (inherited verbatim from archived V3.18 §8; NOT physically reproduced in V4) | 17 |
| **V4 total OBL rows (=§6 active here + §8 inherited from archive)** | **538** |
> **Note on the V3.18 "528 §6-active" figure:** V3.18's own patch summary (line 25) reports §6 active = 528, but the physical count is **511 in §6** plus **17 in §8-deferred** = 528 total OBL rows. The V3.18 summary conflated the deferred rows into the §6 tally. Pass 2 processes the **511 true §6-active** rows; the 17 §8-deferred (V17/V18 wave) are inherited verbatim from archived V3.18 §8 and **not physically reproduced** in V4 (see Pass 2c clarification + §9 footer).
---
## 6. By Target Document — Active Obligations (V4 form)
Grouped by **V4 owner**. DOC80-family owners (the memory-flatten destinations) first, then docs that keep their current owner.
**Column key:** `obl_id` · `current → V4 owner` · `status` · `legacy_id_aliases` · `mapping_basis`. Every row carries a `mapping_basis`. (At publication, the two former Bucket C rows were retargeted per ADQ-PASS2-01 / -02 and now carry mapping_basis text rather than the `pending_architect_review` pointer used in the pre-publication candidate.)
**legacy_id_aliases convention:** populated only where the V4 row ID differs from, or absorbs, a V3.18 ID — i.e. D10 merge winners (absorb the loser ID) and Bucket B split children (carry the parent ID). For every other row the `obl_id` IS its V3.18 ID unchanged, shown as `—`.
### → DOC81 (E1+E2 Scope & Policy) — memory-flatten destination — 10 rows
| obl_id | current → V4 owner | status | legacy_id_aliases | mapping_basis |
|---|---|---|---|---|
| `OBL-PROPA-NEW-01` | PropA → **DOC81** | carried | — | PropA → DOC81 (E1+E2 Scope & Policy). |
| `OBL-PROPA-NEW-02` | PropA → **DOC81** | carried | — | PropA → DOC81 (E1+E2 Scope & Policy). |
| `OBL-PROPA-NEW-SOURCE-EXCLUSION-FILTER-01` **(NEW)** | (absent in OP-A) → **DOC81** | NEW | — | D3a ADD (high) — src DOC24_R3_1_1.md; absent in V3.18. |
| `OBL-PROPA-NEW-V15-01` | PropA → **DOC81** | carried | — | PropA → DOC81 (E1+E2 Scope & Policy). |
| `OBL-PROPA-NEW-V15-02` | PropA → **DOC81** | carried | — | PropA → DOC81 (E1+E2 Scope & Policy). |
| `OBL-PROPA-NEW-V15-03` | PropA → **DOC81** | carried | — | PropA → DOC81 (E1+E2 Scope & Policy). |
| `OBL-PROPA-NEW-V15-04` | PropA → **DOC81** | carried | — | PropA → DOC81 (E1+E2 Scope & Policy). |
| `OBL-PROPA-NEW-V15-05` | PropA → **DOC81** | carried | — | PropA → DOC81 (E1+E2 Scope & Policy). |
| `OBL-PROPA-NEW-V15-06` | PropA → **DOC81** | carried | — | PropA → DOC81 (E1+E2 Scope & Policy). |
| `OBL-XDOC-PROPA-DSPY-TARGETS-01` | PropA → **DOC81** | carried | — | PropA → DOC81 (E1+E2 Scope & Policy). |
### → DOC82 (E3+E4 Knowledge + Source/Evidence) — memory-flatten destination — 9 rows
| obl_id | current → V4 owner | status | legacy_id_aliases | mapping_basis |
|---|---|---|---|---|
| `OBL-D23-A-V6-PROMOTED-CLAIM-MEMORY-KIND-01` | DOC72 → **DOC82** | carried | — | DOC72 → DOC82 (E3+E4 Knowledge + Source/Evidence). |
| `OBL-D25-O-SOURCEARTIFACT-01` | DOC25 → **DOC82** | carried | — | DOC25 → DOC82 (E3+E4 Knowledge + Source/Evidence). |
| `OBL-D73-N-NOT-EVIDENCE-INV-01` | DOC73 → **DOC82** | carried | — | DOC73 → DOC82 (E3+E4 Knowledge + Source/Evidence). D9: not-evidence guardrail → DOC82 evidence-semantics (renamed from OBL-D73-N-ORIENTATION-INV-01 in V3.11). |
| `OBL-D73-O-COURT-DISPOSITION-OBS-01` | DOC73 → **DOC82** | carried | — | DOC73 → DOC82 (E3+E4 Knowledge + Source/Evidence). |
| `OBL-D73-O-FILING-UNIT-VERSION-01` | DOC73 → **DOC82** | carried | — | DOC73 → DOC82 (E3+E4 Knowledge + Source/Evidence). |
| `OBL-D73-O-FILINGUNIT-01` | DOC73 → **DOC82** | carried | — | DOC73 → DOC82 (E3+E4 Knowledge + Source/Evidence). |
| `OBL-O-FILING-PART-VIS-01` | V1.6 Group O (legal artifact) → **DOC82** | carried | — | V1.6 Group O (legal artifact) → DOC82 (E3+E4 Knowledge + Source/Evidence). |
| `OBL-O-RULING-DISPOSITION-01` | V1.6 Group O (legal artifact) → **DOC82** | carried | — | V1.6 Group O (legal artifact) → DOC82 (E3+E4 Knowledge + Source/Evidence). |
| `OBL-OBSERVATION-LIFECYCLE-01` | V1.6 Group O (legal artifact) → **DOC82** | carried | — | V1.6 Group O (legal artifact) → DOC82 (E3+E4 Knowledge + Source/Evidence). |
### → DOC83 (E5+E6 Extraction + Temporal) — memory-flatten destination — 7 rows
| obl_id | current → V4 owner | status | legacy_id_aliases | mapping_basis |
|---|---|---|---|---|
| `OBL-D25-DEGRADED-STATE-REPORTING-01` **(NEW)** | (absent in OP-A; D13a) → **DOC83** | NEW | — | D13a ADD (medium) — src DOC25 §24.3.6; absent in V3.18. D13a ADD (confidence=MEDIUM). Source DOC25 §24.3.6. Pass-2 retarget DOC83 (extraction degraded-state); DOC85 alternative. |
| `OBL-D73-NEW-10` | DOC73 → **DOC83** | split | — | Bucket B split child of OBL-D73-NEW-10 — extraction surface. See BUCKET_B_SPLITS.md. |
| `OBL-D73-NEW-13` | DOC73 → **DOC83** | carried | — | DOC73 → DOC83 (E5+E6 Extraction + Temporal). |
| `OBL-D73-O-VERSION-EXTRACTION-COST-V16-01` | DOC73 → **DOC83** | carried | — | DOC73 → DOC83 (E5+E6 Extraction + Temporal). |
| `OBL-D73-RECENT-ACTIVITY-ROLLUP-CONSUMER-CONTRACT-01` | DOC73 → **DOC83** | carried | — | DOC73 → DOC83 (E5+E6 Extraction + Temporal). D9 Running-Brief retarget: consumer/orchestration → DOC83 §2.4 (ADQ-405). Producer/schema stays DOC73 (OBL-D73-V16-MECHANISM4-01). |
| `OBL-D73-V16-J11-FILING-NORMALIZATION-01` | DOC73 → **DOC83** | carried | — | DOC73 → DOC83 (E5+E6 Extraction + Temporal). |
| `OBL-EXT-FSM-01` | V1.6 Group A (EC + DOC73 kernel) → **DOC83** | split | — | Bucket B split child of OBL-EXT-FSM-01 — FSM schema + state semantics (states, legal transitions, terminal/recovery). See BUCKET_B_SPLITS.md. |
### → DOC84 (E7+E8 Delivery + Prompt/Proof) — memory-flatten destination — 34 rows
| obl_id | current → V4 owner | status | legacy_id_aliases | mapping_basis |
|---|---|---|---|---|
| `OBL-BDSM-NEW-01` | BDSM → **DOC84** | carried | — | BDSM → DOC84 (E7+E8 Delivery + Prompt/Proof). |
| `OBL-BDSM-NEW-02` | BDSM → **DOC84** | carried | — | BDSM → DOC84 (E7+E8 Delivery + Prompt/Proof). |
| `OBL-BDSM-NEW-05` | BDSM → **DOC84** | carried | — | BDSM → DOC84 (E7+E8 Delivery + Prompt/Proof). |
| `OBL-BDSM-NEW-FORCE-LEVEL-CONSTRAINT-01` | BDSM → **DOC84** | carried | — | BDSM → DOC84 (E7+E8 Delivery + Prompt/Proof). |
| `OBL-BDSM-NEW-MANIFEST-JOIN-01` | BDSM → **DOC84** | carried | — | BDSM → DOC84 (E7+E8 Delivery + Prompt/Proof). |
| `OBL-BDSM-NEW-MANIFEST-RENAME-01` | BDSM → **DOC84** | carried | — | BDSM → DOC84 (E7+E8 Delivery + Prompt/Proof). |
| `OBL-BDSM-NEW-RECONCILIATION-EVENT-01` | BDSM → **DOC84** | carried | — | BDSM → DOC84 (E7+E8 Delivery + Prompt/Proof). |
| `OBL-D24-KDA-BDSM-DELIVERY-LEARNING-INSPECTOR-ROW-01` | DOC24 → **DOC84** | carried | — | DOC24 → DOC84 (E7+E8 Delivery + Prompt/Proof). |
| `OBL-D24-KDA-BDSM-TOKENIZER-DRIFT-DECISION-01` | DOC24 → **DOC84** | carried | — | DOC24 → DOC84 (E7+E8 Delivery + Prompt/Proof). |
| `OBL-D24-RRB-01` | DOC24 → **DOC84** | carried | — | DOC24 → DOC84 (E7+E8 Delivery + Prompt/Proof). |
| `OBL-D24-RRB-02` | DOC24 → **DOC84** | carried | — | DOC24 → DOC84 (E7+E8 Delivery + Prompt/Proof). |
| `OBL-D24-RRB-03` | DOC24 → **DOC84** | carried | — | DOC24 → DOC84 (E7+E8 Delivery + Prompt/Proof). |
| `OBL-D24-RRB-04` | DOC24 → **DOC84** | carried | — | DOC24 → DOC84 (E7+E8 Delivery + Prompt/Proof). |
| `OBL-D24-RRB-05` | DOC24 → **DOC84** | carried | — | DOC24 → DOC84 (E7+E8 Delivery + Prompt/Proof). |
| `OBL-D24-RRB-06` | DOC24 → **DOC84** | carried | — | DOC24 → DOC84 (E7+E8 Delivery + Prompt/Proof). |
| `OBL-KDA-NEW-01` | KDA → **DOC84** | carried | — | KDA → DOC84 (E7+E8 Delivery + Prompt/Proof). |
| `OBL-KDA-NEW-02` | KDA → **DOC84** | carried | — | KDA → DOC84 (E7+E8 Delivery + Prompt/Proof). |
| `OBL-KDA-NEW-03` | KDA → **DOC84** | carried | — | KDA → DOC84 (E7+E8 Delivery + Prompt/Proof). |
| `OBL-KDA-NEW-04` | KDA → **DOC84** | carried | — | KDA → DOC84 (E7+E8 Delivery + Prompt/Proof). |
| `OBL-KDA-NEW-MANIFEST-RENAME-01` | KDA → **DOC84** | carried | — | KDA → DOC84 (E7+E8 Delivery + Prompt/Proof). |
| `OBL-KDA-NEW-VARIANT-TRACKING-FIELDS-RESTORED-01` | KDA → **DOC84** | carried | — | KDA → DOC84 (E7+E8 Delivery + Prompt/Proof). |
| `OBL-KDA-R3-BUDGET-TOKENIZER-BANDS-01` | KDA → **DOC84** | carried | — | KDA → DOC84 (E7+E8 Delivery + Prompt/Proof). |
| `OBL-KDA-R3-CACHE-STABLE-RENDERING-01` | KDA → **DOC84** | carried | — | KDA → DOC84 (E7+E8 Delivery + Prompt/Proof). |
| `OBL-KDA-R3-CLIENTKIND-FAIL-CLOSED-01` | KDA → **DOC84** | carried | — | KDA → DOC84 (E7+E8 Delivery + Prompt/Proof). |
| `OBL-KDA-R3-COMPOSITION-SPAN-ATTRIBUTION-01` | KDA → **DOC84** | carried | — | KDA → DOC84 (E7+E8 Delivery + Prompt/Proof). |
| `OBL-KDA-R3-DIRECTIVE-CONSTRAINT-TIERING-01` | KDA → **DOC84** | carried | — | KDA → DOC84 (E7+E8 Delivery + Prompt/Proof). |
| `OBL-KDA-R3-KDA-VARIANT-OUTCOME-01` | KDA → **DOC84** | carried | — | KDA → DOC84 (E7+E8 Delivery + Prompt/Proof). |
| `OBL-KDA-R3-MANIFEST-PATCH-UNION-01` | KDA → **DOC84** | carried | — | KDA → DOC84 (E7+E8 Delivery + Prompt/Proof). |
| `OBL-KDA-R3-NEUROPLASTICITY-CANARY-01` | KDA → **DOC84** | carried | — | KDA → DOC84 (E7+E8 Delivery + Prompt/Proof). |
| `OBL-KDA-R3-PROPA-RENDER-POLICY-01` | KDA → **DOC84** | carried | — | KDA → DOC84 (E7+E8 Delivery + Prompt/Proof). |
| `OBL-KDA-R3-R2-SURFACE-PRESERVATION-01` | KDA → **DOC84** | carried | — | KDA → DOC84 (E7+E8 Delivery + Prompt/Proof). |
| `OBL-KDA-R3-REASON-CODE-REGISTRY-01` | KDA → **DOC84** | carried | — | KDA → DOC84 (E7+E8 Delivery + Prompt/Proof). |
| `OBL-KDA-R3-RENDER-RESULT-PURE-01` | KDA → **DOC84** | carried | — | KDA → DOC84 (E7+E8 Delivery + Prompt/Proof). |
| `OBL-KDA-R3-RESTORE-VALIDATION-01` | KDA → **DOC84** | carried | — | KDA → DOC84 (E7+E8 Delivery + Prompt/Proof). |
### → DOC85 (E9 Learning) — memory-flatten destination — 45 rows
| obl_id | current → V4 owner | status | legacy_id_aliases | mapping_basis |
|---|---|---|---|---|
| `OBL-BDSM-LEARNING-VIS-SCOPE-CANONICAL-01` | BDSM → **DOC85** | carried | — | BDSM → DOC85 (E9 Learning). |
| `OBL-BDSM-NEW-03` | BDSM → **DOC85** | carried | — | BDSM → DOC85 (E9 Learning). |
| `OBL-BDSM-NEW-04` | BDSM → **DOC85** | carried | — | BDSM → DOC85 (E9 Learning). |
| `OBL-BDSM-NEW-DEADLINE-BOOST-01` **(NEW)** | (absent in OP-A) → **DOC85** | NEW | — | D3a ADD (high) — src DOC24_R3_1_1.md; absent in V3.18. |
| `OBL-BDSM-NEW-EMPTY-CONTEXT-CRASH-01` | BDSM → **DOC85** | carried | — | BDSM → DOC85 (E9 Learning). |
| `OBL-BDSM-NEW-RELEVANCE-NORMALIZATION-01` | BDSM → **DOC85** | carried | — | BDSM → DOC85 (E9 Learning). |
| `OBL-BDSM-NEW-SUBAGENT-UTILITY-LEDGER-01` | BDSM → **DOC85** | carried | — | BDSM → DOC85 (E9 Learning). |
| `OBL-BDSM-NEW-V15-01` | BDSM → **DOC85** | carried | — | BDSM → DOC85 (E9 Learning). |
| `OBL-BDSM-NEW-V15-02` | BDSM → **DOC85** | carried | — | BDSM → DOC85 (E9 Learning). |
| `OBL-BDSM-NEW-V15-03` | BDSM → **DOC85** | carried | — | BDSM → DOC85 (E9 Learning). |
| `OBL-BDSM-NEW-V15-04` | BDSM → **DOC85** | carried | — | BDSM → DOC85 (E9 Learning). |
| `OBL-BDSM-NEW-V15-05` | BDSM → **DOC85** | carried | — | BDSM → DOC85 (E9 Learning). |
| `OBL-BDSM-UNIFIED-SPECIALIST-LEDGER-01` | BDSM → **DOC85** | carried | — | BDSM → DOC85 (E9 Learning). |
| `OBL-BDSM-V65-COMPILED-BUNDLE-ACTIVATION-01` | BDSM → **DOC85** | carried | — | BDSM → DOC85 (E9 Learning). |
| `OBL-BDSM-V65-DELIVERY-LEARNING-BOUNDARY-ORCHESTRATOR-01` | BDSM → **DOC85** | carried | — | BDSM → DOC85 (E9 Learning). |
| `OBL-BDSM-V65-DIRECTIVE-CONSTRAINT-OWNERSHIP-01` | BDSM → **DOC85** | carried | — | BDSM → DOC85 (E9 Learning). |
| `OBL-BDSM-V65-EC-EFFECTIVE-LEARNING-POLICY-01` | BDSM → **DOC85** | carried | — | BDSM → DOC85 (E9 Learning). |
| `OBL-BDSM-V65-KDA-VARIANT-ATTRIBUTION-01` | BDSM → **DOC85** | carried | — | BDSM → DOC85 (E9 Learning). |
| `OBL-BDSM-V65-LEGACY-SURFACE-PRESERVATION-01` | BDSM → **DOC85** | carried | — | BDSM → DOC85 (E9 Learning). |
| `OBL-BDSM-V65-MATRIX-LEARNING-SIGNAL-01` | BDSM → **DOC85** | carried | — | BDSM → DOC85 (E9 Learning). |
| `OBL-BDSM-V65-NO-SIGNAL-REASON-MAPPING-01` | BDSM → **DOC85** | carried | — | BDSM → DOC85 (E9 Learning). |
| `OBL-BDSM-V65-PRIVACY-PARTITIONED-LEDGERS-01` | BDSM → **DOC85** | carried | — | BDSM → DOC85 (E9 Learning). |
| `OBL-BDSM-V65-REASON-CODE-REGISTRY-01` | BDSM → **DOC85** | carried | — | BDSM → DOC85 (E9 Learning). |
| `OBL-D8-08` | DOC8 → **DOC85** | carried | — | DOC8 → DOC85 (E9 Learning). |
| `OBL-D8-ARTIFACT-UTILITY-SIGNALS-01 (R0.6.4-origin)` | DOC8 / BDSM (V3.14/17 joint) → **DOC85** | carried | — | DOC8 / BDSM (V3.14/17 joint) → DOC85 (E9 Learning). |
| `OBL-D8-BDSM-V65-MATH-CONTRACTS-01` | DOC8 / BDSM (V3.14/17 joint) → **DOC85** | carried | — | DOC8 / BDSM (V3.14/17 joint) → DOC85 (E9 Learning). |
| `OBL-D8-NEW-01` | DOC8 → **DOC85** | carried | — | DOC8 → DOC85 (E9 Learning). |
| `OBL-D8-NEW-02` | DOC8 → **DOC85** | carried | — | DOC8 → DOC85 (E9 Learning). |
| `OBL-D8-NEW-03` | DOC8 → **DOC85** | carried | — | DOC8 → DOC85 (E9 Learning). |
| `OBL-D8-NEW-MANIFEST-JOIN-01` | DOC8 → **DOC85** | carried | — | DOC8 → DOC85 (E9 Learning). |
| `OBL-D8-NEW-V15-01` | DOC8 → **DOC85** | carried | — | DOC8 → DOC85 (E9 Learning). |
| `OBL-D8-PROMPT-EDIT-EVAL-SIGNALS-01` | DOC8 / BDSM (V3.14/17 joint) → **DOC85** | carried | — | DOC8 / BDSM (V3.14/17 joint) → DOC85 (E9 Learning). |
| `OBL-D8-RRB-01` | DOC8 → **DOC85** | carried | — | DOC8 → DOC85 (E9 Learning). |
| `OBL-D8-RRB-02` | DOC8 → **DOC85** | carried | — | DOC8 → DOC85 (E9 Learning). |
| `OBL-D8-RRB-03` | DOC8 → **DOC85** | carried | — | DOC8 → DOC85 (E9 Learning). |
| `OBL-D8-RUN-FORK-FOLLOWUP-UTILITY-01 (R0.6.4-origin)` | DOC8 / BDSM (V3.14/17 joint) → **DOC85** | carried | — | DOC8 / BDSM (V3.14/17 joint) → DOC85 (E9 Learning). |
| `OBL-D8-TASK-AGENT-DESIGN-UTILITY-01` | DOC8 / BDSM (V3.14/17 joint) → **DOC85** | carried | — | DOC8 / BDSM (V3.14/17 joint) → DOC85 (E9 Learning). |
| `OBL-D8-TASK-AGENT-PANEL-FEEDBACK-01 (R0.6.4-origin)` | DOC8 / BDSM (V3.14/17 joint) → **DOC85** | carried | — | DOC8 / BDSM (V3.14/17 joint) → DOC85 (E9 Learning). |
| `OBL-D8-TASK-AGENT-PROPOSAL-EDIT-TRACE-01` | DOC8 / BDSM (V3.14/17 joint) → **DOC85** | carried | — | DOC8 / BDSM (V3.14/17 joint) → DOC85 (E9 Learning). |
| `OBL-D8-TASK-CONTEXT-FEEDBACK-EVENT-01 (R0.6.4-origin)` | DOC8 / BDSM (V3.14/17 joint) → **DOC85** | carried | — | DOC8 / BDSM (V3.14/17 joint) → DOC85 (E9 Learning). |
| `OBL-D8-TASK-INVOCATION-UTILITY-01` | DOC8 / BDSM (V3.14/17 joint) → **DOC85** | carried | — | DOC8 / BDSM (V3.14/17 joint) → DOC85 (E9 Learning). |
| `OBL-D8-TASK-SEGMENT-REUSE-SIGNALS-01 (R0.6.4-origin)` | DOC8 / BDSM (V3.14/17 joint) → **DOC85** | carried | — | DOC8 / BDSM (V3.14/17 joint) → DOC85 (E9 Learning). |
| `OBL-D8-TASK-SUGGESTION-FEEDBACK-01` | DOC8 / BDSM (V3.14/17 joint) → **DOC85** | carried | — | DOC8 / BDSM (V3.14/17 joint) → DOC85 (E9 Learning). |
| `OBL-D8-TASK-SUPPRESSION-BOOST-POLICIES-01` | DOC8 / BDSM (V3.14/17 joint) → **DOC85** | carried | — | DOC8 / BDSM (V3.14/17 joint) → DOC85 (E9 Learning). |
| `OBL-XDOC-BDSM-CONSUME-SIGNALS-01 (DOC8 side)` | DOC8 → **DOC85** | carried | — | DOC8 → DOC85 (E9 Learning). |
### → DOC86 (E10 UI / Inspector / Search) — memory-flatten destination — 3 rows
| obl_id | current → V4 owner | status | legacy_id_aliases | mapping_basis |
|---|---|---|---|---|
| `OBL-D73-NEW-12` | DOC73 → **DOC86** | split | — | Bucket B split child of OBL-D73-NEW-12 — corpus UX / inspector UI. See BUCKET_B_SPLITS.md. |
| `OBL-D73-V16-MVC-01` | DOC73 → **DOC86** | carried | — | DOC73 → DOC86 (E10 UI / Inspector / Search). |
| `OBL-J-INV-13.6-RESOLVE-01` | V1.6 Group J (DOC73 legal/corpus) → **DOC86** | carried | — | V1.6 Group J (DOC73 legal/corpus) → DOC86 (E10 UI / Inspector / Search). |
### → DOC87 (E_org Organization/Membership) — memory-flatten destination — 9 rows
| obl_id | current → V4 owner | status | legacy_id_aliases | mapping_basis |
|---|---|---|---|---|
| `OBL-D73-I-SHARED-CORPUS-VIEW-01` | DOC73 → **DOC87** | carried | — | DOC73 → DOC87 (E_org Organization/Membership). |
| `OBL-D73-J-FORK-LINEAGE-V16-01` | DOC73 → **DOC87** | carried | — | DOC73 → DOC87 (E_org Organization/Membership). |
| `OBL-D73-O-IDENTITY-CONFIDENCE-GATE-01` | DOC73 → **DOC87** | carried | — | DOC73 → DOC87 (E_org Organization/Membership). |
| `OBL-D73-V16-MEMBERSHIP-01` | DOC73 → **DOC87** | carried | — | DOC73 → DOC87 (E_org Organization/Membership). |
| `OBL-D73-V16-TOPIC-DOMAIN-CONCEPT-01` | DOC73 → **DOC87** | carried | — | DOC73 → DOC87 (E_org Organization/Membership). |
| `OBL-D87-NEW-12-CORPUS-ORG-01` **(NEW)** | DOC73 → **DOC87** | NEW-SPLIT | OBL-D73-NEW-12 | Bucket B split child of OBL-D73-NEW-12 — corpus organization / membership surfaces. See BUCKET_B_SPLITS.md. |
| `OBL-J-CORPUSPROFILE-01` | V1.6 Group J (DOC73 legal/corpus) → **DOC87** | carried | — | V1.6 Group J (DOC73 legal/corpus) → DOC87 (E_org Organization/Membership). |
| `OBL-J-V161-LEGAL-HUBNESS-MITIGATION-01` | V1.6 Group J (DOC73 legal/corpus) → **DOC87** | carried | — | V1.6 Group J (DOC73 legal/corpus) → DOC87 (E_org Organization/Membership). |
| `OBL-L-CORPUS-EXPLOSION-01` | V1.6 Group L (UI complexity) → **DOC87** | carried | — | V1.6 Group L (UI complexity) → DOC87 (E_org Organization/Membership). |
### stays DOC1 (outside memory-flatten boundary) — 17 rows
| obl_id | current → V4 owner | status | legacy_id_aliases | mapping_basis |
|---|---|---|---|---|
| `OBL-D1-01` | DOC1 → **DOC1** | carried | — | Stays DOC1 — outside memory-flatten boundary. |
| `OBL-D1-02` | DOC1 → **DOC1** | carried | — | Stays DOC1 — outside memory-flatten boundary. |
| `OBL-D1-03` | DOC1 → **DOC1** | carried | — | Stays DOC1 — outside memory-flatten boundary. |
| `OBL-D1-04` | DOC1 → **DOC1** | carried | — | Stays DOC1 — outside memory-flatten boundary. |
| `OBL-D1-05` | DOC1 → **DOC1** | carried | — | Stays DOC1 — outside memory-flatten boundary. |
| `OBL-D1-06` | DOC1 → **DOC1** | carried | — | Stays DOC1 — outside memory-flatten boundary. |
| `OBL-D1-07` | DOC1 → **DOC1** | carried | — | Stays DOC1 — outside memory-flatten boundary. |
| `OBL-D1-08` | DOC1 → **DOC1** | carried | — | Stays DOC1 — outside memory-flatten boundary. |
| `OBL-D1-09` | DOC1 → **DOC1** | carried | — | Stays DOC1 — outside memory-flatten boundary. |
| `OBL-D1-10` | DOC1 → **DOC1** | carried | — | Stays DOC1 — outside memory-flatten boundary. |
| `OBL-D1-11` | DOC1 → **DOC1** | carried | — | Stays DOC1 — outside memory-flatten boundary. |
| `OBL-D1-12` | DOC1 → **DOC1** | carried | — | Stays DOC1 — outside memory-flatten boundary. |
| `OBL-D1-13` | DOC1 → **DOC1** | carried | — | Stays DOC1 — outside memory-flatten boundary. |
| `OBL-D1-AUD-01` | DOC1 → **DOC1** | carried | — | Stays DOC1 — outside memory-flatten boundary. |
| `OBL-D1-NEW-01` | DOC1 → **DOC1** | carried | — | Stays DOC1 — outside memory-flatten boundary. |
| `OBL-D1-NEW-02` | DOC1 → **DOC1** | carried | — | Stays DOC1 — outside memory-flatten boundary. |
| `OBL-D1-NEW-V15-01` | DOC1 → **DOC1** | carried | — | Stays DOC1 — outside memory-flatten boundary. |
### stays DOC10 (outside memory-flatten boundary) — 9 rows
| obl_id | current → V4 owner | status | legacy_id_aliases | mapping_basis |
|---|---|---|---|---|
| `OBL-D10-08` | DOC10 → **DOC10** | carried | — | Stays DOC10 — outside memory-flatten boundary. |
| `OBL-D10-09` | DOC10 → **DOC10** | carried | — | Stays DOC10 — outside memory-flatten boundary. |
| `OBL-D10-10` | DOC10 → **DOC10** | carried | — | Stays DOC10 — outside memory-flatten boundary. |
| `OBL-D10-11` | DOC10 → **DOC10** | carried | — | Stays DOC10 — outside memory-flatten boundary. |
| `OBL-D10-12` | DOC10 → **DOC10** | carried | — | Stays DOC10 — outside memory-flatten boundary. |
| `OBL-D10-13` | DOC10 → **DOC10** | carried | — | Stays DOC10 — outside memory-flatten boundary. |
| `OBL-D10-AUD-01` | DOC10 → **DOC10** | carried | — | Stays DOC10 — outside memory-flatten boundary. |
| `OBL-D10-NEW-ROOM-AGENT-ROUTING-01` | DOC10 → **DOC10** | carried | — | Stays DOC10 — outside memory-flatten boundary. |
| `OBL-D10-RRB-01` | DOC10 → **DOC10** | carried | — | Stays DOC10 — outside memory-flatten boundary. |
### stays DOC11 (outside memory-flatten boundary) — 22 rows
| obl_id | current → V4 owner | status | legacy_id_aliases | mapping_basis |
|---|---|---|---|---|
| `OBL-D11-08` | DOC11 → **DOC11** | carried | — | Stays DOC11 — outside memory-flatten boundary. |
| `OBL-D11-09` | DOC11 → **DOC11** | carried | — | Stays DOC11 — outside memory-flatten boundary. |
| `OBL-D11-10` | DOC11 → **DOC11** | carried | — | Stays DOC11 — outside memory-flatten boundary. |
| `OBL-D11-11` | DOC11 → **DOC11** | carried | — | Stays DOC11 — outside memory-flatten boundary. |
| `OBL-D11-12` | DOC11 → **DOC11** | carried | — | Stays DOC11 — outside memory-flatten boundary. |
| `OBL-D11-CONTINUATION-AVAILABILITY-01 (R0.6.4-origin)` | DOC11 → **DOC11** | carried | — | Stays DOC11 — outside memory-flatten boundary. |
| `OBL-D11-ISOLATED-FORK-CONTEXT-MODE-01` | DOC11 → **DOC11** | carried | — | Stays DOC11 — outside memory-flatten boundary. |
| `OBL-D11-NEW-01` | DOC11 → **DOC11** | carried | — | Stays DOC11 — outside memory-flatten boundary. |
| `OBL-D11-NEW-02` | DOC11 → **DOC11** | carried | — | Stays DOC11 — outside memory-flatten boundary. |
| `OBL-D11-NEW-03` | DOC11 → **DOC11** | carried | — | Stays DOC11 — outside memory-flatten boundary. |
| `OBL-D11-NEW-FINAL-PROMPT-SPAN-01` | DOC11 → **DOC11** | carried | — | Stays DOC11 — outside memory-flatten boundary. |
| `OBL-D11-NO-PHANTOM-CONTINUATION-01 (R0.6.4-origin)` | DOC11 → **DOC11** | carried | — | Stays DOC11 — outside memory-flatten boundary. |
| `OBL-D11-OPENCLAW-HEARTBEAT-VS-TASK-MONITORING-01` | DOC11 → **DOC11** | carried | — | Stays DOC11 — outside memory-flatten boundary. |
| `OBL-D11-RRB-01` | DOC11 → **DOC11** | carried | — | Stays DOC11 — outside memory-flatten boundary. |
| `OBL-D11-RRB-02` | DOC11 → **DOC11** | carried | — | Stays DOC11 — outside memory-flatten boundary. |
| `OBL-D11-SESSION-MODE-TRUTH-01 (R0.6.4-origin)` | DOC11 → **DOC11** | carried | — | Stays DOC11 — outside memory-flatten boundary. |
| `OBL-D11-SUBAGENT-SESSION-STATUS-01` | DOC11 → **DOC11** | carried | — | Stays DOC11 — outside memory-flatten boundary. |
| `OBL-D11-SUBAGENT-TRACES-RUN-INSPECTOR-01 (R0.6.4-origin)` | DOC11 → **DOC11** | carried | — | Stays DOC11 — outside memory-flatten boundary. |
| `OBL-D11-TASK-AGENT-NAMED-AGENT-01` | DOC11 → **DOC11** | carried | — | Stays DOC11 — outside memory-flatten boundary. |
| `OBL-D11-TASK-AGENT-RUNTIME-PROFILE-01` | DOC11 → **DOC11** | carried | — | Stays DOC11 — outside memory-flatten boundary. |
| `OBL-D11-TASK-MODULE-SESSION-REF-FIELDS-01 (R0.6.4-origin)` | DOC11 → **DOC11** | carried | — | Stays DOC11 — outside memory-flatten boundary. |
| `OBL-D11-VISIBLE-TASK-AGENT-CONTROLS-01` | DOC11 → **DOC11** | carried | — | Stays DOC11 — outside memory-flatten boundary. |
### stays DOC12 (outside memory-flatten boundary) — 13 rows
| obl_id | current → V4 owner | status | legacy_id_aliases | mapping_basis |
|---|---|---|---|---|
| `OBL-D12-08` | DOC12 → **DOC12** | carried | — | Stays DOC12 — outside memory-flatten boundary. |
| `OBL-D12-09` | DOC12 → **DOC12** | carried | — | Stays DOC12 — outside memory-flatten boundary. |
| `OBL-D12-10` | DOC12 → **DOC12** | carried | — | Stays DOC12 — outside memory-flatten boundary. |
| `OBL-D12-11` | DOC12 → **DOC12** | carried | — | Stays DOC12 — outside memory-flatten boundary. |
| `OBL-D12-12` | DOC12 → **DOC12** | carried | — | Stays DOC12 — outside memory-flatten boundary. |
| `OBL-D12-13` | DOC12 → **DOC12** | carried | — | Stays DOC12 — outside memory-flatten boundary. |
| `OBL-D12-14` | DOC12 → **DOC12** | carried | — | Stays DOC12 — outside memory-flatten boundary. |
| `OBL-D12-AUD-01` | DOC12 → **DOC12** | carried | — | Stays DOC12 — outside memory-flatten boundary. |
| `OBL-D12-NEW-AGENT-ROOM-TOOLS-01` | DOC12 → **DOC12** | carried | — | Stays DOC12 — outside memory-flatten boundary. |
| `OBL-D12-NEW-FORUM-ROOM-KINDS-01` | DOC12 → **DOC12** | carried | — | Stays DOC12 — outside memory-flatten boundary. |
| `OBL-D12-NEW-ROOM-BLACKBOARD-01` | DOC12 → **DOC12** | carried | — | Stays DOC12 — outside memory-flatten boundary. |
| `OBL-D12-RRB-01` | DOC12 → **DOC12** | carried | — | Stays DOC12 — outside memory-flatten boundary. |
| `OBL-D12-RRB-02` | DOC12 → **DOC12** | carried | — | Stays DOC12 — outside memory-flatten boundary. |
### stays DOC13 (outside memory-flatten boundary) — 5 rows
| obl_id | current → V4 owner | status | legacy_id_aliases | mapping_basis |
|---|---|---|---|---|
| `OBL-D13-01` | DOC13 → **DOC13** | carried | — | Stays DOC13 — outside memory-flatten boundary. |
| `OBL-D13-02` | DOC13 → **DOC13** | carried | — | Stays DOC13 — outside memory-flatten boundary. |
| `OBL-D13-03` | DOC13 → **DOC13** | carried | — | Stays DOC13 — outside memory-flatten boundary. |
| `OBL-D13-04` | DOC13 → **DOC13** | carried | — | Stays DOC13 — outside memory-flatten boundary. |
| `OBL-D13-05` | DOC13 → **DOC13** | carried | — | Stays DOC13 — outside memory-flatten boundary. |
### stays DOC14 (outside memory-flatten boundary) — 3 rows
| obl_id | current → V4 owner | status | legacy_id_aliases | mapping_basis |
|---|---|---|---|---|
| `OBL-D14-07` | DOC14 → **DOC14** | carried | — | Stays DOC14 — outside memory-flatten boundary. |
| `OBL-D14-08` | DOC14 → **DOC14** | carried | — | Stays DOC14 — outside memory-flatten boundary. |
| `OBL-D14-09` | DOC14 → **DOC14** | carried | — | Stays DOC14 — outside memory-flatten boundary. |
### stays DOC15 (outside memory-flatten boundary) — 12 rows
| obl_id | current → V4 owner | status | legacy_id_aliases | mapping_basis |
|---|---|---|---|---|
| `OBL-D15-06` | DOC15 → **DOC15** | carried | — | Stays DOC15 — outside memory-flatten boundary. |
| `OBL-D15-CITATION-DISPLAY-V16-01` | DOC15 → **DOC15** | carried | — | Stays DOC15 — outside memory-flatten boundary. |
| `OBL-D15-KDA-SEARCH-PLAN-FAILURE-RENDER-01` | DOC15 → **DOC15** | carried | — | Stays DOC15 — outside memory-flatten boundary. |
| `OBL-D15-KDA-V16-SOURCE-SURFACE-01` | DOC15 → **DOC15** | carried | — | Stays DOC15 — outside memory-flatten boundary. |
| `OBL-D15-NEW-01` | DOC15 → **DOC15** | carried | — | Stays DOC15 — outside memory-flatten boundary. |
| `OBL-D15-NEW-02` | DOC15 → **DOC15** | carried | — | Stays DOC15 — outside memory-flatten boundary. |
| `OBL-D15-NEW-CIL-FEEDBACK-FILTER-01` | DOC15 → **DOC15** | carried | — | Stays DOC15 — outside memory-flatten boundary. |
| `OBL-D15-NEW-V15-01` | DOC15 → **DOC15** | carried | — | Stays DOC15 — outside memory-flatten boundary. |
| `OBL-D15-NEW-V15-02` | DOC15 → **DOC15** | carried | — | Stays DOC15 — outside memory-flatten boundary. |
| `OBL-D15-RRB-01` | DOC15 → **DOC15** | carried | — | Stays DOC15 — outside memory-flatten boundary. |
| `OBL-D15-RRB-02` | DOC15 → **DOC15** | carried | — | Stays DOC15 — outside memory-flatten boundary. |
| `OBL-D15-RRB-03` | DOC15 → **DOC15** | carried | — | Stays DOC15 — outside memory-flatten boundary. |
### stays DOC16 (outside memory-flatten boundary) — 1 rows
| obl_id | current → V4 owner | status | legacy_id_aliases | mapping_basis |
|---|---|---|---|---|
| `OBL-D16-AUD-01` | DOC16 → **DOC16** | carried | — | Stays DOC16 — outside memory-flatten boundary. |
### stays DOC17 (outside memory-flatten boundary) — 4 rows
| obl_id | current → V4 owner | status | legacy_id_aliases | mapping_basis |
|---|---|---|---|---|
| `OBL-D17-PROMPT-ADVISOR-REFRAME-01` | DOC17 → **DOC17** | carried | — | Stays DOC17 — outside memory-flatten boundary. |
| `OBL-D17-PROMPT-LAB-RETENTION-01` | DOC17 → **DOC17** | carried | — | Stays DOC17 — outside memory-flatten boundary. |
| `OBL-D17-PROMPT-RECIPES-DOC17-OWNED-01` | DOC17 → **DOC17** | carried | — | Stays DOC17 — outside memory-flatten boundary. |
| `OBL-D17-TASK-AGENT-PROMPT-ADVISOR-CALL-01` | DOC17 → **DOC17** | carried | — | Stays DOC17 — outside memory-flatten boundary. |
### stays DOC18 (outside memory-flatten boundary) — 7 rows
| obl_id | current → V4 owner | status | legacy_id_aliases | mapping_basis |
|---|---|---|---|---|
| `OBL-D18-01` | DOC18 → **DOC18** | carried | — | Stays DOC18 — outside memory-flatten boundary. |
| `OBL-D18-02` | DOC18 → **DOC18** | carried | — | Stays DOC18 — outside memory-flatten boundary. |
| `OBL-D18-03` | DOC18 → **DOC18** | carried | — | Stays DOC18 — outside memory-flatten boundary. |
| `OBL-D18-LEGAL-SEARCH-01` | DOC18 → **DOC18** | carried | — | Stays DOC18 — outside memory-flatten boundary. |
| `OBL-D18-NEW-02` | DOC18 → **DOC18** | carried | — | Stays DOC18 — outside memory-flatten boundary. |
| `OBL-D18-NEW-V15-01` | DOC18 → **DOC18** | carried | — | Stays DOC18 — outside memory-flatten boundary. |
| `OBL-D18-NEW-V15-02` | DOC18 → **DOC18** | carried | — | Stays DOC18 — outside memory-flatten boundary. |
### stays DOC2 (outside memory-flatten boundary) — 1 rows
| obl_id | current → V4 owner | status | legacy_id_aliases | mapping_basis |
|---|---|---|---|---|
| `OBL-D2-RRB-01` | DOC2 → **DOC2** | carried | — | Stays DOC2 — outside memory-flatten boundary. |
### stays DOC20 (outside memory-flatten boundary) — 10 rows
| obl_id | current → V4 owner | status | legacy_id_aliases | mapping_basis |
|---|---|---|---|---|
| `OBL-D20-NEW-AGENTS-PAGE-01` | DOC20 → **DOC20** | carried | — | Stays DOC20 — outside memory-flatten boundary. |
| `OBL-D20-NEW-V15-01` | DOC20 → **DOC20** | carried | — | Stays DOC20 — outside memory-flatten boundary. |
| `OBL-D20-NEW-V15-02` | DOC20 → **DOC20** | carried | — | Stays DOC20 — outside memory-flatten boundary. |
| `OBL-D20-NEW-V15-03` | DOC20 → **DOC20** | carried | — | Stays DOC20 — outside memory-flatten boundary. |
| `OBL-D20-NEW-V15-04` | DOC20 → **DOC20** | carried | — | Stays DOC20 — outside memory-flatten boundary. |
| `OBL-D20-RRB-01` | DOC20 → **DOC20** | carried | — | Stays DOC20 — outside memory-flatten boundary. |
| `OBL-D20-RRB-02` | DOC20 → **DOC20** | carried | — | Stays DOC20 — outside memory-flatten boundary. |
| `OBL-D20-RRB-03` | DOC20 → **DOC20** | carried | — | Stays DOC20 — outside memory-flatten boundary. |
| `OBL-D20-RRB-04` | DOC20 → **DOC20** | carried | — | Stays DOC20 — outside memory-flatten boundary. |
| `OBL-XDOC-DOC20-EVAL-UI-01` | DOC20 → **DOC20** | carried | — | Stays DOC20 — outside memory-flatten boundary. |
### stays DOC20 / DOC21 / DOC22 (outside memory-flatten boundary) — 16 rows
| obl_id | current → V4 owner | status | legacy_id_aliases | mapping_basis |
|---|---|---|---|---|
| `OBL-D20-ARTIFACT-CLICK-DESTINATION-01 (R0.6.4-origin)` | DOC20 / DOC21 / DOC22 → **DOC20/21/22** | carried | — | Stays DOC20 / DOC21 / DOC22 — outside memory-flatten boundary. |
| `OBL-D20-ARTIFACT-CONTEXT-MENU-01 (R0.6.4-origin)` | DOC20 / DOC21 / DOC22 → **DOC20/21/22** | carried | — | Stays DOC20 / DOC21 / DOC22 — outside memory-flatten boundary. |
| `OBL-D20-BROWSER-DRAG-DROP-01 (R0.6.4-origin)` | DOC20 / DOC21 / DOC22 → **DOC20/21/22** | carried | — | Stays DOC20 / DOC21 / DOC22 — outside memory-flatten boundary. |
| `OBL-D20-BROWSER-TASK-FILTER-01 (R0.6.4-origin)` | DOC20 / DOC21 / DOC22 → **DOC20/21/22** | carried | — | Stays DOC20 / DOC21 / DOC22 — outside memory-flatten boundary. |
| `OBL-D20-GRAPH-RUNINSPECTOR-NAV-01 (R0.6.4-origin)` | DOC20 / DOC21 / DOC22 → **DOC20/21/22** | carried | — | Stays DOC20 / DOC21 / DOC22 — outside memory-flatten boundary. |
| `OBL-D20-MODULE-RUN-QUICKACCESS-01 (R0.6.4-origin)` | DOC20 / DOC21 / DOC22 → **DOC20/21/22** | carried | — | Stays DOC20 / DOC21 / DOC22 — outside memory-flatten boundary. |
| `OBL-D20-PROMPT-IMPROVEMENT-LEVELS-01` | DOC20 / DOC21 / DOC22 → **DOC20/21/22** | carried | — | Stays DOC20 / DOC21 / DOC22 — outside memory-flatten boundary. |
| `OBL-D20-RUN-INSPECTOR-CONSOLIDATED-01 (R0.6.4-origin)` | DOC20 / DOC21 / DOC22 → **DOC20/21/22** | carried | — | Stays DOC20 / DOC21 / DOC22 — outside memory-flatten boundary. |
| `OBL-D20-TASK-AGENT-PANELS-01` | DOC20 / DOC21 / DOC22 → **DOC20/21/22** | carried | — | Stays DOC20 / DOC21 / DOC22 — outside memory-flatten boundary. |
| `OBL-D20-TASK-AGENT-SETTINGS-01` | DOC20 / DOC21 / DOC22 → **DOC20/21/22** | carried | — | Stays DOC20 / DOC21 / DOC22 — outside memory-flatten boundary. |
| `OBL-D20-TASK-AGENT-SIDE-PANEL-01 (R0.6.4-origin)` | DOC20 / DOC21 / DOC22 → **DOC20/21/22** | carried | — | Stays DOC20 / DOC21 / DOC22 — outside memory-flatten boundary. |
| `OBL-D20-TASK-CANVAS-WORKSPACE-TAB-01 (R0.6.4-origin)` | DOC20 / DOC21 / DOC22 → **DOC20/21/22** | carried | — | Stays DOC20 / DOC21 / DOC22 — outside memory-flatten boundary. |
| `OBL-D20-TASK-OPPORTUNITY-CHIPS-01` | DOC20 / DOC21 / DOC22 → **DOC20/21/22** | carried | — | Stays DOC20 / DOC21 / DOC22 — outside memory-flatten boundary. |
| `OBL-D20-TASKS-PAGE-COMMAND-CENTER-01 (R0.6.4-origin)` | DOC20 / DOC21 / DOC22 → **DOC20/21/22** | carried | — | Stays DOC20 / DOC21 / DOC22 — outside memory-flatten boundary. |
| `OBL-D20-TKP-READINESS-DRIFT-01` | DOC20 / DOC21 / DOC22 → **DOC20/21/22** | carried | — | Stays DOC20 / DOC21 / DOC22 — outside memory-flatten boundary. |
| `OBL-D2122-COMPONENT-REGISTRY-01 (R0.6.4-origin)` | DOC20 / DOC21 / DOC22 → **DOC20/21/22** | carried | — | Stays DOC20 / DOC21 / DOC22 — outside memory-flatten boundary. |
### stays DOC21 / DOC22 (outside memory-flatten boundary) — 3 rows
| obl_id | current → V4 owner | status | legacy_id_aliases | mapping_basis |
|---|---|---|---|---|
| `OBL-D21-NEW-01` | DOC21 / DOC22 → **DOC21/22** | carried | — | Stays DOC21 / DOC22 — outside memory-flatten boundary. |
| `OBL-D21-NEW-02` | DOC21 / DOC22 → **DOC21/22** | carried | — | Stays DOC21 / DOC22 — outside memory-flatten boundary. |
| `OBL-DOC21-NEW-PBE-LITE-BANNER-01` | DOC21 → **DOC21/22** | carried | — | Stays DOC21 — outside memory-flatten boundary. |
### stays DOC23 (outside memory-flatten boundary) — 40 rows
| obl_id | current → V4 owner | status | legacy_id_aliases | mapping_basis |
|---|---|---|---|---|
| `OBL-ADDB-CC-V1-SCHEMAS-01` | DOC23 → **DOC23** | carried | — | Stays DOC23 — outside memory-flatten boundary. |
| `OBL-ADDB-CR07-FAMILY-01` | DOC23 → **DOC23** | carried | — | Stays DOC23 — outside memory-flatten boundary. |
| `OBL-ADDB-FD-V1-BUNDLE-CONTRACT-01` | DOC23 → **DOC23** | carried | — | Stays DOC23 — outside memory-flatten boundary. |
| `OBL-ADDB-FD-V1-CHANNELS-01` | DOC23 → **DOC23** | carried | — | Stays DOC23 — outside memory-flatten boundary. |
| `OBL-ADDB-FD-V1-DEFEASIBLE-FINDINGS-01` | DOC23 → **DOC23** | carried | — | Stays DOC23 — outside memory-flatten boundary. |
| `OBL-ADDB-FD-V1-RECEIPTS-01` | DOC23 → **DOC23** | carried | — | Stays DOC23 — outside memory-flatten boundary. |
| `OBL-ADDB-FD-V1-ROUTING-POLICY-01` | DOC23 → **DOC23** | carried | — | Stays DOC23 — outside memory-flatten boundary. |
| `OBL-ADDB-SW-V1-RESEARCH-MODULE-01` | DOC23 → **DOC23** | carried | — | Stays DOC23 — outside memory-flatten boundary. |
| `OBL-ADDB-SW-V1-UI-01` | DOC23 → **DOC23** | carried | — | Stays DOC23 — outside memory-flatten boundary. |
| `OBL-ADDB-SW-V1-WORKSPACE-API-01` | DOC23 → **DOC23** | carried | — | Stays DOC23 — outside memory-flatten boundary. |
| `OBL-ADDB-TFB-V1-ASSISTANCE-REQUEST-01` | DOC23 → **DOC23** | carried | — | Stays DOC23 — outside memory-flatten boundary. |
| `OBL-ADDB-TFB-V1-DIGEST-PACKET-01` | DOC23 → **DOC23** | carried | — | Stays DOC23 — outside memory-flatten boundary. |
| `OBL-ADDB-TFB-V1-FORUM-MODULE-01` | DOC23 → **DOC23** | carried | — | Stays DOC23 — outside memory-flatten boundary. |
| `OBL-ADDB-TFB-V1-MODERATOR-MODES-01` | DOC23 → **DOC23** | carried | — | Stays DOC23 — outside memory-flatten boundary. |
| `OBL-ADDB-TFB-V1-RUN-BOARD-01` | DOC23 → **DOC23** | carried | — | Stays DOC23 — outside memory-flatten boundary. |
| `OBL-ADDB-TFB-V1-UI-01` | DOC23 → **DOC23** | carried | — | Stays DOC23 — outside memory-flatten boundary. |
| `OBL-ADDB-V32-SURGICAL-01` | DOC23 → **DOC23** | carried | — | Stays DOC23 — outside memory-flatten boundary. |
| `OBL-D23-A-DSPY-GEPA-R5-GATE-01` | DOC23 Addenda A → **DOC23** | carried | — | Stays DOC23 Addenda A — outside memory-flatten boundary. |
| `OBL-D23-A-EXPERIMENT-PROMPT-CANDIDATE-01` | DOC23 Addenda A → **DOC23** | carried | — | Stays DOC23 Addenda A — outside memory-flatten boundary. |
| `OBL-D23-A-EXPERIMENT-VARIANT-FLOWS-01 (R0.6.4-origin)` | DOC23 Addenda A → **DOC23** | carried | — | Stays DOC23 Addenda A — outside memory-flatten boundary. |
| `OBL-D23-A-JUDGE-EXPERIMENT-DETAIL-VIEWS-01 (R0.6.4-origin)` | DOC23 Addenda A → **DOC23** | carried | — | Stays DOC23 Addenda A — outside memory-flatten boundary. |
| `OBL-D23-A-JUDGE-RESCORE-COMPARE-01 (R0.6.4-origin)` | DOC23 Addenda A → **DOC23** | carried | — | Stays DOC23 Addenda A — outside memory-flatten boundary. |
| `OBL-D23-A-PROMPT-CANDIDATE-FORK-01 (R0.6.4-origin)` | DOC23 Addenda A → **DOC23** | carried | — | Stays DOC23 Addenda A — outside memory-flatten boundary. |
| `OBL-D23-A-PROMPT-EVAL-TASK-INTEGRATION-01` | DOC23 Addenda A → **DOC23** | carried | — | Stays DOC23 Addenda A — outside memory-flatten boundary. |
| `OBL-D23-A-PROMPT-PROMOTION-LEDGER-01` | DOC23 Addenda A → **DOC23** | carried | — | Stays DOC23 Addenda A — outside memory-flatten boundary. |
| `OBL-D23-A-V6-REPROMPT-SEPARATOR-01` | DOC23 → **DOC23** | carried | — | Stays DOC23 — outside memory-flatten boundary. |
| `OBL-D23-NEW-V15-01` | DOC23 → **DOC23** | carried | — | Stays DOC23 — outside memory-flatten boundary. |
| `OBL-D23-NEW-V15-02` | DOC23 → **DOC23** | carried | — | Stays DOC23 — outside memory-flatten boundary. |
| `OBL-D23-SUBAGENT-DISPATCH-INTEGRATION-01` | DOC23 / Addenda B → **DOC23** | carried | — | Stays DOC23 / Addenda B — outside memory-flatten boundary. |
| `OBL-D23B-SLOT-REGISTRATION-MECHANICS-01` | DOC23 / Addenda B → **DOC23** | carried | — | D12 not_memory — pending fold Core R0.8; target unchanged. D12: not_memory; disposition pending — fold on Core R0.8. Not retargeted to DOC80 family. |
| `OBL-XDOC-CLAIM-EXTRACTOR-PUBLIC-01` | DOC23 → **DOC23** | carried | — | Stays DOC23 — outside memory-flatten boundary. |
| `OBL-XDOC-EVAL-ENV-01` | DOC23 → **DOC23** | carried | — | Stays DOC23 — outside memory-flatten boundary. |
| `OBL-XDOC-EVAL-SIGNAL-OWNERSHIP-01` | DOC23 → **DOC23** | carried | — | Stays DOC23 — outside memory-flatten boundary. |
| `OBL-XDOC-EVALUATOR-CLAIMS-IN-01` | DOC23 → **DOC23** | carried | — | Stays DOC23 — outside memory-flatten boundary. |
| `OBL-XDOC-JUDGE-EVALUATOR-OUTPUT-IN-01` | DOC23 → **DOC23** | carried | — | Stays DOC23 — outside memory-flatten boundary. |
| `OBL-XDOC-LEARNING-MODE-01` | DOC23 → **DOC23** | carried | — | Stays DOC23 — outside memory-flatten boundary. |
| `OBL-XDOC-MODULES-REGISTRY-01` | DOC23 → **DOC23** | carried | — | Stays DOC23 — outside memory-flatten boundary. |
| `OBL-XDOC-OUTCOME-COMPLIANCE-01` | DOC23 → **DOC23** | carried | — | Stays DOC23 — outside memory-flatten boundary. |
| `OBL-XDOC-PROMPT-COMPARISON-SIGNAL-01` | DOC23 → **DOC23** | carried | — | Stays DOC23 — outside memory-flatten boundary. |
| `OBL-XDOC-SCOPE-PRIMITIVES-01` | DOC23 → **DOC23** | carried | — | Stays DOC23 — outside memory-flatten boundary. |
### stays DOC24 (outside memory-flatten boundary) — 40 rows
| obl_id | current → V4 owner | status | legacy_id_aliases | mapping_basis |
|---|---|---|---|---|
| `OBL-D23-A-V6-ENTITY-CARD-BLOCK-KIND-01` | DOC24 → **DOC24** | carried | — | Stays DOC24 — outside memory-flatten boundary. |
| `OBL-D24-BDSM-EMA-01` | DOC24 → **DOC24** | carried | — | Stays DOC24 — outside memory-flatten boundary. |
| `OBL-D24-BDSM-UTILITY-BUNDLE-CONSUMPTION-01` | DOC24 → **DOC24** | carried | — | Stays DOC24 — outside memory-flatten boundary. |
| `OBL-D24-CAPABILITY-EXPANSION-RECEIPTS-01` | DOC24 → **DOC24** | carried | — | Stays DOC24 — outside memory-flatten boundary. |
| `OBL-D24-CORPUS-LIB-MAP-01` | DOC24 → **DOC87** | retargeted at publication | OBL-D7-NEW-LIBRARY-NAMING-01 (NOT a dup — peer UI-rendering row at DOC86; dup question resolved at V3.8 landing per OPA V3.18 line 3431) | ADQ-PASS2-02 resolved at Pass 2 ratification (2026-05-28): DOC87 owns canonical corpus↔library identity mapping per ADQ-220 (Library-as-organizational-container); DOC25 owns CorpusIndex storage side; DOC24 consumes mapping at search/onboarding. Row physically remains in DOC24 section pending reorganization in next OPA patch round; logical owner is DOC87. |
| `OBL-D24-LIBRARY-BINDING-GATES-01` | DOC24 → **DOC24** | carried | — | Stays DOC24 — outside memory-flatten boundary. |
| `OBL-D24-MVC-RESULT-MERGE-01` | DOC24 → **DOC24** | carried | — | Stays DOC24 — outside memory-flatten boundary. |
| `OBL-D24-NEW-12-ONBOARDING-01` **(NEW)** | DOC73 → **DOC24** | NEW-SPLIT | OBL-D73-NEW-12 | Bucket B split child of OBL-D73-NEW-12 — corpus onboarding flow. See BUCKET_B_SPLITS.md. |
| `OBL-D24-NEW-AVAILABLE-SUBAGENTS-SLOT-01` | DOC24 → **DOC24** | carried | — | Stays DOC24 — outside memory-flatten boundary. |
| `OBL-D24-NEW-CONTEXT-PACKET-FEEDBACK-01` | DOC24 → **DOC24** | carried | — | Stays DOC24 — outside memory-flatten boundary. |
| `OBL-D24-NEW-SUBAGENT-DISPATCH-01` | DOC24 → **DOC24** | carried | — | Stays DOC24 — outside memory-flatten boundary. |
| `OBL-D24-NEW-SUBAGENT-REGISTRY-RUNTIME-01` | DOC24 → **DOC24** | carried | — | Stays DOC24 — outside memory-flatten boundary. |
| `OBL-D24-NEW-V15-01` | DOC24 → **DOC24** | carried | — | Stays DOC24 — outside memory-flatten boundary. |
| `OBL-D24-NEW-V15-02` | DOC24 → **DOC24** | carried | — | Stays DOC24 — outside memory-flatten boundary. |
| `OBL-D24-NEW-V15-03` | DOC24 → **DOC24** | carried | — | Stays DOC24 — outside memory-flatten boundary. |
| `OBL-D24-NEW-V15-04` | DOC24 → **DOC24** | carried | — | Stays DOC24 — outside memory-flatten boundary. |
| `OBL-D24-NO-FULL-TKP-IN-CHAT-01` | DOC24 → **DOC24** | carried | — | Stays DOC24 — outside memory-flatten boundary. |
| `OBL-D24-OBSERVATION-LIFECYCLE-V16-01` | DOC24 → **DOC24** | carried | — | Stays DOC24 — outside memory-flatten boundary. |
| `OBL-D24-PACKET-EXCLUSION-RECEIPTS-01` | DOC24 → **DOC24** | carried | — | Stays DOC24 — outside memory-flatten boundary. |
| `OBL-D24-PROMPT-IMPROVEMENT-ROUTING-01` | DOC24 → **DOC24** | carried | — | Stays DOC24 — outside memory-flatten boundary. |
| `OBL-D24-REASON-CODE-VISIBILITY-V16-01` | DOC24 → **DOC24** | carried | — | Stays DOC24 — outside memory-flatten boundary. |
| `OBL-D24-REASONCODES-V16-01` | DOC24 → **DOC24** | carried | — | Stays DOC24 — outside memory-flatten boundary. |
| `OBL-D24-RETENTION-V16-01` | DOC24 → **DOC24** | carried | — | Stays DOC24 — outside memory-flatten boundary. |
| `OBL-D24-SEARCH-SCOPE-V16-01` | DOC24 → **DOC24** | carried | — | Stays DOC24 — outside memory-flatten boundary. |
| `OBL-D24-SUBAGENT-SESSION-01` | DOC24 → **DOC24** | carried | — | Stays DOC24 — outside memory-flatten boundary. |
| `OBL-D24-TASK-AGENT-CAPABILITY-01` | DOC24 → **DOC24** | carried | — | Stays DOC24 — outside memory-flatten boundary. |
| `OBL-D24-TASK-AGENT-ENTRYPOINTS-01` | DOC24 → **DOC24** | carried | — | Stays DOC24 — outside memory-flatten boundary. |
| `OBL-D24-TASK-AGENT-LIVE-REGISTRY-EXPOSURE-01` | DOC24 → **DOC24** | carried | — | Stays DOC24 — outside memory-flatten boundary. |
| `OBL-D24-TASK-AGENT-REGISTRATION-01` | DOC24 → **DOC24** | carried | — | Stays DOC24 — outside memory-flatten boundary. |
| `OBL-D24-TASK-CONTEXT-ISOLATION-01` | DOC24 → **DOC24** | carried | — | Stays DOC24 — outside memory-flatten boundary. |
| `OBL-D24-TASK-DESIGN-INTELLIGENCE-CARD-RENDERING-01` | DOC24 → **DOC24** | carried | — | Stays DOC24 — outside memory-flatten boundary. |
| `OBL-D24-TASK-INVOCATION-DIRECTIVE-ROUTING-01` | DOC24 → **DOC24** | carried | — | Stays DOC24 — outside memory-flatten boundary. |
| `OBL-D24-TASK-MODE-RESOLVER-01` | DOC24 → **DOC24** | carried | — | Stays DOC24 — outside memory-flatten boundary. |
| `OBL-D24-TASK-MODULE-CONTEXT-PACKET-01` | DOC24 → **DOC24** | carried | — | Stays DOC24 — outside memory-flatten boundary. |
| `OBL-D24-TASK-OPPORTUNITY-PACKET-LANE-01` | DOC24 → **DOC24** | carried | — | Stays DOC24 — outside memory-flatten boundary. |
| `OBL-D24-TOPK-INJECTION-01` | DOC24 → **DOC24** | carried | — | Stays DOC24 — outside memory-flatten boundary. |
| `OBL-D24-V16-MEMBERSHIP-AUTHORITY-01` | DOC24 → **DOC24** | carried | — | Stays DOC24 — outside memory-flatten boundary. |
| `OBL-D24-V16-SEARCH-COVERAGE-01` | DOC24 → **DOC24** | carried | — | Stays DOC24 — outside memory-flatten boundary. |
| `OBL-D24-V16-SEARCH-MANIFEST-01` | DOC24 → **DOC24** | carried | — | Stays DOC24 — outside memory-flatten boundary. |
| `OBL-D24-V16-SEARCH-ROUTER-01` | DOC24 → **DOC24** | carried | — | Stays DOC24 — outside memory-flatten boundary. |
### stays DOC25 (outside memory-flatten boundary) — 22 rows
| obl_id | current → V4 owner | status | legacy_id_aliases | mapping_basis |
|---|---|---|---|---|
| `OBL-D25-D24-REG-01` | DOC25 → **DOC25** | carried | — | Stays DOC25 — outside memory-flatten boundary. |
| `OBL-D25-D73-V16-STALE-01` | DOC25 → **DOC25** | carried | — | Stays DOC25 — outside memory-flatten boundary. |
| `OBL-D25-ECF-AUTHORITY-01` | DOC25 → **DOC25** | carried | — | Stays DOC25 — outside memory-flatten boundary. |
| `OBL-D25-INGESTION-RESULT-TASKARTIFACTINDEX-01` | DOC25 → **DOC25** | carried | — | Stays DOC25 — outside memory-flatten boundary. |
| `OBL-D25-NEW-10-INGEST-ADAPTER-01` **(NEW)** | DOC73 → **DOC25** | NEW-SPLIT | OBL-D73-NEW-10 | Bucket B split child of OBL-D73-NEW-10 — DOC25 ingestion-adapter surface. See BUCKET_B_SPLITS.md. |
| `OBL-D25-NEW-DOCUMENT-INTELLIGENCE-TOOLS-01` | DOC25 → **DOC25** | carried | — | Stays DOC25 — outside memory-flatten boundary. |
| `OBL-D25-NEW-MAX-TOKENS-PARAM-01` | DOC25 → **DOC25** | carried | — | Stays DOC25 — outside memory-flatten boundary. |
| `OBL-D25-NEW-PREFLIGHT-LEASE-01` **(NEW)** | (absent in OP-A) → **DOC25** | NEW | — | D3a ADD (high) — src DOC24_R3_1_1.md; absent in V3.18. |
| `OBL-D25-NEW-SOURCE-WORKSPACE-BOUNDARY-01` | DOC25 → **DOC25** | carried | — | Stays DOC25 — outside memory-flatten boundary. |
| `OBL-D25-NEW-V15-01` | DOC25 → **DOC25** | carried | — | Stays DOC25 — outside memory-flatten boundary. |
| `OBL-D25-NEW-V15-02` | DOC25 → **DOC25** | carried | — | Stays DOC25 — outside memory-flatten boundary. |
| `OBL-D25-NEW-V15-03` | DOC25 → **DOC25** | carried | — | Stays DOC25 — outside memory-flatten boundary. |
| `OBL-D25-NEW-V15-04` | DOC25 → **DOC25** | carried | — | Stays DOC25 — outside memory-flatten boundary. |
| `OBL-D25-NEW-V15-05` | DOC25 → **DOC25** | carried | — | Stays DOC25 — outside memory-flatten boundary. |
| `OBL-D25-NEW-V15-06` | DOC25 → **DOC25** | carried | — | Stays DOC25 — outside memory-flatten boundary. |
| `OBL-D25-PROMPT-EVAL-OUTPUT-ROUTING-01` | DOC25 → **DOC25** | carried | — | Stays DOC25 — outside memory-flatten boundary. |
| `OBL-D25-PROMPTINJ-01` | DOC25 → **DOC25** | carried | — | Stays DOC25 — outside memory-flatten boundary. |
| `OBL-D25-TASK-INGESTION-ROUTING-01` | DOC25 → **DOC25** | carried | — | Stays DOC25 — outside memory-flatten boundary. |
| `OBL-D25-V16-CACHE-BATCH-01` | DOC25 → **DOC25** | carried | OBL-D25-D24-V16-CACHE-BATCH-01 | Stays DOC25 — outside memory-flatten boundary. D10 dup-merge winner (pair #2). Loser OBL-D25-D24-V16-CACHE-BATCH-01 folded as alias. V1.6.1 normalized to single V4 row. |
| `OBL-D25-V16-DOC-VERSION-MEMORY-01` | DOC25 → **DOC25** | carried | — | Stays DOC25 — outside memory-flatten boundary. |
| `OBL-D25-V16-LEGAL-ARTIFACT-NORMALIZATION-01` | DOC25 → **DOC25** | carried | — | Stays DOC25 — outside memory-flatten boundary. |
| `OBL-I-EXTERNAL-UPLOAD-QUARANTINE-01` | V1.6 Group I (DOC24 + EC) → **DOC25** | carried | — | Stays V1.6 Group I (DOC24 + EC) — outside memory-flatten boundary. |
### stays DOC3 (outside memory-flatten boundary) — 7 rows
| obl_id | current → V4 owner | status | legacy_id_aliases | mapping_basis |
|---|---|---|---|---|
| `OBL-D3-AUD-01` | DOC3 → **DOC3** | carried | — | Stays DOC3 — outside memory-flatten boundary. |
| `OBL-D3-AUD-02` | DOC3 → **DOC3** | carried | — | Stays DOC3 — outside memory-flatten boundary. |
| `OBL-D3-AUD-03` | DOC3 → **DOC3** | carried | — | Stays DOC3 — outside memory-flatten boundary. |
| `OBL-D3-AUD-04` | DOC3 → **DOC3** | carried | — | Stays DOC3 — outside memory-flatten boundary. |
| `OBL-D3-DIRECTIVE-PROCEDURE-REFERENCE-01` | DOC3 → **DOC3** | carried | — | Stays DOC3 — outside memory-flatten boundary. |
| `OBL-D3-DOC72-DIRECT-INJECTION-01` | DOC3 → **DOC3** | carried | — | Stays DOC3 — outside memory-flatten boundary. |
| `OBL-D3-PROCEDURE-TASK-BOUNDARY-01` | DOC3 → **DOC3** | carried | — | Stays DOC3 — outside memory-flatten boundary. |
### stays DOC4 (outside memory-flatten boundary) — 5 rows
| obl_id | current → V4 owner | status | legacy_id_aliases | mapping_basis |
|---|---|---|---|---|
| `OBL-D4-01` | DOC4 → **DOC4** | carried | — | Stays DOC4 — outside memory-flatten boundary. |
| `OBL-D4-02` | DOC4 → **DOC4** | carried | — | Stays DOC4 — outside memory-flatten boundary. |
| `OBL-D4-03` | DOC4 → **DOC4** | carried | — | Stays DOC4 — outside memory-flatten boundary. |
| `OBL-D4-04` | DOC4 → **DOC4** | carried | — | Stays DOC4 — outside memory-flatten boundary. |
| `OBL-OPENCLAW-NEW-FINAL-PROMPT-SPAN-01` | DOC4 → **DOC4** | carried | — | Stays DOC4 — outside memory-flatten boundary. |
### stays DOC50 (outside memory-flatten boundary) — 8 rows
| obl_id | current → V4 owner | status | legacy_id_aliases | mapping_basis |
|---|---|---|---|---|
| `OBL-D50-DOC20-SHARED-VIEWPORT-RENDERING-01` | DOC50 → **DOC50** | carried | — | Stays DOC50 — outside memory-flatten boundary. |
| `OBL-D50-DOC23-TASK-SHARED-MANIFEST-01` | DOC50 → **DOC50** | carried | — | Stays DOC50 — outside memory-flatten boundary. |
| `OBL-D50-DOC24-SHARED-PACKET-CONSTRAINTS-01` | DOC50 → **DOC50** | carried | — | Stays DOC50 — outside memory-flatten boundary. |
| `OBL-D50-DOC73-LIBRARY-SHARED-MANIFEST-01` | DOC50 → **DOC50** | carried | — | Stays DOC50 — outside memory-flatten boundary. |
| `OBL-D50-EC-POLICY-SHARED-AUTHORITY-01` | DOC50 → **DOC50** | carried | — | Stays DOC50 — outside memory-flatten boundary. |
| `OBL-D50-HIGH-RISK-FULL-ACCESS-SHARING-01` | DOC50 → **DOC50** | carried | — | Stays DOC50 — outside memory-flatten boundary. |
| `OBL-D50-SHARED-SURFACES-KERNEL-01` | DOC50 → **DOC50** | carried | — | Stays DOC50 — outside memory-flatten boundary. |
| `OBL-D50-TASK-AGENT-SHARED-MANIFEST-GROUNDING-01` | DOC50 → **DOC50** | carried | — | Stays DOC50 — outside memory-flatten boundary. |
### stays DOC6 (outside memory-flatten boundary) — 8 rows
| obl_id | current → V4 owner | status | legacy_id_aliases | mapping_basis |
|---|---|---|---|---|
| `OBL-D6-01` | DOC6 → **DOC6** | carried | — | Stays DOC6 — outside memory-flatten boundary. |
| `OBL-D6-02` | DOC6 → **DOC6** | carried | — | Stays DOC6 — outside memory-flatten boundary. |
| `OBL-D6-03` | DOC6 → **DOC6** | carried | — | Stays DOC6 — outside memory-flatten boundary. |
| `OBL-D6-04` | DOC6 → **DOC6** | carried | — | Stays DOC6 — outside memory-flatten boundary. |
| `OBL-D6-05` | DOC6 → **DOC6** | carried | — | Stays DOC6 — outside memory-flatten boundary. |
| `OBL-D6-06` | DOC6 → **DOC6** | carried | — | Stays DOC6 — outside memory-flatten boundary. |
| `OBL-D6-07` | DOC6 → **DOC6** | carried | — | Stays DOC6 — outside memory-flatten boundary. |
| `OBL-D6-08` | DOC6 → **DOC6** | carried | — | Stays DOC6 — outside memory-flatten boundary. |
### stays DOC7 (outside memory-flatten boundary) — 22 rows
| obl_id | current → V4 owner | status | legacy_id_aliases | mapping_basis |
|---|---|---|---|---|
| `OBL-D7-01` | DOC7 → **DOC7** | carried | — | Stays DOC7 — outside memory-flatten boundary. |
| `OBL-D7-02` | DOC7 → **DOC7** | carried | — | Stays DOC7 — outside memory-flatten boundary. |
| `OBL-D7-03` | DOC7 → **DOC7** | carried | — | Stays DOC7 — outside memory-flatten boundary. |
| `OBL-D7-04` | DOC7 → **DOC7** | carried | — | Stays DOC7 — outside memory-flatten boundary. |
| `OBL-D7-05` | DOC7 → **DOC7** | carried | — | Stays DOC7 — outside memory-flatten boundary. |
| `OBL-D7-06` | DOC7 → **DOC7** | carried | — | Stays DOC7 — outside memory-flatten boundary. |
| `OBL-D7-07` | DOC7 → **DOC7** | carried | — | Stays DOC7 — outside memory-flatten boundary. |
| `OBL-D7-08` | DOC7 → **DOC7** | carried | — | Stays DOC7 — outside memory-flatten boundary. |
| `OBL-D7-09` | DOC7 → **DOC7** | carried | — | Stays DOC7 — outside memory-flatten boundary. |
| `OBL-D7-10` | DOC7 → **DOC7** | carried | — | Stays DOC7 — outside memory-flatten boundary. |
| `OBL-D7-D20-V16-FILING-UNIT-UI-01` | DOC7 → **DOC7** | carried | — | Stays DOC7 — outside memory-flatten boundary. |
| `OBL-D7-D20-V16-K-BINDING-UI-01` | DOC7 → **DOC7** | carried | — | Stays DOC7 — outside memory-flatten boundary. |
| `OBL-D7-NEW-LIBRARY-NAMING-01` | DOC7 → **DOC86** | retargeted at Pass 2c | — | Stage 5R3 Pass 2c retarget (2026-05-28) per ADQ-PASS2-02 narrative — UI rendering rule (technical "corpus" → user-facing "library") is a DOC86 (UI/Inspector/Search) concern in the post-flatten family. Row physically remains in DOC7 §6 section pending reorganization in next OPA patch round; logical owner is DOC86. Peer row `OBL-D24-CORPUS-LIB-MAP-01` (schema-level identity reconciliation) retargets DOC24 → DOC87 per ADQ-PASS2-02. |
| `OBL-D7-NEW-V15-01` | DOC7 → **DOC7** | carried | — | Stays DOC7 — outside memory-flatten boundary. |
| `OBL-D7-NEW-V15-02` | DOC7 → **DOC7** | carried | — | Stays DOC7 — outside memory-flatten boundary. |
| `OBL-D7-NEW-V15-03` | DOC7 → **DOC7** | carried | — | Stays DOC7 — outside memory-flatten boundary. |
| `OBL-D7-NEW-V15-04` | DOC7 → **DOC7** | carried | — | Stays DOC7 — outside memory-flatten boundary. |
| `OBL-D7-NEW-V15-05` | DOC7 → **DOC7** | carried | — | Stays DOC7 — outside memory-flatten boundary. |
| `OBL-D7-NEW-V15-06` | DOC7 → **DOC7** | carried | — | Stays DOC7 — outside memory-flatten boundary. |
| `OBL-D7-NEW-V15-07` | DOC7 → **DOC7** | carried | — | Stays DOC7 — outside memory-flatten boundary. |
| `OBL-D7-NEW-V15-08` | DOC7 → **DOC7** | carried | — | Stays DOC7 — outside memory-flatten boundary. |
| `OBL-D7-NEW-V15-09` | DOC7 → **DOC7** | carried | — | Stays DOC7 — outside memory-flatten boundary. |
### stays DOC72 (outside memory-flatten boundary) — 29 rows
| obl_id | current → V4 owner | status | legacy_id_aliases | mapping_basis |
|---|---|---|---|---|
| `OBL-D23-A-V6-INJECTION-METADATA-IMPL-NEUTRAL-01` | DOC72 → **DOC72** | carried | — | Stays DOC72 — outside memory-flatten boundary. |
| `OBL-D72-AGENT-IDENTITY-STUB-CACHE-CONTRACT-01` | DOC72 → **DOC72** | carried | — | Stays DOC72 — outside memory-flatten boundary. |
| `OBL-D72-D24-DECAY-FLOOR-01` | DOC72 → **DOC72** | carried | — | Stays DOC72 — outside memory-flatten boundary. |
| `OBL-D72-DESIGN-CASEBOOK-01` | DOC72 → **DOC72** | carried | — | Stays DOC72 — outside memory-flatten boundary. |
| `OBL-D72-DIRECTIVE-MEMORY-DIRECTIVE-01` | DOC72 → **DOC72** | carried | — | Stays DOC72 — outside memory-flatten boundary. |
| `OBL-D72-NEW-01` | DOC72 → **DOC72** | carried | — | Stays DOC72 — outside memory-flatten boundary. |
| `OBL-D72-NEW-02` | DOC72 → **DOC72** | carried | — | Stays DOC72 — outside memory-flatten boundary. |
| `OBL-D72-NEW-03` | DOC72 → **DOC72** | carried | — | Stays DOC72 — outside memory-flatten boundary. |
| `OBL-D72-NEW-04` | DOC72 → **DOC72** | carried | — | Stays DOC72 — outside memory-flatten boundary. |
| `OBL-D72-NEW-05` | DOC72 → **DOC72** | carried | — | Stays DOC72 — outside memory-flatten boundary. |
| `OBL-D72-NEW-DOMAIN-PROFILE-MAPPING-01` **(NEW)** | (absent in OP-A) → **DOC72** | NEW | — | D3a ADD (high) — src DOC24_R3_1_1.md; absent in V3.18. |
| `OBL-D72-NEW-NODEKIND-EXPORT-01` | DOC72 → **DOC72** | carried | — | Stays DOC72 — outside memory-flatten boundary. |
| `OBL-D72-NEW-NOVELTY-01` | DOC72 → **DOC72** | carried | — | Stays DOC72 — outside memory-flatten boundary. |
| `OBL-D72-NEW-PBE-CLUSTER-01` | DOC72 → **DOC73** | retargeted at publication | — | ADQ-PASS2-01 resolved at Pass 2 ratification (2026-05-28): DOC73 owns the schema (PBE is producer; schema lives with producer per OPA-001 Assertion + ADQ-219 CU pattern); DOC72 stores graph payload; EC writes durably. Row physically remains in DOC72 section pending reorganization in next OPA patch round; logical owner is DOC73. |
| `OBL-D72-NEW-RELATIONSHIP-EXTENSIONS-01` **(NEW)** | (absent in OP-A) → **DOC72** | NEW | — | D3a ADD (high) — src DOC24_R3_1_1.md; absent in V3.18. |
| `OBL-D72-NEW-RETRACTION-PROPAGATION-01` **(NEW)** | (absent in OP-A) → **DOC72** | NEW | — | D3a ADD (high) — src DOC24_R3_1_1.md; absent in V3.18. |
| `OBL-D72-NEW-SUBAGENT-NODE-KIND-01` | DOC72 → **DOC72** | carried | — | Stays DOC72 — outside memory-flatten boundary. |
| `OBL-D72-NEW-V15-01` | DOC72 → **DOC72** | carried | — | Stays DOC72 — outside memory-flatten boundary. |
| `OBL-D72-NEW-V15-02` | DOC72 → **DOC72** | carried | — | Stays DOC72 — outside memory-flatten boundary. |
| `OBL-D72-NEW-V15-03` | DOC72 → **DOC72** | carried | — | Stays DOC72 — outside memory-flatten boundary. |
| `OBL-D72-NEW-V15-04` | DOC72 → **DOC72** | carried | — | Stays DOC72 — outside memory-flatten boundary. |
| `OBL-D72-STORAGE-REGISTRY-CONSUMER-01` | DOC72 → **DOC72** | carried | — | Stays DOC72 — outside memory-flatten boundary. |
| `OBL-D72-TASK-DESIGN-GOALS-01` | DOC72 → **DOC72** | carried | — | Stays DOC72 — outside memory-flatten boundary. |
| `OBL-D72-TASK-DESIGN-PATTERN-STORE-01` | DOC72 → **DOC72** | carried | — | Stays DOC72 — outside memory-flatten boundary. |
| `OBL-D72-TASKRUN-EXECUTION-TRACE-01` | DOC72 → **DOC72** | carried | — | Stays DOC72 — outside memory-flatten boundary. |
| `OBL-D72-V16-DOCREL-01` | DOC72 → **DOC72** | carried | — | Stays DOC72 — outside memory-flatten boundary. |
| `OBL-D72-V16-K-SOURCE-REGISTRY-01` | DOC72 → **DOC72** | carried | — | Stays DOC72 — outside memory-flatten boundary. |
| `OBL-K-CROSSCORPUS-DEDUP-01` | V1.6 Group K (source bindings) → **DOC72** | carried | — | Stays V1.6 Group K (source bindings) — outside memory-flatten boundary. |
| `OBL-XDOC-MODEL-CLASS-AXIS-01` | DOC72 → **DOC72** | carried | — | Stays DOC72 — outside memory-flatten boundary. |
### stays DOC73 (outside memory-flatten boundary) — 27 rows
| obl_id | current → V4 owner | status | legacy_id_aliases | mapping_basis |
|---|---|---|---|---|
| `OBL-A-AUTHORITY-EAGER-V16-01` | V1.6 Group A (EC + DOC73 kernel) → **DOC73** | carried | — | Stays V1.6 Group A (EC + DOC73 kernel) — outside memory-flatten boundary. |
| `OBL-D73-B2-SOURCEINSTANCE-01` | DOC73 → **DOC73** | carried | — | Stays DOC73 — outside memory-flatten boundary. |
| `OBL-D73-CSB-PRED-01` | DOC73 → **DOC73** | carried | — | Stays DOC73 — outside memory-flatten boundary. |
| `OBL-D73-G-SIM-EFFECT-POLICY-01` | DOC73 → **DOC73** | carried | — | Stays DOC73 — outside memory-flatten boundary. |
| `OBL-D73-J-METADATA-LOCK-01` | DOC73 → **DOC73** | carried | — | Stays DOC73 — outside memory-flatten boundary. |
| `OBL-D73-K-BATCH-OPERATION-01` | DOC73 → **DOC73** | carried | — | Stays DOC73 — outside memory-flatten boundary. |
| `OBL-D73-K-BINDING-TARGET-KIND-01` | DOC73 → **DOC73** | carried | — | Stays DOC73 — outside memory-flatten boundary. |
| `OBL-D73-LIBRARY-NOT-TKP-01` | DOC73 → **DOC73** | carried | — | Stays DOC73 — outside memory-flatten boundary. |
| `OBL-D73-LIBRARY-TASK-BINDING-01` | DOC73 → **DOC73** | carried | — | Stays DOC73 — outside memory-flatten boundary. |
| `OBL-D73-NEW-01` | DOC73 → **DOC73** | carried | — | Stays DOC73 — outside memory-flatten boundary. |
| `OBL-D73-NEW-02` | DOC73 → **DOC73** | carried | — | Stays DOC73 — outside memory-flatten boundary. |
| `OBL-D73-NEW-03` | DOC73 → **DOC73** | carried | — | Stays DOC73 — outside memory-flatten boundary. |
| `OBL-D73-NEW-04` | DOC73 → **DOC73** | carried | — | Stays DOC73 — outside memory-flatten boundary. |
| `OBL-D73-NEW-04D` | DOC73 → **DOC73** | carried | — | Stays DOC73 — outside memory-flatten boundary. |
| `OBL-D73-NEW-05` | DOC73 → **DOC73** | carried | — | Stays DOC73 — outside memory-flatten boundary. |
| `OBL-D73-NEW-06` | DOC73 → **DOC73** | carried | — | Stays DOC73 — outside memory-flatten boundary. |
| `OBL-D73-NEW-07` | DOC73 → **DOC73** | carried | — | Stays DOC73 — outside memory-flatten boundary. |
| `OBL-D73-NEW-08` | DOC73 → **DOC73** | carried | — | Stays DOC73 — outside memory-flatten boundary. |
| `OBL-D73-NEW-09` | DOC73 → **DOC73** | carried | — | Stays DOC73 — outside memory-flatten boundary. |
| `OBL-D73-NEW-11` | DOC73 → **DOC73** | carried | — | Stays DOC73 — outside memory-flatten boundary. |
| `OBL-D73-NEW-LIBRARY-PROMOTION-FROM-WORKSPACE-01` | DOC73 → **DOC73** | carried | — | Stays DOC73 — outside memory-flatten boundary. |
| `OBL-D73-V16-BRIEF-STATIC-01` | DOC73 → **DOC73** | carried | — | Stays DOC73 — outside memory-flatten boundary. |
| `OBL-D73-V16-K-BINDING-NORMALIZATION-01` | DOC73 → **DOC73** | carried | — | Stays DOC73 — outside memory-flatten boundary. |
| `OBL-D73-V16-K-CONTRIBUTION-LEDGER-01` | DOC73 → **DOC73** | carried | — | Stays DOC73 — outside memory-flatten boundary. |
| `OBL-D73-V16-K-LIFECYCLE-01` | DOC73 → **DOC73** | carried | — | Stays DOC73 — outside memory-flatten boundary. |
| `OBL-D73-V16-K-PREDICATE-01` | DOC73 → **DOC73** | carried | — | Stays DOC73 — outside memory-flatten boundary. |
| `OBL-D73-V16-MECHANISM4-01` | DOC73 → **DOC73** | carried | — | Stays DOC73 — outside memory-flatten boundary. |
### stays EC Core / DocIndex (executor kernel — outside flatten boundary) — 71 rows
| obl_id | current → V4 owner | status | legacy_id_aliases | mapping_basis |
|---|---|---|---|---|
| `OBL-A-AUDIT-REPLAY-LLM-01` | V1.6 Group A (EC + DOC73 kernel) → **EC** | carried | — | Stays V1.6 Group A (EC + DOC73 kernel) — outside memory-flatten boundary. |
| `OBL-A-COST-CIRCUIT-01` | V1.6 Group A (EC + DOC73 kernel) → **EC** | carried | — | Stays V1.6 Group A (EC + DOC73 kernel) — outside memory-flatten boundary. |
| `OBL-A-DOC72-BRIDGE-01` | V1.6 Group A (EC + DOC73 kernel) → **EC** | carried | — | Stays V1.6 Group A (EC + DOC73 kernel) — outside memory-flatten boundary. |
| `OBL-A-SIMULATE-COMPOSE-V16-01` | V1.6 Group A (EC + DOC73 kernel) → **EC** | carried | — | Stays V1.6 Group A (EC + DOC73 kernel) — outside memory-flatten boundary. |
| `OBL-A-SUBGRAPH-DESC-01` | V1.6 Group A (EC + DOC73 kernel) → **EC** | carried | — | Stays V1.6 Group A (EC + DOC73 kernel) — outside memory-flatten boundary. |
| `OBL-A-TAINT-PROPAGATION-V16-01` | V1.6 Group A (EC + DOC73 kernel) → **EC** | carried | — | Stays V1.6 Group A (EC + DOC73 kernel) — outside memory-flatten boundary. |
| `OBL-D23-A-V6-ATOMIC-STORAGE-REF-WRITES-01` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-07` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-08` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-09` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-10` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-11` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-12` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-13` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-14` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-15` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-16` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-17` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-AGT-01` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-AGT-02` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-AGT-03` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-AGT-04` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-AGT-05` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-AGT-06` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-AGT-07` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-AGT-08` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-AUD-01` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-AUD-02` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-AUD-03` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-AUD-04` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-AUD-05` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-BDSM-V65-COMPILER-ORCHESTRATOR-01` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-CSB-POLICY-01` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-DRIFT-DETECTION-EVAL-GATING-01` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-ELNOR-CREATED-TASK-RECEIPT-01` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-INCOGNITO-EFFECTIVE-ENFORCEMENT-01` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-NEW-01` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-NEW-02` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-NEW-03` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-NEW-04` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-NEW-AGENT-COMMAND-CLOSURE-01` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-NEW-AGENT-CONFIG-SUGGESTED-USE-CASES-01` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-NEW-BLOB-01` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-NEW-CAPACITY-LEASE-01` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-NEW-MIGR-01` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-NEW-PBE-RECEIPT-01` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-NEW-SESSION-CONTEXT-01` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-NEW-SUBAGENT-BACKGROUND-WORK-REGISTRY-01` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-NEW-SUBAGENT-STANDING-ORDER-V52-01` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-NO-HIDDEN-GRAPH-RUNS-01` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-RRB-01` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-RRB-02` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-RRB-03` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-RRB-04` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-STORAGE-REG-V16-01` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-TASK-AGENT-IDENTITY-01` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-TASK-AGENT-RUNTIME-PROFILE-01` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-TASK-COMMAND-ROUTES-01` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-TKP-STATE-DRIFT-01` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-V16-BINDING-CONTRIBUTION-LEDGER-01` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-V16-BINDING-FAILURE-POLICY-01` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-V16-K-BATCH-PARTIAL-01` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-V16-K-FANOUT-LIMIT-01` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-V16-K-ROUTING-OUTBOX-01` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-V16-OWNER-DOC-ADAPTER-01` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EC-V16-SESSION-CAPABILITY-MANIFEST-01` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
| `OBL-EXT-FSM-EXEC-01` **(NEW)** | V1.6 Group A (EC + DOC73 kernel) → **EC** | NEW-SPLIT | OBL-EXT-FSM-01 | Bucket B split child of OBL-EXT-FSM-01 — kernel records FSM transitions as extraction_state_change ops. See BUCKET_B_SPLITS.md. |
| `OBL-K-CAPACITY-EXHAUSTION-01` | V1.6 Group K (source bindings) → **EC** | carried | — | Stays V1.6 Group K (source bindings) — outside memory-flatten boundary. |
| `OBL-K-CAPACITY-GOVERNANCE-V16-01` | V1.6 Group K (source bindings) → **EC** | carried | — | Stays V1.6 Group K (source bindings) — outside memory-flatten boundary. |
| `OBL-K-MANIFEST-DURABLE-01` | V1.6 Group K (source bindings) → **EC** | carried | — | Stays V1.6 Group K (source bindings) — outside memory-flatten boundary. |
| `OBL-XDOC-EC-POLICY-SIGNALS-01` | EC Core / DocIndex → **EC** | carried | — | Stays EC Core / DocIndex — outside memory-flatten boundary. |
### UNCHANGED — V1.6 cross-cutting release coordination (no DOC80 target) — 2 rows
| obl_id | current → V4 owner | status | legacy_id_aliases | mapping_basis |
|---|---|---|---|---|
| `OBL-V16-CONFORMANCE-CHECK-CI-01` | V1.6 release coordination → **UNCHANGED** | carried | — | Cross-cutting V1.6 release coordination; not a memory-flatten schema — target unchanged. |
| `OBL-V16-REL-01` | V1.6 release coordination → **UNCHANGED** | carried | — | Cross-cutting V1.6 release coordination; not a memory-flatten schema — target unchanged. |
---
## 6.A — Body fields for 7 ADD rows (Stage 5R3 Pass 2c appendix)
The 504 surviving-from-V3.18 rows in §6 inherit their canonical body fields verbatim from archived `OPA_V3_18.md`. The 7 ADD rows minted at Stage 5R3 Pass 2 have no V3.18 body to inherit; starter body fields are attached here per Pass 2c #5 (external review finding). Full acceptance criteria, depends_on, blocks, fixture refs, and calibrated-against fields are completed at Stage 6 charter authoring.
Format per row: `obl_id` · V4 owner · source spec § · why · starter acceptance · charter input.
### 1. `OBL-PROPA-NEW-SOURCE-EXCLUSION-FILTER-01` → DOC81
- **Source:** `Current Specs/DOC24/DOC24_R3_1_1.md` §27 (per line 2128 cross-doc obligation reference).
- **Why:** R3.1 introduces source-exclusion filtering at the PropA scope/policy layer; without an obligation row, the filter rule is not tracked as a PropA → DOC81 (E1+E2) responsibility post-flatten.
- **Starter acceptance:** PropA emits source-exclusion filter rule as part of `MemoryPolicyDecision` input; EC (under DOC81 scope/policy execution) enforces the filter at retrieval-eligibility evaluation; exclusion reasons logged with policy-decision provenance.
- **Charter input:** DOC81 / E1+E2 charter (scope/policy lockstep).
### 2. `OBL-BDSM-NEW-DEADLINE-BOOST-01` → DOC85
- **Source:** `Current Specs/DOC24/DOC24_R3_1_1.md` §35 calendar warming + §37.1 (per line 5289 + 6550 references).
- **Why:** R3 calendar-warming feature surfaces deadline-adjacent entities proactively via a small `force_level` boost in the BDSM Matrix; needs a BDSM-side learning-architecture row to track the boost mechanism as a learning signal.
- **Starter acceptance:** BDSM Matrix accepts deadline-adjacency input; `force_level` boost is bounded and traceable; boost is proof-gated (no boost without final-prompt-proof per DOC85 §10.7 / OPA-011); learning signal is replay-completeness preserving.
- **Charter input:** DOC85 / E9 learning charter.
### 3. `OBL-D25-NEW-PREFLIGHT-LEASE-01` → DOC25
- **Source:** `Current Specs/DOC24/DOC24_R3_1_1.md` (per line 6573 obligation reference).
- **Why:** Ingestion-preflight lease semantics (DOC25-side) needed to prevent double-ingestion races and provide deterministic preflight quality scoring before durable ingestion commits.
- **Starter acceptance:** DOC25 issues a preflight lease before parse-quality scoring; lease has TTL + holder identity; lease release on commit / abort / TTL; concurrent lease attempts are serialized.
- **Charter input:** DOC25 stays outside memory-flatten boundary; this row is charter-input for DOC25's own next revision, NOT a DOC80-family charter.
### 4. `OBL-D72-NEW-DOMAIN-PROFILE-MAPPING-01` → DOC72
- **Source:** `Current Specs/DOC24/DOC24_R3_1_1.md` §28 (per line 4957 cross-doc obligation reference); ties to ADQ-313 (domain profile registry).
- **Why:** `DomainSignalProfile` owns the per-domain mapping consumed by R3.1; needs a DOC72-side graph-schema obligation row to register the mapping in graph storage.
- **Starter acceptance:** DOC72 graph schema includes `DomainSignalProfile` node kind; per-domain mapping is durably stored; R3.1 consumes via the profile (read-only); domain profile registry per ADQ-313 is the upstream contract.
- **Charter input:** DOC72 stays outside memory-flatten boundary; this row is charter-input for DOC72's own next revision.
### 5. `OBL-D72-NEW-RELATIONSHIP-EXTENSIONS-01` → DOC72
- **Source:** `Current Specs/DOC24/DOC24_R3_1_1.md` (per line 1939 cross-doc obligation reference).
- **Why:** R3 introduces graph-relationship extensions; DOC72 graph schema must export the extension surface so consumers (R3.1, DOC82 Assertion family, DOC87 membership) can bind against named relationship kinds rather than ad-hoc edges.
- **Starter acceptance:** DOC72 publishes graph-relationship extension registry with stable kind identifiers; extensions are owner-attributed; consumers bind by name; no silent kind drift.
- **Charter input:** DOC72 stays outside memory-flatten boundary; this row is charter-input for DOC72's own next revision.
### 6. `OBL-D72-NEW-RETRACTION-PROPAGATION-01` → DOC72
- **Source:** `Current Specs/DOC24/DOC24_R3_1_1.md` (per line 2268 cross-doc obligation reference).
- **Why:** Graph-side retraction propagation needed when a source revocation triggers `CascadingSourceInvalidation` (DOC81 envelope per Owner Map; payload at DOC82; execution at EC); DOC72 graph storage must propagate retraction effects across affected nodes/edges.
- **Starter acceptance:** DOC72 emits retraction-propagation events for revoked-source-bound nodes; ordered with respect to EC durable-write serialization; consumed by DOC85 (learning-signal eligibility) and DOC86 (Inspector safe-label / suppression); fan-out bounded per `MemoryOperationQuota` (Skeletal §10.16 — `max_source_invalidation_fanout_per_cycle`).
- **Charter input:** DOC72 stays outside memory-flatten boundary; this row is charter-input for DOC72's own next revision; cross-doc seam with DOC81 envelope (OPA-024 / CascadingSourceInvalidation).
### 7. `OBL-D25-DEGRADED-STATE-REPORTING-01` → DOC83 (D13a; confidence=medium)
- **Source:** `Current Specs/DOC25/...` §24.3.6 (per Pass 1 D13a architect decision — see `PASS_1_ARCHITECT_DECISIONS_RESOLVED.md`).
- **Why:** Ingestion degraded-state signals (parse-quality fail / unknown / unacceptable per ADQ-303) need an explicit reporting obligation so degraded-state surfaces consistently at the DOC83 extraction triage layer and informs candidate disposition (ABC §7.7 Step 0).
- **Starter acceptance:** DOC25 emits degraded-state report at parse-quality-sidecar emission time; DOC83 extraction triage consumes the report at Step 0; degraded-source candidates either reject_not_memory or route to review_queue per ABC §7.8 disposition enum; reports are replay-completeness preserving.
- **Charter input:** DOC83 / E5 extraction charter; ties to ADQ-303 (parse-quality numeric thresholds — deferred to DOC25/E4).
- **Confidence:** medium. Pass 1 D13a said "DOC83 or DOC85, Pass 2 decides." Pass 2 chose DOC83 (extraction-side reporting) as the natural home; DOC85 (learning-side reporting) is the alternative if Stage 6 E5/E9 finds the signal is more learning-oriented than extraction-oriented.
---
## 6.Z — Stage 6 E0 design-discussion additions (2026-05-30, post-Pass-2 wave)
Added per the Stage 6 E0 / DOC80-core design discussion (ADQ-406 / ADQ-407 / ADQ-408). NEW obligations with no V3.18 body to inherit; full bodies inline (mirroring the §6.A ADD-row convention). Listed as a dated wave; to be filed into the §6 per-owner sub-sections + row-count reconciliation at the next OPA patch round.
| obl_id | current → V4 owner | status | mapping_basis |
|---|---|---|---|
| `OBL-D81-TOPIC-COLLECTION-SUPPRESSION-01` **(NEW)** | (absent in OP-A) → **DOC81** | NEW | Stage 6 E0 design 2026-05-30; ADQ-406 (extends ADQ-205). Topic-level collection suppression / "privacy topics." |
| `OBL-EC-GLOBAL-RECYCLE-BIN-01` **(NEW)** | (absent in OP-A) → **EC** | NEW | Stage 6 E0 design 2026-05-30; ADQ-407. Global deletion-&-recovery service + retention-window setting. |
| `OBL-EC-RESTORE-FROM-BACKUP-01` **(NEW)** | (absent in OP-A) → **EC** | NEW | Stage 6 E0 design 2026-05-30; ADQ-408. Restore/provision-from-backup into a fresh install. |
### §6.Z bodies
**`OBL-D81-TOPIC-COLLECTION-SUPPRESSION-01` → DOC81**
- **source:** ADQ-406 (extends ADQ-205); EC Core Addendum A V3.3 §1 / §1.3; Stage 6 E0 design 2026-05-30.
- **why:** A second, topic-level privacy layer atop EC §1 per-surface toggles — user defines "privacy topics" (incl. dummy topics) whose subject matter is never collected ("don't save memories about <topic>").
- **obligation:** DOC81 defines `collection_mode` (collect / suppress / exclude) on `TopicCollectionDirective` + the suppression governance rules (memory-family seam per ADQ-205); the EC §1 collection gate consults it at admission and refuses collection for content mapped to a `suppress` topic.
- **acceptance:** content tagged to a suppression topic is not collected/persisted; a why-blocked reason code is emitted; the directive is user-editable; composes with EC §1 surface toggles + §1.3 incognito (most-restrictive wins).
- **depends_on:** ADQ-205 (TopicCollectionDirective seam); DOC87 Topic identity (ADQ-220); EC §1 collection gate.
- **blocks:** per-topic privacy feature (DOC81 / E1+E2).
**`OBL-EC-GLOBAL-RECYCLE-BIN-01` → EC**
- **source:** ADQ-407; EC Core Addendum A V3.3 §1.1 / §4 / §8; Stage 6 E0 design 2026-05-30.
- **why:** Accidental-deletion protection across ALL object types, not memory-only. EC already owns the machinery (tombstone, gc_policy purge/archive/tombstone, §8 retention matrix, §4 BackgroundJobOrchestrator).
- **obligation:** global deletion-&-recovery service — two-stage soft-delete/tombstone → retention window → restore OR purge — that documents, artifacts, chats, tasks, presets, memory, and background deletions conform to; a global retention-window SETTING in EC §1.1 ("Empty now" / "Save N days", changeable); recycle-bin entries carry a human-readable label + openable preview for restore. DOC80 memory deletion conforms + adds the `ErasureMFC` / `RestoreMFC` proof layer.
- **acceptance:** deleting any conforming object soft-deletes it (recoverable); restore-by-label works; retention window is a single global setting; hard-purge is gated (retention expiry or explicit authorization; legal-hold blocks); expiry sweep runs as an EC §4 background job.
- **depends_on:** EC §1.1, §4, §8; object-owner specs (DOC23 tasks, DOC25 documents/sources, DOC20 presets/UI, DOC80 memory).
- **blocks:** global recycle-bin / safe-deletion feature; DOC80 memory deletion conforms.
**`OBL-EC-RESTORE-FROM-BACKUP-01` → EC**
- **source:** ADQ-408; EC Core Addendum A V3.3 §7 / §8; Stage 6 E0 design 2026-05-30.
- **why:** New-computer / disaster recovery — back up memories on the old machine and re-load into a fresh ELNOR install.
- **obligation:** named restore / provision-from-backup flow composing EC §8 `full_raw_backup` export → fresh-install import (the §7 import/merge case is trivial when the destination store is empty), with verify-on-completion.
- **acceptance:** a full_raw_backup exported on one machine imports cleanly into an empty install; user can re-load 6+ months of memories on a new computer; import is verified.
- **depends_on:** EC §8 (export/backup), §7 (import/merge, migration contracts).
- **blocks:** new-computer restore capability.
## 6.Z2 — Stage 6 E0 egress-enforcement additions (2026-05-30; from the egress-privilege audit, E0 card §22 / UR-49–53)
Added per the Stage 6 E0 egress-privilege audit of EC Core Add A V3.3, PropA R6.3, DOC24 R3.1.1, KDA R3 (E0 card §22). The egress *policy model* already exists (PropA P1 classifier; §2 outbound matrix incl. `email_outbound`/`agent_messaging`; L783–784 fail-closed; KDA §3.2C `enforceKdaRenderPolicy`); these obligations BIND it so every send-site is provably gated. NEW obligations with no V3.18 body to inherit; full bodies inline (mirroring the §6.A / §6.Z convention). Dated wave; to be filed into the §6 per-owner sub-sections + row-count reconciliation at the next OPA patch round (together with the §6.Z wave).
| obl_id | current → V4 owner | status | mapping_basis |
|---|---|---|---|
| `OBL-EC-D24-ACTION-EGRESS-POLICY-GATE-01` **(NEW)** | (absent) → **EC / DOC24** | NEW | E0 audit 2026-05-30; UR-49/53. Policy-decision gate step in SharedActionHandlerLayer (DOC24 §21.1). |
| `OBL-D24-DELIVERED-SOURCE-LEDGER-01` **(NEW)** | (absent) → **DOC24** | NEW | E0 audit 2026-05-30; UR-52/53 + CODEX probe. Per-turn delivered/truncated/dropped source ledger at packet assembly (= MemoryCoordinationTrace per-source record). |
| `OBL-KDA-EGRESS-RENDER-ROUTING-01` **(NEW)** | (absent) → **DOC84** | NEW | E0 audit 2026-05-30; UR-53. Every egress path routes through `enforceKdaRenderPolicy` (extends `OBL-KDA-R3-PROPA-RENDER-POLICY-01`). |
| `OBL-PROPA-OUTBOUND-MATRIX-BINDING-01` **(NEW)** | (absent) → **DOC81** | NEW | E0 audit 2026-05-30; UR-49/53. Mechanically bind the PropA §2 outbound matrix; confirm `email_outbound`+`agent_messaging`. |
| `OBL-D12-CHANNEL-PROJECTION-EGRESS-01` **(NEW)** | (absent) → **DOC12** | NEW | E0 audit 2026-05-30; UR-52/53. Channel projection applies egress policy before dispatch. |
| `OBL-D84-D85-LEARNING-CONSUME-SOURCE-LEDGER-01` **(NEW)** | (absent) → **DOC84 / DOC85** | NEW | E0 audit 2026-05-30; UR-53. Learning consumes the source ledger for attribution. |
| *(extend)* `OBL-D11-NEW-FINAL-PROMPT-SPAN-01` (DOC11) + `OBL-OPENCLAW-NEW-FINAL-PROMPT-SPAN-01` (DOC4) | carried (existing) | EXTEND | E0 audit 2026-05-30 + CODEX probe. Add verbatim as-sent capture + `OPENCLAW_CACHE_TRACE` + post-handoff-trim note. |
### §6.Z2 bodies
**`OBL-EC-D24-ACTION-EGRESS-POLICY-GATE-01` → EC / DOC24**
- **source:** E0 card §22 / UR-49 / INV-E0-EGRESS-1; DOC24 R3.1.1 §21.1 SharedActionHandlerLayer; PropA R6.3 §2 / L94; EC Core Add A V3.3 PolicyDecisionEngine.
- **why:** PropA L94 mandates the EC PolicyDecisionEngine "at every outbound / injection / sync boundary," but DOC24 §21.1's action steps (validate-envelope → idempotency → persist-receipt → emit-events) include no policy-decision gate; nothing fails if an outbound action carries no destination-correct decision.
- **obligation:** insert a policy-decision gate step into SharedActionHandlerLayer (validate → **resolve destination PolicyDecision** → execute). Any outbound action whose destination is in PropA's §2 outbound set MUST carry an `E0EgressAttestation` (DOC80) with a `policy_decision_id` whose destination === the action's destination; absent / mismatched / permissive-by-omission → fail closed.
- **acceptance:** an outbound action with no destination-matched decision is refused (fail-closed) with a receipt; `same_machine_local_runtime` is the only class allowed without a lookup; lints `egress.outbound_action_without_destination_policy_decision` + `egress.destination_mismatch_between_action_and_policy` fail the build on violation.
- **depends_on:** EC PolicyDecisionEngine; PropA §2 matrix; DOC80 `E0EgressAttestation` (INV-E0-EGRESS-1).
- **blocks:** provable egress enforcement (no send without a destination-correct decision).
**`OBL-D24-DELIVERED-SOURCE-LEDGER-01` → DOC24**
- **source:** E0 card §22 / UR-52/53; CODEX final-prompt capture probe 2026-05-30 (delivered-vs-truncated ledger absent in the audited build); DOC24 packet/context assembly.
- **why:** Context assembly does string-slicing (memory ≤2200 chars; gateway prompt ≤18000 chars) with only a partial EC `truncated_count`; there is no per-turn record of which source was delivered full / truncated N→M / dropped. The egress binding and the learning feature need this same record.
- **obligation:** emit a per-turn, per-source **delivered/truncated/dropped ledger** during packet assembly (the MemoryCoordinationTrace per-source record): `{source_ref, disposition: delivered|truncated|dropped, original_chars, delivered_chars, reason}`.
- **acceptance:** every assembled turn produces a ledger covering all candidate sources; truncations/drops carry a reason; the ledger is the single primitive consumed by both egress attestation and learning (no second ledger).
- **depends_on:** DOC24 context assembly; MemoryCoordinationTrace; EC assembly_log (`truncated_count`).
- **blocks:** learning attribution (DOC85) + egress source accounting.
**`OBL-KDA-EGRESS-RENDER-ROUTING-01` → DOC84**
- **source:** E0 card §22 / UR-53; KDA R3 §3.2C `enforceKdaRenderPolicy`; existing `OBL-KDA-R3-PROPA-RENDER-POLICY-01`.
- **why:** `enforceKdaRenderPolicy` is a real destination-aware firewall, but it only governs render paths it is actually called on; a non-render egress (raw-artifact attach, channel projection) can bypass it.
- **obligation:** require EVERY egress path (render, raw-artifact export, channel projection, connector send) to route through `enforceKdaRenderPolicy` (or an equivalent destination-policy gate) before emission; the policy must receive the destination decision, not a caller-supplied permissive class.
- **acceptance:** no egress path emits without the render/destination policy having run; `policy.bare_render_action` fails the build on a render/emit without a resolved policy.
- **depends_on:** `OBL-KDA-R3-PROPA-RENDER-POLICY-01`; DOC80 `E0EgressAttestation`; PropA §2 matrix.
- **blocks:** complete render/egress coverage.
**`OBL-PROPA-OUTBOUND-MATRIX-BINDING-01` → DOC81**
- **source:** E0 card §22 / UR-49/53; PropA R6.3 §2 `SharingRuleSchema` (L1080–1098) + L783–784 fail-closed + L94.
- **why:** The §2 outbound matrix (sensitivity × destination → action; finding × destination → tightening) and the fail-closed default are specified, but no mechanical check confirms every outbound call resolves against the matrix.
- **obligation:** DOC81 (policy) binds the PropA §2 outbound matrix to a mechanical evaluation invoked by the SharedActionHandlerLayer gate; confirm `email_outbound` + `agent_messaging` are covered destinations and that `unclassified`/pending states fail closed for all non-local destinations.
- **acceptance:** every outbound destination has a matrix entry; an unclassified source fails closed for all non-local destinations; `email_outbound`/`agent_messaging` resolve a destination decision; matrix evaluation is deterministic + receipted.
- **depends_on:** PropA §2 matrix; EC PolicyDecisionEngine; `OBL-EC-D24-ACTION-EGRESS-POLICY-GATE-01`.
- **blocks:** outbound matrix enforcement (incl. email + agent messaging + future networking).
**`OBL-D12-CHANNEL-PROJECTION-EGRESS-01` → DOC12**
- **source:** E0 card §22 / UR-52/53; DOC11 §4D / DOC12 channel projection.
- **why:** Room/forum content projected to external channels (Discord/WhatsApp/etc.) is an egress; projection must not dispatch before the destination policy runs.
- **obligation:** DOC12 channel projection applies the destination egress policy (via the SharedActionHandlerLayer gate / `enforceKdaRenderPolicy`) before dispatching a projected payload.
- **acceptance:** a projected payload containing privileged/sensitive content is blocked/redacted per the destination decision before dispatch; the projection carries an `E0EgressAttestation`.
- **depends_on:** `OBL-EC-D24-ACTION-EGRESS-POLICY-GATE-01`; `OBL-KDA-EGRESS-RENDER-ROUTING-01`.
- **blocks:** channel-projection egress safety.
**`OBL-D84-D85-LEARNING-CONSUME-SOURCE-LEDGER-01` → DOC84 / DOC85**
- **source:** E0 card §22 / UR-53; CODEX probe 2026-05-30; DOC85 learning (final-prompt-proof-gated).
- **why:** Learning attribution ("did injecting source X help?") requires the delivered/truncated/dropped ledger + the verbatim final prompt; both must be available and proof-eligible.
- **obligation:** DOC84/DOC85 consume the `OBL-D24-DELIVERED-SOURCE-LEDGER-01` ledger + the final-prompt capture as learning-eligibility inputs; no learning event without a final-prompt manifest + source ledger.
- **acceptance:** a learning event references a final-prompt manifest + the per-source ledger; events lacking either are ineligible (existing BDSM final-prompt-proof gate).
- **depends_on:** `OBL-D24-DELIVERED-SOURCE-LEDGER-01`; `OBL-D11/OPENCLAW-FINAL-PROMPT-SPAN` (extended); BDSM final-prompt-proof gate.
- **blocks:** trustworthy learning attribution.
**Extension — `OBL-D11-NEW-FINAL-PROMPT-SPAN-01` (DOC11) + `OBL-OPENCLAW-NEW-FINAL-PROMPT-SPAN-01` (DOC4)**
- **source:** E0 card §22 / UR-53; CODEX final-prompt capture probe 2026-05-30.
- **why:** CODEX confirmed the assembled prompt/messages exist at the model-call site and the as-sent body matches the provider body exactly; OpenClaw `OPENCLAW_CACHE_TRACE` can record provider-bound system/prompt/messages; provider-side post-handoff trimming is the only non-recoverable residual.
- **extension:** add to these carried obligations — (a) capture the verbatim as-sent request body per turn; (b) support `OPENCLAW_CACHE_TRACE` for provider-bound context; (c) record a post-handoff-trim note when `limitHistoryTurns` / context-guard mutate after handoff. No new row; annotate the carried rows. Owners unchanged (`OBL-OPENCLAW-…` stays under DOC4).
- **acceptance:** one turn yields a verbatim as-sent capture; cache-trace recoverable when enabled; post-handoff trim flagged.
## 6.Z3 — Stage 6 E0 §22 R3 fold: egress lock corrections + new cross-doc rows (2026-05-31; E0 card R3)
R3 folded the §22 egress fixes + the non-egress lock patch (see `DOC80 S6 E0 RT Adj Card R3.md`). This wave records the **two genuinely-new** cross-doc obligations (PropA L1116 patch; EC-owned destruction ledger), the **new egress owner rows** the §6.Z2 wave did not yet carry, the **Phase-2 flip** gate row, and **R3 corrections** to two §6.Z2 rows. Discharge like §8; file into the §6 per-owner sub-sections at the next OPA patch round.
| obl_id | current → V4 owner | status | mapping_basis |
|---|---|---|---|
| `OBL-PROPA-LOCALFILEEXPORT-OUTBOUND-PATCH-01` **(NEW)** | (absent) → **DOC81 / PropA** | NEW | E0 R3 2026-05-31; §22 C2. PropA §2 principle #2 (L1116) enumerates 6 outbound classes and OMITS `local_file_export` while principle #3 (L1117) says `same_machine_local_runtime` is the only non-egress class → self-inconsistent. Patch: add `local_file_export` to #2 or reword "all destinations except `same_machine_local_runtime` are outbound." |
| `OBL-EC-DESTRUCTION-LEDGER-DURABLE-WRITE-01` **(NEW)** | (absent) → **EC** | NEW | E0 R3 2026-05-31; non-egress #1. `MemoryDestructionLedger` durable append/write path is EC-owned (EC sole durable writer); DOC84/DOC85/DOC11 are consumers/surfaces/effects only. |
| `OBL-D11-D4-EGRESS-NATIVE-DISPATCH-GATE-01` **(NEW)** | (absent) → **DOC11 / DOC4** | NEW | E0 R3 2026-05-31; §22 S8/S9. Native/connector outbound dispatch OUTSIDE final-prompt render must expose terminal destination + call the EC/DOC24 egress gate (separate from the FINAL-PROMPT-SPAN as-sent capture extension). |
| `OBL-D16-CONNECTOR-EGRESS-TERMINAL-DEST-01` **(NEW)** | (absent) → **DOC16** | NEW | E0 R3 2026-05-31; §22 S8. Provider connectors (email/calendar/Teams/browser) expose the resolved terminal destination before dispatch and MUST NOT bypass the egress attestation gate. |
| `OBL-D23-OUTBOUND-TASK-EGRESS-GATE-01` **(NEW)** | (absent) → **DOC23** | NEW | E0 R3 2026-05-31; §22 S8. Outbound task modules call the EC/DOC24 egress gate before provider execution. |
| `OBL-D20-D21-D22-EGRESS-RECEIPT-SURFACES-01` **(NEW)** | (absent) → **DOC20 / DOC21 / DOC22** | NEW | E0 R3 2026-05-31; §22 S8. Egress policy-decision receipts (allow/warn/block/strip/redact) visible on send/export/share surfaces; register any new UI surfaces/components/settings. |
| `OBL-EGRESS-PHASE2-NETWORK-FLIP-01` **(NEW · gate row)** | (absent) → **EC / DOC81 (Phase 2)** | NEW | E0 R3 2026-05-31; §22 decision-3 + ADQ-222. `remote_peer` / `firm_server` / `local_network_peer` flip fail-closed → gated-allow when networking ships; named now so the deferred denial is not forgotten. Anchor for the local↔networked memory boundary. |
| `OBL-KDA-EGRESS-RENDER-ROUTING-01` (§6.Z2) | DOC84 | **NARROWED (R3)** | E0 R3 2026-05-31; §22 S1/S2. **Supersedes the §6.Z2 wording** ("every egress path routes through `enforceKdaRenderPolicy`"). KDA gates **rendered-content** egress ONLY; the universal gate for all outbound actions is the EC/DOC24 §21.1 gate (`OBL-EC-D24-ACTION-EGRESS-POLICY-GATE-01`), NOT `enforceKdaRenderPolicy`. |
| `OBL-D24-DELIVERED-SOURCE-LEDGER-01` (§6.Z2) | DOC24 | **CLARIFIED (R3)** | E0 R3 2026-05-31; §22 S4 + ledger write-path. ONE per-source record, TWO facets (`final_prompt_disposition` + `egress_disposition`), **EC-signed / DOC24-appended OFF the write-queue** (`anchored_attestation`; NOT EC `serialized_durable`). Owner split: appender **DOC24** / signer **EC** / consumers **DOC84-DOC85**. (Per §12.1 "delivery attestations MUST NOT take a write-queue lock.") |
| `OBL-PROPA-OUTBOUND-MATRIX-BINDING-01` (§6.Z2) | DOC81 | **EXTENDED (R3)** | E0 R3 2026-05-31. The mechanical binding includes `OBL-PROPA-LOCALFILEEXPORT-OUTBOUND-PATCH-01` (principle #2 must list `local_file_export`). |
### §6.Z3 bodies
**`OBL-PROPA-LOCALFILEEXPORT-OUTBOUND-PATCH-01` → DOC81 / PropA**
- **source:** E0 card R3 §22 / C2; PropA R6.3 §2 principles #2 (L1116) + #3 (L1117).
- **why:** principle #2 enumerates `local_network_peer, firm_server, remote_peer, cloud_api, email_outbound, agent_messaging` and omits `local_file_export`; principle #3 says `same_machine_local_runtime` is the only non-egress class. The two are inconsistent; `local_file_export` is the likeliest privilege-exfil path (privileged file written to disk → synced/emailed).
- **obligation:** treat `local_file_export` as egress; patch PropA principle #2 to include it, or reword "all destinations except `same_machine_local_runtime` are outbound."
- **acceptance:** a privileged artifact → `local_file_export` requires a destination policy decision (fixture `egress.local_file_export_privileged_requires_policy_decision`).
- **depends_on:** PropA §2 matrix. **blocks:** complete outbound-class coverage of INV-E0-EGRESS-1.
**`OBL-EC-DESTRUCTION-LEDGER-DURABLE-WRITE-01` → EC**
- **source:** E0 card R3 non-egress #1; §3.7 `MemoryDestructionLedger`; EC sole-durable-writer invariant.
- **why:** R2 §3.7 assigned ledger "bodies/storage = DOC84 + DOC85 + DOC11," which would create a second durable audit writer.
- **obligation:** EC owns the durable append/write path for the append-only, hash-chained `MemoryDestructionLedger` (records erasure/restamp/restore — all `serialized_durable`); DOC84/DOC85/DOC11 are consumers/surfaces/effects only; no component appends except through EC. (Contrast: the convergence/delivery ledger is `anchored_attestation` — EC-signed / DOC24-appended, NOT EC-written.)
- **acceptance:** ledger append precedes effect-acknowledgement; the write path is EC; lints `destruction_ledger.entry_missing_for_erasure_restamp_restore` + `destruction_ledger.hash_chain_broken`.
- **depends_on:** EC durable-write path; MFC erasure/restamp/restore shells. **blocks:** litigation chain-of-custody integrity.
**`OBL-D11-D4-EGRESS-NATIVE-DISPATCH-GATE-01` → DOC11 / DOC4**
- **obligation:** native/connector outbound dispatch that occurs outside final-prompt render exposes the resolved terminal destination and calls the EC/DOC24 egress gate (issuing an `E0EgressAttestation`); separate from the as-sent-capture extension on the FINAL-PROMPT-SPAN rows.
- **acceptance:** a native/connector send with no egress attestation is refused (fail-closed). **depends_on:** `OBL-EC-D24-ACTION-EGRESS-POLICY-GATE-01`.
**`OBL-D16-CONNECTOR-EGRESS-TERMINAL-DEST-01` → DOC16**
- **obligation:** provider connectors (email/calendar/Teams/browser/etc.) expose the resolved terminal destination before dispatch and must not bypass the egress attestation gate.
- **acceptance:** declared-vs-terminal mismatch fails closed (`egress.declared_destination_differs_from_terminal` behavior via the gate). **depends_on:** `OBL-EC-D24-ACTION-EGRESS-POLICY-GATE-01`.
**`OBL-D23-OUTBOUND-TASK-EGRESS-GATE-01` → DOC23**
- **obligation:** outbound task modules call the EC/DOC24 egress gate before provider execution. **acceptance:** a task outbound action without an attestation is refused. **depends_on:** `OBL-EC-D24-ACTION-EGRESS-POLICY-GATE-01`.
**`OBL-D20-D21-D22-EGRESS-RECEIPT-SURFACES-01` → DOC20 / DOC21 / DOC22**
- **obligation:** egress policy-decision receipts (allow/warn/block/strip/redact) are visible on send/export/share surfaces; register any new UI surfaces/components/settings introduced. **acceptance:** a blocked egress shows a why-blocked receipt; new surfaces are registered (no phantom UI).
**`OBL-EGRESS-PHASE2-NETWORK-FLIP-01` → EC / DOC81 (Phase 2)**
- **source:** E0 card R3 §22 decision-3; ADQ-222.
- **obligation (deferred, named):** when Phase-2 networking ships, `remote_peer` / `firm_server` / `local_network_peer` flip from fail-closed (Phase-1) to gated-allow under a destination policy; this is the anchor for the local↔networked memory boundary (which sensitivity/privilege classes may replicate local→networked). No Phase-1 networking machinery is built.
- **acceptance (Phase 2):** each networking class is explicitly enabled with a policy; none comes online open. **blocks:** safe Phase-2 networking egress.
## 6.Z4 — Attachment as a memory-retrieval signal (2026-05-31; Stage 6 E0 design discussion)
Added per the 2026-05-31 design discussion on whether DOC24 uses current-turn attachments to shape memory retrieval/injection. **Finding:** DOC24 `RouterInput` (§13.1) takes the typed prompt only (no attachment field); three-lane retrieval (§27) is seeded from that. Document **delivery** to the model already works (DOC25 §3 tiers / §22) — only the memory-shaping is missing. **DOC80 needs nothing** (governance is trigger-agnostic; the existing R3 §22 `E0PerSourceTurnLedgerRow` optionally gains an `injection_trigger` field at DOC84-build time). **Decision B:** capture only; the design happens at DOC84 drafting (slices E7/E8). Fold into §6 per-owner tables at the next OPA patch round.
| obligation | owner | status | source / note |
|---|---|---|---|
| `OBL-D84-ATTACHMENT-RETRIEVAL-SIGNAL-01` **(NEW)** | (absent) → **DOC84** | NEW | E0 design discussion 2026-05-31. Current-turn attachment becomes an input to memory retrieval. |
| `OBL-D25-SUMMARY-AS-RETRIEVAL-SEED-01` **(NEW)** | (absent) → **DOC25** | NEW | E0 design discussion 2026-05-31. Expose the structured summary as a retrieval seed (enabler). |
### §6.Z4 bodies
**`OBL-D84-ATTACHMENT-RETRIEVAL-SIGNAL-01` → DOC84**
- **obligation:** when a turn carries an attachment, the current-turn attachment is a first-class **input** to memory retrieval/injection — not only the typed prompt. Seed retrieval from the attachment's bounded DOC25 structured summary (§5.1 step 3), never the raw document, so the cue is decoupled from document length. The resulting memories then flow through DOC24/DOC84's **existing** injection machinery (selection, budgeting, rendering); this obligation adds an input — it does NOT redefine how injection decides what to surface.
- **architect consideration (decide at DOC84 drafting):** documents should NOT necessarily be treated the same as the typed prompt for what gets injected into memory — they likely warrant **different weight, relevance, precedence, or treatment** in some manner. The broader "how injection selects what to surface" design (core-vs-catalog, budgets) is a separate deeper DOC24/DOC84 review, not settled here. (Architect note, 2026-05-31.)
- **acceptance:** a "review the attached" turn retrieves memory relevant to the attachment's content (not just the typed words); the attachment-derived cue stays bounded regardless of document size; attachment-triggered vs prompt-triggered contribution is distinguishable.
- **depends_on:** `OBL-D25-SUMMARY-AS-RETRIEVAL-SEED-01`. **slice:** E7 (retrieval/context products) + E8 (injection). **time:** DOC84 drafting (not now).
**`OBL-D25-SUMMARY-AS-RETRIEVAL-SEED-01` → DOC25**
- **obligation:** expose the structured summary (+ entity observations / classification, §5.1) as a retrieval **seed** consumable by DOC84 — a read interface, not only a delivery payload. For direct chat attachments (§5.1 "read-once; steps 5-8 may be skipped"), the step-3 summary is sufficient as a seed; full corpus indexing is NOT required to make an attachment memory-aware.
- **acceptance:** DOC84 can obtain a bounded attachment summary/entities for retrieval seeding without triggering full corpus ingestion.
- **depends_on:** none (DOC25 already computes the summary). **time:** alongside DOC84 drafting, or opportunistically.
## 9. Pass 2 Deferral & Disposition Notes (D-decision closures)
These notes record how each resolved Pass-1 architect decision (D1–D13) was applied in V4 + how Stage 5R3 Pass 2c (cleanup patch 2026-05-28) closed downstream propagation gaps surfaced by external review. V3.18's original **§9 Open Meta-Architecture Questions** carries forward unchanged from archived V3.18 and is not reproduced here.
- **D3a — DOC24 R3.1.1 ADD (6 IDs):** added to §6 as Bucket A, `confidence = high`, source `Current Specs/DOC24/DOC24_R3_1_1.md`. Rows: `OBL-BDSM-NEW-DEADLINE-BOOST-01`→DOC85, `OBL-D25-NEW-PREFLIGHT-LEASE-01`→DOC25, `OBL-D72-NEW-DOMAIN-PROFILE-MAPPING-01`→DOC72, `OBL-D72-NEW-RELATIONSHIP-EXTENSIONS-01`→DOC72, `OBL-D72-NEW-RETRACTION-PROPAGATION-01`→DOC72, `OBL-PROPA-NEW-SOURCE-EXCLUSION-FILTER-01`→DOC81.
- **D3b — DOC23 Addenda B (33 IDs):** **deferred entirely** — out of scope until the flatten is complete. **No** Bucket A/B/C rows were created for these. The 33 = 29 Addenda B Core defer IDs + 3 Pattern-C wiring IDs + 1 slot-registration mechanics row (the last is tracked separately under D12 as `not_memory`). **Action required by Will (architect):** the 33 deferral tracking rows belong in `DOC73_V1_6_DEFERRAL_INVENTORY_R1.1.md`, which is **outside** `Stage_5R3/` and therefore was **not** modified by Pass 2 (HARD CONSTRAINT §5.1). Will must add them at ratification. This is flagged in `PASS_2_WILL_REVIEW_PACKET.md` under BLOCKED-MISSING.
- **D4 — Knowledge Pack + nightly extraction:** routed to **DOC85** (E9 learning) as charter input; no separate §6 schema row authored in Pass 2.
- **D5 — InjectionSlotRegistry:** treated as owner-doc work; conformance rows route to their relevant owner (DOC24 / DOC84 delivery surfaces). No new cross-doc obligation minted.
- **D6 — Running Brief / RecentActivityRollup:** CSA-extraction report §6.1/§6.2/§6.3 applied verbatim — consumer/orchestration contract → **DOC83** (`OBL-D73-RECENT-ACTIVITY-ROLLUP-CONSUMER-CONTRACT-01`, ADQ-405 seam); producer/schema stays DOC73 (`OBL-D73-V16-MECHANISM4-01`). Deferral tracking row also belongs in the external `DOC73_V1_6_DEFERRAL_INVENTORY_R1.1.md` — Will to add.
- **D7 — Duplicate pairs (RESOLVED AT PUBLICATION 2026-05-28; Stage 5R3 Pass 2c):**
- **Pair (2) — CACHE-BATCH merge (D10):** `OBL-D25-V16-CACHE-BATCH-01` winner; loser `OBL-D25-D24-V16-CACHE-BATCH-01` folded as alias. Both stay at DOC25 (outside memory-flatten boundary).
- **Pair (3) — CORPUS-LIB-MAP ↔ LIBRARY-NAMING (ADQ-PASS2-02 RESOLVED 2026-05-28):** NOT a duplicate. The architect merge decision recorded at V3.18 line 3431 ("Appendix A") confirms both rows remain — V3.7 row `OBL-D7-NEW-LIBRARY-NAMING-01` is the UI rendering rule (retargeted DOC7 → **DOC86** at Pass 2c, Stage 5R3); V3.8 row `OBL-D24-CORPUS-LIB-MAP-01` is the schema-level identity reconciliation gate (retargeted DOC24 → **DOC87** at publication per ADQ-PASS2-02 — DOC87 owns canonical corpus↔library identity mapping per ADQ-220). Both rows kept-both; both retargeted.
- **Pair (4) — SESSION-CAPABILITY-MANIFEST ↔ NEW-SESSION-CONTEXT (kept-both):** `OBL-EC-V16-SESSION-CAPABILITY-MANIFEST-01` ↔ `OBL-EC-NEW-SESSION-CONTEXT-01` — kept-both per V3.18 Appendix A.4 (different concerns: session-capability vs session-context). Both stay at EC (outside memory-flatten boundary). Outcome was correct at Pass 2 publication; this disposition is recorded explicitly at Pass 2c for §9 traceability.
- **D7-bis — ADQ-PASS2-01 (PBE cluster) RESOLVED AT PUBLICATION:** `OBL-D72-NEW-PBE-CLUSTER-01` retargeted DOC72 → **DOC73** per ADQ-PASS2-01 — PBE is the producer; schema lives with producer (mirrors OPA-001 Assertion pattern + ADQ-219 CU pattern); DOC72 stores graph payload; EC writes durably. Row physically remains in DOC72 §6 section pending reorganization in next OPA patch round; logical owner is DOC73.
- **D8 — ADQ-222:** tracked as a **seam only**; no schema body authored in Pass 2.
- **D9 — Running Brief deprecation structural edits:** already applied in V3.11 (tombstones at V3.18 lines 376–378 / 3690 / 3764 / 7528); Pass 2 applies only the retargets (the two D9 rows above).
- **D10 — Cache-batch merge:** applied (see D7).
- **D11 — OBL-D14-09 chain:** in-scope; rows carried to their V3.18 owner (DOC14 stays — outside flatten boundary). **Stage 5R3 Pass 2c clarification:** the row body's `D15-RT-001..005` sub-items remain enumerated inside `OBL-D14-09` (V3.18 line 1873) and were NOT promoted to standalone OBL rows in Pass 2 retargeting. Promotion to individual rows is post-flatten work, tracked under `OBL-D14-09`'s own acceptance criterion. Both DOC14 and DOC15 are outside the memory-flatten boundary, so this has no family-count impact.
- **D12 — `OBL-D23B-SLOT-REGISTRATION-MECHANICS-01`:** tagged `not_memory`; **not** retargeted to the DOC80 family; disposition pending — fold on Core R0.8.
- **D13 — DOC74 typo:** no action (DOC74 does not exist). **D13a — DOC25 degraded-state:** explicit row added (`OBL-D25-DEGRADED-STATE-REPORTING-01` → DOC83, medium).
- **Memory Intake proposal:** deferred (per Pass-1 resolution); no §6 row.
- **§8 Deferred (17 rows, V17/V18 wave):** untouched — retain `deferred_v17` / `deferred_v18` status. **Stage 5R3 Pass 2c clarification:** the 17 §8 deferred rows are inherited verbatim from archived `OPA_V3_18.md` §8 and are NOT physically reproduced in this V4 overlay. The "538 total OBL rows" figure in the header reconciles as 521 V4 §6-active + 17 inherited V3.18 §8. To read the §8 row bodies, see `OP-A and Operations and Trackers/Archived DOC OP-A and Operations DOCS/OPA_V3_18.md` §8.
- **D14 — OBL-D25-O-SOURCEARTIFACT-01 owner verification (Stage 5R3 Pass 2c):** Pass 2c review flagged uncertainty about whether this row should retarget DOC25 → DOC82 (currently shown as such in V4 §6) or stay at DOC25 per Owner Map line 53 (SourceArtifact schema stays at DOC25, outside the flatten boundary). The row body's "source/evidence-boundary obligation" framing makes DOC82/E4 charter input a defensible read. **Disposition:** marked `pending_charter_resolution` — the DOC82/E4 charter authoring step will confirm or reassign during input-deck consumption. No retarget change at Pass 2c.
- **D15 — 113 → 117 family-count reconciliation:** Bucket A header reports `113 family-moves`; published V4 family-owned total is `117` (DOC81=10 + DOC82=9 + DOC83=7 + DOC84=34 + DOC85=45 + DOC86=3 + DOC87=9). The +4 delta is from Bucket B split children that landed inside the family (DOC83 +2 = `OBL-EXT-FSM-01` retained + `OBL-EXT-FSM-EXEC-01` is EC so NOT counted; correctly: DOC83 retained-parent count +1; DOC86 +1 = `OBL-D73-NEW-12` retained; DOC87 +1 = `OBL-D87-NEW-12-CORPUS-ORG-01`; plus 1 more from D7-rebis CORPUS-LIB-MAP now logically DOC87 even though physically DOC24-section, accounted in the index per Pass 2c #2). All counts reconcile; no row missing.
---
*End of OP-A V4. Operative as of 2026-05-28 Stage 5R3 Pass 2 ratification + Pass 2c cleanup-patch propagation. Supersedes archived V3.18. Stage 6 charter authoring opens against this file using `STAGE_6_CHARTER_INPUT_INDEX.md` as each E-slice charter author's first read.*