Skip to content

Commit ed31e50

Browse files
committed
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).
1 parent 1186dfd commit ed31e50

3 files changed

Lines changed: 58 additions & 2 deletions

File tree

.claude/board/AGENT_LOG.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,17 @@ Created `cognition::{stages, entity, op, advance, cascade}` + `transaction::{int
9292

9393
---
9494

95+
## [Orchestrator-Sonnet] PR #434 review pass — §17 amendments + D-MBX-A7 prereq + OQ-11.9
96+
97+
**D-ids:** D-MBX-A7 (new, Queued); OQ-11.9 (new). **Closes:** prior plan OQs **OQ-MBX-8** + **OQ-MBX-15′** (`bindspace-singleton-to-mailbox-soa-v1.md` §10) — implicit-resolution recorded in `unified-soa-convergence-v1.md` §17.1 + §17.2.
98+
**Branch:** `claude/lance-surrealdb-analysis-LXmug` (rebased onto `origin/main` post-PR #434 merge).
99+
**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+
95106
## [Agent-A4 / Sonnet] D-MBX-A4 — append §10 architectural refinements to bindspace→mailbox plan
96107

97108
**D-id:** D-MBX-A4 | **Commit:** 0f448730 (cherry-picked from worktree `worktree-agent-a1961cf1d2ca1db93` f5cdcbe8) | **Branch:** claude/lance-surrealdb-analysis-LXmug

.claude/board/STATUS_BOARD.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -557,8 +557,9 @@ Plan path: `.claude/plans/unified-soa-convergence-v1.md`. Handover `.claude/hand
557557
| D-MBX-A3 | `witness_arc: [u32; W]` per-row column (the belief-state arc handle into AriGraph episodic Markov chain) | cognitive-shader-driver | 100 | MED | **Queued** | gates on D-MBX-A2 + OQ-11.2 |
558558
| D-MBX-A4 | Staunen × Wisdom counterfactual plasticity spreader (Hebbian, hot-path-only, Planning-gated) | cognitive-shader-driver | 80 | LOW | **Queued — design** | gates on D-MBX-A3 + OQ-11.1 + `phase` field |
559559
| D-MBX-A5 | SPO-W witness pointer dual-residency (SoA / kanban / mailbox index); SoA decides commit modality (chain pointer vs cold fact) | cognitive-shader-driver + AriGraph SPO-G | 150 | HIGH | **Queued** | gates on D-MBX-A3 + D-MBX-4 |
560-
| D-MBX-A6 | `lance-graph-planner` DTO surface overhaul: DTOs as SoA-row-lenses; planner output = `KanbanMove`s; 5-phase feature-gated cutover (OQ-11.7) | lance-graph-planner + contract | 600 | HIGH | **Queued** | gates on D-MBX-10 + D-MBX-8 + OQ-11.7 |
561-
| D-MBX-7 | `lance-graph` containers ≡ `MailboxSoA` layout ≡ `ndarray::simd_soa.rs`-aligned (1.4–4.2× SIMD payoff; hard prereq for SurrealDB transparent view) | lance-graph + ndarray | 300 | HIGH | **Queued** | gates on D-MBX-A2 + D-MBX-10 + D-MBX-11 + PR-NDARRAY-MIRI-COMPLETE |
560+
| D-MBX-A6 | `lance-graph-planner` DTO surface overhaul: DTOs as SoA-row-lenses; planner output = `KanbanMove`s; 5-phase feature-gated cutover (OQ-11.7) | lance-graph-planner + contract | 600 | HIGH | **Queued** | gates on D-MBX-10 + D-MBX-8 + OQ-11.7 + **D-MBX-A7** (§17.3) |
561+
| D-MBX-A7 | `ndarray::simd_soa::SoaColumns<N>` shape-introspection framework (derive macro + per-column-type dispatch; closes the silent gap between R1 doctrine and current `MultiLaneColumn` flat-lane surface) | ndarray (cross-repo) | 200 | MED | **Queued — design (added 2026-05-29 §17.3)** | foundation — P1 prereq; gates D-MBX-A6 + D-MBX-7 |
562+
| D-MBX-7 | `lance-graph` containers ≡ `MailboxSoA` layout ≡ `ndarray::simd_soa.rs`-aligned (1.4–4.2× SIMD payoff; hard prereq for SurrealDB transparent view) | lance-graph + ndarray | 300 | HIGH | **Queued** | gates on D-MBX-A2 + D-MBX-10 + D-MBX-11 + PR-NDARRAY-MIRI-COMPLETE + **D-MBX-A7** (§17.3) |
562563
| D-MBX-8 | Σ10 commit stamps **t = −550 ms** wall-clock (Libet anchor) in `SigmaTierRouter`; downstream ractor START fires | sigma-tier-router + shader-driver | 120 | MED | **Queued** | gates on D-MBX-A4 + D-MBX-A6 Phase 1 |
563564
| D-MBX-9 | Rubicon kanban view in `surrealkv`-on-lance (4 columns: Planning · Cognitive work · Evaluation · Commit·Plan·Prune); ractor lifecycle hooks = kanban moves | surreal_container + ractor | 250 | HIGH | **Queued** | gates on D-MBX-7 + D-MBX-8 + surreal_container BLOCKED(B/C/D) resolved (OQ-11.6) + D-PERSONA-5 |
564565
| 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 |

.claude/plans/unified-soa-convergence-v1.md

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -683,3 +683,47 @@ The `epiphany-brainstorm-council` pre-merge gate for `EPIPHANIES.md` additions (
683683
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.
684684

685685
---
686+
687+
## 17. 2026-05-29 amendments — orchestrator review pass on shipped #434
688+
689+
> 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.
714+
715+
### 17.5 — FINDING: D-MBX-12.9 (thinking-styles/atoms unification) inherits `style_recipe` from PR #433
716+
717+
§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.
718+
719+
### 17.6 — Summary table
720+
721+
| Amendment | Type | Action | Affects |
722+
|---|---|---|---|
723+
| 17.1 | FINDING | Mark prior OQ-MBX-8 Resolved → D-MBX-7 wiring | `bindspace-singleton-to-mailbox-soa-v1.md` §10 |
724+
| 17.2 | FINDING | Mark prior OQ-MBX-15′ Resolved → per-cohort scoping | `bindspace-singleton-to-mailbox-soa-v1.md` §10 |
725+
| 17.3 | CONJECTURE | Add D-MBX-A7 (`SoaColumns<N>` framework) as P1 prereq | §9 P1 + §10 + §11 risk |
726+
| 17.4 | CONJECTURE | Add OQ-11.9 (`WitnessEntry` typestate); fold into D-MBX-A5 | §10 D-MBX-A5 + §11 |
727+
| 17.5 | FINDING | Cross-ref `style_recipe` (PR #433) in §2.9 + D-MBX-12.9 | §2.9 + §10 D-MBX-12.9 |
728+
729+
**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

Comments
 (0)