You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
review(plan): §17 amendments to unified-soa-convergence-v1 + D-MBX-A7 + OQ-11.9
Orchestrator review pass on PR #434 (merged 2026-05-29) and wave A1-A4 (merged
via PR #427). All amendments APPENDED — no §1–§16 content modified, per the
plan-file APPEND-ONLY discipline.
§17 captures 4 substantive amendments + 1 cross-ref:
- §17.1 FINDING — prior `bindspace-singleton-to-mailbox-soa-v1.md` OQ-MBX-8
(`persisted_row` vs Lance versioning) is implicitly closed by this plan's
R1.2 ("persisted_row is a pointer to the same row laid down in Lance, not
a serialized copy"). Action: mark resolved → wired by D-MBX-7.
- §17.2 FINDING — prior OQ-MBX-15′ (container scoping: per-cycle vs
per-dispatch vs per-cohort) is implicitly closed by R1 + R4 + the Codex P2
widening of `WitnessEntry::mailbox_ref: u16 → u32` shipped via PR #427. A
per-cycle container would invalidate every cross-cycle `mailbox_ref u32`
the moment the cycle terminates. Action: per-mailbox-cohort, cohort-lifetime.
- §17.3 CONJECTURE — silent gap between R1/D-MBX-A6/D-MBX-7 and the current
`ndarray::simd_soa::MultiLaneColumn` surface. The shipped framework exposes
only flat `Arc<[u8]>` lanes; the new thoughtspace columns (`edges`/`qualia`/
`meta`/`entity_type`) are heterogeneous fixed-size structs. R1's "container
≡ SoA ≡ simd_soa-aligned" equivalence is aspirational until a
`SoaColumns<N>` shape-introspection trait lands. Action: NEW D-MBX-A7
added to STATUS_BOARD as a P1 prereq gating D-MBX-A6 + D-MBX-7. ~200 LOC,
MED risk, cross-repo (ndarray).
- §17.4 CONJECTURE — `WitnessEntry { mailbox_ref: u32, spo_fact_ref:
Option<u64> }` encodes the Σ10 Rubicon commit transition (R3) as a runtime
Option instead of as typestate. NEW OQ-11.9 added to §11 catalogue:
promote to `WitnessEntry::Active{...}` / `WitnessEntry::Crystallised{...}`
enum split? Default proposal: yes; lands as part of D-MBX-A5 (LOC bumps
~150 → ~200); no migration cost (only consumer today is lib.rs re-export).
- §17.5 FINDING — D-MBX-12.9 (thinking-styles/atoms unification) inherits
`style_recipe` from PR #433 commit `acb403de` ("feat(odoo): style_recipe
— D-Atom interpretation step (typed SoA → cognitive fingerprint)"). The
unification is not from scratch; cite as Predecessor.
Board hygiene (same commit per Mandatory Board-Hygiene Rule):
- STATUS_BOARD.md — new D-MBX-A7 row inserted between A6 and 7; A6 + 7
PR/Evidence cells annotated with `+ D-MBX-A7 (§17.3)` gate.
- AGENT_LOG.md — orchestrator review entry prepended.
No source code touched, no `cargo` invoked (continuing #434's stability
constraint). Confidence: §17.1 + §17.2 + §17.5 HIGH (cited evidence);
§17.3 + §17.4 MED-HIGH (the gap and the typestate are real; action shapes
are default proposals open to council via PR review).
**Files touched:**`.claude/plans/unified-soa-convergence-v1.md` (+44 lines, new §17 appended; no §1–§16 mutation per APPEND-ONLY discipline); `.claude/board/STATUS_BOARD.md` (+1 row D-MBX-A7; D-MBX-A6 + D-MBX-7 PR/Evidence cells annotated with the new gate); `.claude/board/AGENT_LOG.md` (this entry).
100
+
**Tests:** docs-only; no source code touched; no `cargo` invoked (per #434's stability constraint discipline carried forward).
101
+
**Findings labels:** §17.1 + §17.2 + §17.5 = FINDING (direct cited evidence). §17.3 + §17.4 = CONJECTURE (gap or action shape is the default proposal, open to council via PR review).
102
+
**Outcome:** review pass complete. Plan §17 captures 4 substantive amendments + 1 cross-ref (`style_recipe` PR #433) and resolves 2 prior-plan OQs implicitly closed by R1+R4+wave-A1-A4 outcomes. No PR opened yet — awaiting user direction on (a) typestate + OQ closures slice, (b) `SoaColumns<N>` (D-MBX-A7) framework wave, (c) Windows CI, or (d) other.
103
+
104
+
---
105
+
95
106
## [Agent-A4 / Sonnet] D-MBX-A4 — append §10 architectural refinements to bindspace→mailbox plan
| D-MBX-10 | SoA version byte at layout root (`MailboxSoAHeader`); refuse v(N>M) bytes on v(M) reader; field-isolation matrix tests on every column op (`I-LEGACY-API-FEATURE-GATED` discipline) | lance-graph-contract | 100 | HIGH |**Queued**| foundation — should land early in P2; gates on OQ-11.5 |
Copy file name to clipboardExpand all lines: .claude/plans/unified-soa-convergence-v1.md
+44Lines changed: 44 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -683,3 +683,47 @@ The `epiphany-brainstorm-council` pre-merge gate for `EPIPHANIES.md` additions (
683
683
This plan, however, IS open to the council for its *spec content* — the convergence sequencing, the D-MBX deliverable breakdown, the OQ catalogue, and the risk matrix. PR review is the appropriate channel.
> APPENDED — does not modify any §1–§16 content. Authored 2026-05-29 by orchestrator-Sonnet from main thread after PR #434 merged and prior wave A1-A4 (PR #427) landed. Each amendment is single-claim, file:line-cited, labeled FINDING / CONJECTURE per `bf16-hhtl-terrain.md` discipline.
690
+
691
+
### 17.1 — FINDING: prior `bindspace-singleton-to-mailbox-soa-v1.md` OQ-MBX-8 is implicitly closed by R1.2 + §3
692
+
693
+
The prior plan's **OQ-MBX-8** ("`persisted_row` stub vs Lance native versioning"; evidence at `REFACTOR_NOTES.md:129` + `crates/cognitive-shader-driver/src/driver.rs:458`) was load-bearing for the persistence story. R1.2 of this plan ratifies *"`persisted_row: Option<u32>` is a pointer to the same row laid down in Lance, not a serialized copy in another shape"* — that IS the Lance native versioning answer. `persisted_row` and Lance's `_rowid` are the same `u32` once §3's "lance-graph container layout ≡ MailboxSoA<N> layout" lands (D-MBX-7). OQ-MBX-8 is therefore an implementation/wiring task under D-MBX-7, not an open design question. **Action:** the prior plan's §10 OQ list should mark OQ-MBX-8 as *Resolved by v1 §17.1 → wired by D-MBX-7*; no separate ratification needed.
694
+
695
+
### 17.2 — FINDING: prior OQ-MBX-15′ (container scoping) is implicitly closed by R1 + R4 + `mailbox_ref: u32`
696
+
697
+
The prior plan's **OQ-MBX-15′** ("container scoping: per-cognitive-cycle, per-shader-dispatch, or per-mailbox-cohort?") was raised as open. Three constraints in this plan plus the wave A1-A4 outcome force the answer:
698
+
699
+
1. R1 ("ONE SoA, never transformed") — the container *is* the SoA, no per-cycle re-allocation.
700
+
2. R4 ("the AriGraph episodic Markov chain IS the index space") — chain nodes outlive any single cycle.
701
+
3. The Codex P2 fix on PR #427 widened `WitnessEntry::mailbox_ref` from `u16` → `u32` (`crates/lance-graph-contract/src/witness_table.rs:78`) to carry the canonical `MailboxId` across the 64K-256K envelope (§3 ceiling).
702
+
703
+
A per-cycle container would invalidate every cross-cycle `mailbox_ref u32` the moment the cycle terminated. Tombstones (§5.1 phase 4 / OQ-11.3) would have nothing to anchor. Cohort scoping is therefore the only consistent answer. **Action:** mark prior OQ-MBX-15′ as *Resolved by v1 §17.2 → per-mailbox-cohort, lifetime = cohort lifetime*.
704
+
705
+
### 17.3 — CONJECTURE: silent gap between R1/D-MBX-A6/D-MBX-7 and current `ndarray::simd_soa`
706
+
707
+
R1 ("ONE SoA, never transformed") and §10 (D-MBX-A6 "DTO surface overhauled to express operations *on* the SoA" + D-MBX-7 "container layout ≡ `MailboxSoA<N>` ≡ `ndarray::simd_soa.rs` aligned") presuppose a per-SoA shape-introspection surface in `ndarray::simd_soa`. The currently shipped surface (`/home/user/ndarray/src/simd_soa.rs:118-180`) only exposes `MultiLaneColumn` — a flat `Arc<[u8]>` over 64-byte chunks with separate `iter_u8x64 / iter_f32x16 / iter_f64x8 / iter_u64x8` methods. There is **no shape-introspection trait, no const-generic SoA tuple, no per-column-type dispatch**. The new thoughtspace columns shipped in D-MBX-A1 (`edges: [CausalEdge64; N]`, `qualia: [QualiaI4_16D; N]`, `meta: [MetaWord; N]`, `entity_type: [u16; N]`) are heterogeneous fixed-size structs, NOT 64-byte byte lanes — `MultiLaneColumn` alone cannot express them.
708
+
709
+
Until a `SoaColumns<N>` derive/trait surface lands in `ndarray::simd_soa` that yields one `MultiLaneColumn` per column at the column's natural lane width, R1's "container ≡ SoA ≡ simd_soa-aligned" equivalence is **aspirational**, and D-MBX-A6's "SoA-row-lens" DTO variants have no carrier to back them. **Action:** add new prerequisite **D-MBX-A7 — `ndarray::simd_soa::SoaColumns<N>` framework** as a P1 prereq; gates D-MBX-A6 and D-MBX-7. Estimated scope: ~200 LOC + derive macro + 6 column-type fixtures. Owner: `ndarray::simd_soa` (cross-repo PR). Risk: MED (touches ndarray's SIMD surface).
710
+
711
+
### 17.4 — CONJECTURE: `WitnessEntry` is a Heckhausen typestate disguised as a runtime `Option`
712
+
713
+
`crates/lance-graph-contract/src/witness_table.rs:71-78` carries `mailbox_ref: u32` (always) + `spo_fact_ref: Option<u64>` where, per R4, `None` = active belief (chain pointer only), `Some(u64)` = crystallised (cold SPO-G quad committed). This is a textbook two-state typestate (the Σ10 Rubicon commit transition; see `EPIPHANIES.md::E-RUBICON-RACTOR`), currently encoded as runtime-nullable. A `WitnessEntry::Active { mailbox_ref: u32 }` / `WitnessEntry::Crystallised { mailbox_ref: u32, spo_fact_ref: u64 }` enum split would make the Rubicon commit a compile-time event (matches the spirit of `E-CE64-MB-4` ownership-typing where UB becomes a compile error). **Open question OQ-11.9** (new): promote `WitnessEntry` to typestate enum vs leave as `Option<u64>`? Default proposal: typestate enum, lands as part of D-MBX-A5 (SPO-W dual-residency) where the `None → Some` transition is wired anyway; no migration cost since the only consumer today is `lib.rs` re-export. **Action:** add OQ-11.9 to §11 catalogue; D-MBX-A5 LOC estimate bumps from ~150 → ~200 LOC.
§2.9 / D-MBX-12.9 ("thinking-styles/atoms unified into MetaWord + p64-bridge layer_mask") should cross-reference `style_recipe` (PR #433 commit `acb403de` "feat(odoo): style_recipe — D-Atom interpretation step (typed SoA → cognitive fingerprint)"). `style_recipe` IS the typed-SoA → cognitive-fingerprint pathway that D-MBX-12.9 will compose against; the unification is not from scratch but from the `style_recipe` D-Atom interpretation step shipped in #433. **Action:** §2.9 should append a "Predecessor: PR #433`style_recipe` (D-Atom interpretation step)" line; D-MBX-12.9 spec should cite `crates/lance-graph-ontology/src/odoo_blueprint/style_recipe*` (or wherever the module landed in #433) as the input surface.
**Confidence:** 17.1 + 17.2 + 17.5 are HIGH (direct citations to plan text + shipped code). 17.3 + 17.4 are MED-HIGH (the gap and the typestate are real; the action shape is the default proposal, open to council review).
0 commit comments