Elnor Repo Reader

BUCKET_B_SPLITS.md

Memory Rebuild Docs/Flattening/Execution Ledger/Stage_5R3/BUCKET_B_SPLITS.md

Short text page 788d88d89ec5. Generated 2026-06-09T01:23:58.539Z from commit dbaa25962edc11ab30e8d4ca1715f9ae5bf77331. Worktree: clean.

Open readable HTML page · Open raw txt · Open path URL

ELNOR REPO READER TEXT MIRROR
Original path: Memory Rebuild Docs/Flattening/Execution Ledger/Stage_5R3/BUCKET_B_SPLITS.md
Source repo: /Users/OpenClaw1/Elnor/Elnor Specs
Git branch: main
Git commit: dbaa25962edc11ab30e8d4ca1715f9ae5bf77331
Generated: 2026-06-09T01:23:58.539Z

---

# Stage 5R3 Pass 2 — BUCKET B (mid-confidence splits)

**Generated:** 2026-05-28 · Pass 2 mechanical retarget of OP-A V3.18 §6 against the DOC80 family.
**Confidence:** medium for every row (each is one OP-A row that resolves into **multiple** V4 rows under different owners). High-confidence single retargets are in `BUCKET_A.md`; genuine architect calls are in `BUCKET_C_ARCHITECT_DECISIONS.md`.

**Count:** 3 rows. Each splits one OP-A obligation into 2–3 V4 obligations. `architect_review_required = no` for all three — the split lines fall on a Pass-1-resolved boundary (schema-vs-executor, or extraction-vs-ingestion-vs-UI), so no new architecture decision is needed; the split is mechanical.

**What "split" means here:** the single OP-A row covers concerns that, post-flatten, belong to two or more different one-owner schemas (B3). Rather than force-fit it to one owner, the row is decomposed so each child V4 row has a single clean owner. Child IDs below are **proposed**; final IDs are confirmed when the owning DOC charters are drafted in Stage 6.

## Field key
`opa_row_id` · `current_target_doc` · `split_kind` · `proposed_v4_rows` · `confidence` · `mapping_basis` · `architect_review_required`

---

### OBL-EXT-FSM-01 — Extraction Failure State Machine
- **current_target_doc:** GroupA (EC + DOC73) — V1.6 cross-cutting
- **split_kind:** `executor_split` (schema owner ≠ the kernel that drives it)
- **confidence:** medium
- **architect_review_required:** no
- **proposed_v4_rows:**

| proposed_v4_id | owner | scope of this child row |
|---|---|---|
| `OBL-EXT-FSM-01` | **DOC83** | Extraction Failure State Machine **schema + state semantics** — states, legal transitions, terminal/recovery conditions. The normative definition of the FSM lives with extraction (E5). |
| `OBL-EXT-FSM-EXEC-01` *(new child)* | **EC Core** | Kernel **records** FSM transitions as `extraction_state_change` operations. EC executes/journals transitions but does **not** own the state semantics. |

- **mapping_basis:** The OP-A row bundles the state-machine definition with the kernel's duty to record transitions. Post-flatten these are two owners: extraction (DOC83) owns the schema and the legal-transition table; the executor kernel (EC Core) owns only the operation that journals a transition. Source-row note already states "DOC73 + DOC25 own state semantics; EC kernel records transitions … (does not own state semantics)" — Pass 2 routes the state-semantics half to DOC83 (the E5 extraction owner that absorbs DOC73's extraction surface) and keeps the recording half in EC Core. Clean schema/executor boundary; no judgment call.

---

### OBL-D73-NEW-10 — Extraction + DOC25 adapter bundle
- **current_target_doc:** DOC73
- **split_kind:** `owner_split` (two co-equal schema owners)
- **confidence:** medium
- **architect_review_required:** no
- **proposed_v4_rows:**

| proposed_v4_id | owner | scope of this child row |
|---|---|---|
| `OBL-D73-NEW-10` | **DOC83** | Extraction surface — the extraction-side contract (E5). |
| `OBL-D25-NEW-10-INGEST-ADAPTER-01` *(new child)* | **DOC25** | DOC25 ingestion-adapter surface — the ingest/connector half that DOC25 retains (outside the memory-flatten boundary). |

- **mapping_basis:** Row covers both the extraction contract and the DOC25 ingestion adapter that feeds it. Extraction → DOC83 (E5 owner, absorbs DOC73 extraction). The ingestion-adapter half stays with DOC25, which is a STAYS doc (outside the flatten boundary). Two distinct owners, split on the extraction-vs-ingestion line that Pass 1 already drew for the DOC25/DOC73 sections.

---

### OBL-D73-NEW-12 — UI / onboarding / corpus-UX bundle
- **current_target_doc:** DOC73
- **split_kind:** `owner_split` (three owners)
- **confidence:** medium
- **architect_review_required:** no
- **proposed_v4_rows:**

| proposed_v4_id | owner | scope of this child row |
|---|---|---|
| `OBL-D73-NEW-12` | **DOC86** | Corpus UX / inspector UI surface (E10). |
| `OBL-D24-NEW-12-ONBOARDING-01` *(new child)* | **DOC24** | Corpus onboarding flow — stays with DOC24 (search/onboarding, outside flatten boundary). |
| `OBL-D87-NEW-12-CORPUS-ORG-01` *(new child)* | **DOC87** | Corpus organization / membership surfaces (E_org). |

- **mapping_basis:** Row spans three post-flatten owners: the inspector/search UI (DOC86, E10), the onboarding flow (DOC24, a STAYS doc), and corpus organization/membership (DOC87, E_org). Each maps cleanly onto a Pass-1-resolved owner; the only work is decomposing the one row into three. UI → DOC86, onboarding → DOC24, corpus-org → DOC87 follow the same section-model used for the rest of the DOC73 peel.

---

## Note for Stage 6 charter drafting
All `*(new child)*` IDs above are **proposed splits**, not yet-existing OP-A rows. When the owning DOC charter is drafted, confirm the child ID and add a `split_parent: OBL-…` provenance pointer back to the OP-A parent so the lineage is traceable. The parent OP-A row is considered fully discharged once all child rows are placed.