diff --git a/.claude/board/AGENT_LOG.md b/.claude/board/AGENT_LOG.md index cb0f7630..ef0b517d 100644 --- a/.claude/board/AGENT_LOG.md +++ b/.claude/board/AGENT_LOG.md @@ -689,6 +689,31 @@ Opus review agent: **LAND** — no P0/P1 (exhaustively verified: coldest == evic **Outcome:** DONE (contract slice; consumer impls deferred). Realizes the planner⟷ractor⟷surreal wiring as an EXTENSION of the canonical `OrchestrationBridge` surface (lab-vs-canonical ruling — no parallel DTO family) + a zero-dep transparent-SoA-view borrow trait (E-SOA-VIEW-IS-A-BORROW). Honors R1 (view returns `&[T]`, never copies) + R4 (witness = `chain_position` pointer). Deferred: planner-emit (D-MBX-A6 Ph2-3, incl. the {native|JIT|SurrealQL|elixir} strategy set), `impl MailboxSoaView/Owner for MailboxSoA` (cognitive-shader-driver), ractor `ConsumerEnvelope::Kanban` arm, surreal_container read-view (BLOCKED on OQ-11.6 fork). **Review pattern:** `// ///`-decision-markers → `/code-review` (medium, 1 finding → REFUTED via grep + cargo check) → markers stripped → cargo verify. Design via Opus Plan agent map (LATEST_STATE + lab-vs-canonical + unified-soa-convergence-v1 + orchestration/container/surreal_container/supervisor surfaces). +## [Opus 4.7 / 1M ctx, main thread] PR #434 post-merge review + governance flip + addendum (lance-graph) + +**Branch:** `claude/lance-graph-ontology-review-Pyry3` (rebased onto `main` `1186dfd3`, 0 ahead → fast-forwarded 27 commits). | **Files (this commit):** +- `.claude/plans/unified-soa-convergence-v1-addendum-2026-05-29-review.md` (new, 156 lines) — post-merge review addendum. +- `.claude/plans/unified-soa-convergence-v1.md` — §9 P0 + §15 PRs: flip "in PR (this one)" → "SHIPPED in PR #434" (2 edits). +- `.claude/board/INTEGRATION_PLANS.md` — flip 2026-05-29 unified-soa entry `**Status:** PROPOSAL` → `**Status:** SHIPPED (PR #434 merged 2026-05-29, `1186dfd3`)` + add review-addendum cross-ref. +- `.claude/board/STATUS_BOARD.md` — add `> **Plan P0 status:** SHIPPED in PR #434 (merged 2026-05-29).` under the unified-soa section header + review-addendum cross-ref. +- `.claude/board/PR_ARC_INVENTORY.md` — PREPEND new `## #434` section with Added / Locked / Deferred / Docs / Confidence (`2026-05-29`). +- `.claude/board/LATEST_STATE.md` — refresh the "Last updated" header line to lead with PR #434 (was 2026-05-14 / PR #372 — two weeks stale). +- `.claude/board/TECH_DEBT.md` — PREPEND `TD-CLAUDE-MD-DEPS-DRIFT` (P3) flagging `CLAUDE.md` "Key Dependencies" stale pins (arrow `"57"` / datafusion `"51"` / lance `"2"` vs reality arrow 58 / datafusion 53 / lance `=6.0.0`). + +**Tests:** none (docs/board only; `cargo` prohibited per session-stability constraint, same as PR #434). + +**Review findings recorded in the addendum** (does not edit ruling text; the §1 / §11 rulings are council-bypassed author-stated content per §16): +1. **§3.2 per-row total math** — the `~30 B` figure counts only the **shipped-today** subset (D-MBX-A1); after A2/A3 land at `W=16` (OQ-11.2 default) the per-row bare total grows to ≈101 B. The ~6 KB/thought hot ceiling is dominated by the 3 × `[u64; 256]` identity planes either way, so the §3.2 ceiling math (64k–256k thoughts at 300–600 MB / 1.2–2.4 GB) stands. Clarification recommended for a future v2. +2. **§4.2 stack table gap** — the table covers arrow/datafusion/lance/lancedb/ndarray but omits **surrealdb** even though §4.3 + D-MBX-9 + OQ-11.6 hinge on a SurrealDB fork pin (`kv-lance` backend feature). Addendum proposes one extra row marked BLOCKED — OQ-11.6. +3. **§4.2 verification re-checked** — independently confirmed `arrow = "58"` (4 files), `datafusion = "53"` (3 files), `lance = "=6.0.0"` (5 files: lance-graph:38, lance-graph-benches:10, lance-graph-callcenter:30, lance-graph-ontology:46, holograph:38), `lancedb = "=0.29.0"` (1 file). D-MBX-11 is mechanical. +4. **CLAUDE.md drift** — discovered while validating #4: `CLAUDE.md` "Key Dependencies" still says `arrow = "57"` / `datafusion = "51"` / `lance = "2"` (drift from 2026-04-21 inference-click update). NOT fixed in this PR (wrong altitude — workspace-wide doctrine deserves a focused PR); tracked as `TD-CLAUDE-MD-DEPS-DRIFT`. + +**Verifications run this session (read-only):** +- `git rebase origin/main` on `claude/lance-graph-ontology-review-Pyry3` → fast-forward, 27 commits absorbed, pushed (`98bec7b8..1186dfd3`). +- `grep -nE '^(lance|lancedb|arrow|datafusion)' crates/*/Cargo.toml` confirmed §4.2 stack pins. +- `mcp__github__pull_request_read get` confirmed #434 merged 2026-05-29T18:38:43Z, merge SHA `1186dfd3`, 1 004 insertions, 6 files, 3 commits. + +**Outcome:** Plan P0 marked SHIPPED with PR ref; addendum captures the three clarification-grade findings; gov boards (`INTEGRATION_PLANS`, `STATUS_BOARD`, `PR_ARC_INVENTORY`, `LATEST_STATE`, `TECH_DEBT`) all caught up to the post-merge state. **§1 / §11 user-stated rulings untouched** (council-bypass discipline). **CLAUDE.md drift flagged not fixed** — tracked as separate TD entry for a focused follow-up PR. --- diff --git a/.claude/board/INTEGRATION_PLANS.md b/.claude/board/INTEGRATION_PLANS.md index fd46b216..7bdff330 100644 --- a/.claude/board/INTEGRATION_PLANS.md +++ b/.claude/board/INTEGRATION_PLANS.md @@ -102,7 +102,7 @@ ## 2026-05-29 — unified-soa-convergence-v1 (THE single LE SoA end-to-end across the workspace: 9 half-baked consumers + SoA version gate + Lance 6.0.1/LanceDB 0.29/DataFusion 53 alignment + 4-phase Rubicon kanban + lance-graph-planner DTO overhaul + Libet −550 ms anchor + Staunen×Wisdom plasticity spreader + SPO-W pointer via AriGraph episodic Markov chain) -**Status:** PROPOSAL / integration plan. Design-spec only, no code. **Plan file:** `.claude/plans/unified-soa-convergence-v1.md`. **Handover:** `.claude/handovers/2026-05-29-1825-soa-convergence-author-to-impl.md`. **Epiphany:** `E-SOA-IS-THE-ONLY` (+ refinements §11.3/4/6 in PR-this-one). +**Status:** SHIPPED (PR #434 merged 2026-05-29, `1186dfd3`). Design-spec only, no code. **Plan file:** `.claude/plans/unified-soa-convergence-v1.md`. **Handover:** `.claude/handovers/2026-05-29-1825-soa-convergence-author-to-impl.md`. **Review addendum:** `.claude/plans/unified-soa-convergence-v1-addendum-2026-05-29-review.md` (post-merge review by `claude/lance-graph-ontology-review-Pyry3`). **Epiphany:** `E-SOA-IS-THE-ONLY` (+ refinements §11.3/4/6). **Owns:** the meticulous integration sequence for the 5 layered user rulings ratified this session — one SoA never transformed; mailbox = full BindSpace as LE; Libet −550 ms ratchets the Rubicon kanban; SPO-W = pointer via AriGraph episodic Markov chain; counterfactual Staunen×Wisdom = plasticity spreaders. Adds D-MBX-A2/A3/A4/A5/A6, D-MBX-7/8/9/10/11/12 (12 sub-PRs); 8 open questions OQ-11.1–11.8; risk matrix; phased dependency graph (P0–P7). **Anchored iron rules:** I-VSA-IDENTITIES, I-LEGACY-API-FEATURE-GATED (governs the SoA version gate), I-SUBSTRATE-MARKOV (untouched), I-NOISE-FLOOR-JIRAK. **Predecessors:** `bindspace-singleton-to-mailbox-soa-v1` (§11 rulings); `causaledge64-mailbox-rename-soa-v1` (canonical 5-crate + 7-PR plan); `cognitive-substrate-convergence-v1/v2/v3` (Σ10 Rubicon shipped #388). diff --git a/.claude/board/PR_ARC_INVENTORY.md b/.claude/board/PR_ARC_INVENTORY.md index bccade70..a46a67e1 100644 --- a/.claude/board/PR_ARC_INVENTORY.md +++ b/.claude/board/PR_ARC_INVENTORY.md @@ -86,6 +86,46 @@ **Confidence (2026-05-31):** working — 497 contract + 240 ontology lib tests green; clippy `-D warnings` + rustfmt clean; merged clean after Codex P2 + 2 CodeRabbit findings (all real, all resolved in the babysit loop before merge). +## #434 — docs(unified-soa): meticulous integration plan + handover for ONE-SoA-end-to-end convergence (merged 2026-05-29) + +**Status:** MERGED. Branch `claude/splat3d-cpu-simd-renderer-MAOO0` → `main` at `1186dfd3`. 3 commits, +1004 lines, 6 files, **zero source code** (docs / board only). `cargo` prohibited per session-stability constraint; no build/test ran. + +**Added** (immutable) +- `.claude/plans/unified-soa-convergence-v1.md` (685 lines) — the meticulous integration plan: §1 five layered user rulings (`E-SOA-IS-THE-ONLY`), §2 the nine half-baked consumers' current-state → target-state, §3 column-by-column SoA layout + `MailboxSoAHeader` version gate + identity planes + shared-cold resources, §4 stack alignment (arrow 58 / datafusion 53 / lancedb =0.29.0 / lance =6.0.0 → =6.0.1 patch pending) + SurrealDB transparent-view enablement, §5–7 4-phase Rubicon kanban wiring + AriGraph episodic chain witness + Staunen × Wisdom plasticity spreader, §8 `lance-graph-planner` DTO surface overhaul (D-MBX-A6, 5-phase feature-gated cutover), §9 phased migration P0–P7, §10 per-deliverable specs for D-MBX-A2/A3/A4/A5/A6/7/8/9/10/11/12 (each with owner, LOC, risk, tests, gates), §11 eight open questions OQ-11.1…OQ-11.8 with default proposals + ratification gates, §12 risk matrix, §13 success criteria, §14 dependency graph, §15 cross-references, §16 council-bypass note. +- `.claude/handovers/2026-05-29-1825-soa-convergence-author-to-impl.md` (119 lines) — handover per CLAUDE.md format: What-I-did chronology · FINDING · CONJECTURE · Blockers · 8 OQs for the user · recommended next-session entry sequence · code anchors · provenance (rulings verbatim). +- Board hygiene committed in the same merge: `INTEGRATION_PLANS.md` prepend, `STATUS_BOARD.md` new plan section (D-MBX-A1 Shipped + A2/A3/A4/A5/A6/7/8/9/10/11/12 Queued), `EPIPHANIES.md` already carrying `E-SOA-IS-THE-ONLY` (commit `eb5c4a5`). + +**Locked** (immutable) +- **ONE SoA, never transformed** is the carrier doctrine (`E-SOA-IS-THE-ONLY` R1): only three operations allowed on it — cognitive-shader thinking, cold-path read/write to LanceDB, AriGraph Markov context. Any mailbox SoA mutation IS the only hot-path activity. +- **Mailbox = full BindSpace reinvented as LE; witness = the per-row arc of `CausalEdge64` emissions** (R2): the arc implicitly documents NARS revision; no separate revision log column. +- **Libet −550 ms** anchors the Σ10 Rubicon commit (R3); 4-phase kanban (Planning → Cognitive work → Evaluation → Commit · Plan · Prune) lives in `surrealkv`-on-lance (SurrealDB is a view, LanceDB stays leading storage). +- **SPO-W witness is a pointer into the AriGraph episodic Markov chain** (R4); the chain IS the index space; no parallel episodic structure. +- **Counterfactual Staunen × Wisdom = plasticity spreaders** (R5): Hebbian, Planning-gated, hot-path-only. +- **SoA version byte at the layout root** (`MailboxSoAHeader`, D-MBX-10); governed by `I-LEGACY-API-FEATURE-GATED`; v(M) reader MUST refuse v(N>M) bytes without explicit handshake; field-isolation matrix tests mandatory on every column op (Sprint-11 5-instance catalogue). +- **Stack pin target** verified 2026-05-29: arrow 58 ✓ / datafusion 53 ✓ / lancedb =0.29.0 ✓ / lance =6.0.0 → =6.0.1 (one mechanical patch bump pending across 5 Cargo.toml files; D-MBX-11). +- **lance-graph-planner DTO surface overhaul** (D-MBX-A6): planner output = `KanbanMove`s; DTOs become SoA-row-lenses; 5-phase feature-gated cutover behind `planner-soa-v2`; v1 deleted at end (OQ-11.7 default). +- **Council bypass for the §11 rulings** is explicit (§16): `epiphany-brainstorm-council` (shipped #433) is bypassed for author-stated user rulings; the plan's *spec content* remains open to council review via PR. + +**Deferred** (immutable) +- **Cargo prohibition** still in force (session-stability constraint): all `cargo check`/`test` invocations and the actual `=6.0.1` patch bump (D-MBX-11) defer until the prohibition lifts. +- **OQ-11.1 … OQ-11.8** await user ratification (default proposals recorded in §11): + - OQ-11.1 Staunen × Wisdom spread radius / decay / column-local vs baton-routed. + - OQ-11.2 `witness_arc` width `W`. + - OQ-11.3 distinct "vetoed/ghosted" kanban column vs Prune. + - OQ-11.4 CLAUDE.md "The Click" / `Vsa16kF32` doctrinal update timing. + - OQ-11.5 SoA version field width + per-column version stamps. + - OQ-11.6 surrealdb fork URL + branch + `kv-lance` feature flag (BLOCKED(C) — needs fork-access human). + - OQ-11.7 planner DTO overhaul scope (clean break vs feature-gated coexistence; default = feature-gated). + - OQ-11.8 D-MBX-12 sub-PR sequencing. +- **D-MBX-9** (Rubicon kanban view in `surrealkv`-on-lance) blocked on `surreal_container` BLOCKED(B/C/D); the rest of the plan ships without the SurrealDB view (it's a view, not the store). + +**Docs** (immutable) +- `.claude/plans/unified-soa-convergence-v1.md` (the plan itself) +- `.claude/handovers/2026-05-29-1825-soa-convergence-author-to-impl.md` (the handover) +- `.claude/plans/unified-soa-convergence-v1-addendum-2026-05-29-review.md` (post-merge review addendum, this PR) + +**Confidence (2026-05-29):** HIGH on the integration spec (the five rulings are author-stated and verbatim-recorded; §10 per-deliverable specs are consistent with `mailbox_soa.rs` and the Cargo pins as of HEAD `1186dfd3`). MED on the per-deliverable LOC estimates (will refine as each D-MBX-* lands). LOW on D-MBX-9 timing (gated on the long-standing `surreal_container` BLOCKED(B/C/D)). + --- ## callcenter/audit-fix — fix(callcenter): `with_jsonl_audit` returns `Result` (branch work) diff --git a/.claude/board/STATUS_BOARD.md b/.claude/board/STATUS_BOARD.md index a05c89ea..feeeb8da 100644 --- a/.claude/board/STATUS_BOARD.md +++ b/.claude/board/STATUS_BOARD.md @@ -617,7 +617,9 @@ hot/cold/feedback loop onto our contract types + SoA floor ## unified-soa-convergence-v1 — ONE LE SoA end-to-end across 9 consumers + version gate + Lance 6.0.1 stack + 4-phase Rubicon kanban -Plan path: `.claude/plans/unified-soa-convergence-v1.md`. Handover `.claude/handovers/2026-05-29-1825-soa-convergence-author-to-impl.md`. Epiphany `E-SOA-IS-THE-ONLY` (+ §11.3/4/6 refinements). +> **Plan P0 status:** SHIPPED in PR #434 (merged 2026-05-29). Deliverable rows below remain Queued; they ship in follow-up PRs per phase sequencing. + +Plan path: `.claude/plans/unified-soa-convergence-v1.md`. Handover `.claude/handovers/2026-05-29-1825-soa-convergence-author-to-impl.md`. Review addendum `.claude/plans/unified-soa-convergence-v1-addendum-2026-05-29-review.md`. Epiphany `E-SOA-IS-THE-ONLY` (+ §11.3/4/6 refinements). | D-id | Title | Crate(s) | ~LOC | Risk | Status | PR / Evidence | |---|---|---|---|---|---|---| diff --git a/.claude/handovers/2026-06-05-1730-splat-cesium-osm-arc-closeout.md b/.claude/handovers/2026-06-05-1730-splat-cesium-osm-arc-closeout.md new file mode 100644 index 00000000..e2ef6cda --- /dev/null +++ b/.claude/handovers/2026-06-05-1730-splat-cesium-osm-arc-closeout.md @@ -0,0 +1,117 @@ +# 2026-06-05 session — handover to next session + +> **Session:** `claude/lance-graph-ontology-review-Pyry3` (Opus 4.7 / 1M context, main thread). +> **Source of truth:** this file. The `.claude/board/AGENT_LOG.md` entries are also live and authoritative. + +## Read first (3 minutes) + +If you are the next session opening this workspace, read in this order: + +1. `.claude/BOOT.md` — workspace mandatory reads (board files). +2. This file — what shipped + what's outstanding from the 2026-06-05 session. +3. The four "outstanding decision" tables below — each names a specific PR or session you may need to coordinate with. + +## What shipped this session (14 PRs across 4 repos) + +Two cross-workspace arcs landed, fully clean end-to-end (canonical plan → companion stubs/handovers → reviewer fixes → ADR adoption callouts). + +### Arc 1 — splat-native-ultrasound-v1 (CPU-only Gaussian-splat ultrasound SaMD) + +| PR | Repo | What | Status | +|---|---|---|---| +| #471 | lance-graph | Canonical plan + 14 D-SPLAT-* deliverables + Q1/Q2 OGAR coordination | merged | +| #472 | lance-graph | Reviewer fix arc on #471 (5 fixes) | merged | +| #212 | ndarray | SIMD substrate plan (D-SPLAT-2 — 5 W1c primitives) | merged | +| #213 | ndarray | Reviewer fix arc on #212 (ray-segmentation + Cholesky-scratch) | merged | +| #163 | MedCare-rs | HIPAA wire handover (D-SPLAT-10/11) | merged | +| #164 | MedCare-rs | Reviewer fix arc on #163 (pose_se3 16→24) | merged | +| #34 | OGAR | §6 FMA-litmus customer narrative | merged | +| #35 | OGAR | Reviewer fix arc on #34 (IVD-MDR → MDR Annex VIII Rule 11) | merged | +| #476 | lance-graph | D-SPLAT-4 ADR-024 adoption callout | merged | + +### Arc 2 — cesium-osm-substrate-v1 (OSM as 6th source class for 3DGS-ArcGIS-Cesium ingestion) + +| PR | Repo | What | Status | +|---|---|---|---| +| #473 | lance-graph | Canonical plan + 7 D-OSM-* deliverables + Q1/Q2/Q3 OGAR coordination | merged | +| #474 | lance-graph | Other session: D-OSM-2 ownership-boundary fix on #473 | merged | +| #214 | ndarray | D-OSM-1 stub (mirrors `arcgis_pbf.rs`; live Q3 Y-flip helper) | merged | +| #475 | lance-graph | §11 ADR-024 adoption callout + CR Major fixes (prefix unification + coordinate-fidelity metric) | merged | + +### ADR-024 (palette256 + HHTL codec) — companion to both arcs + +OGAR session shipped **ADR-024** (`OGAR/docs/ARCHITECTURAL-DECISIONS-2026-06-04.md`) as the universal compression primitive across security perms (Binary16K `_effectiveReaders`), attention (bgz-tensor WeightPalette), distance (arm-discovery aerial codebook ρ=0.9973 vs cosine), OSM tag palette (D-OSM-2), and SH coefficient palette (D-SPLAT-4). Empirical floor: **ρ ≥ 0.99** per adopting domain. + +## Outstanding decisions (these need someone — you, the user, or another session) + +### Decision 1 — substrate-addressing-v1.md plan (mine to file when unblocked) + +Third session proposed three P0 substrate-of-substrate deliverables: +- **D-HELIX-1** — `helix::bounds(nibblepath)` + `helix::centroid(nibblepath)`. Owner: helix-crate owner (third session). +- **D-CESIUM-1** — extend `crates/cesium/src/implicit_tiling.rs` to consume `helix::bounds` as a tiling backend. Owner: runtime (me). +- **D-JC-1** — `jc::predict_lod(scene_cert, tolerance) → level`. Owner: jc-crate owner. + +I committed to file the consolidating `substrate-addressing-v1.md` plan **after** D-HELIX-1 and D-JC-1 owners bless their pieces. Greenlit but not yet filed. **Trigger:** ping from helix or jc owner. + +**Update 2026-06-05 (post-handover-doc-write, after surveying #471-#487):** D-HELIX-1 substantially unblocked. PR **#485** (`claude/probe-mantissa-fill`, **still OPEN**) lands **PROBE-MANTISSA-FILL + PROBE-PHASE-1, both GREEN** against the SHIPPED helix code: +- Golden-mantissa placement beats seeded uniform-random by ~30% at k=256 (192/3 vs 141-150/5-6) and at k=1024 with half the worst-case pile-up. The "golden mantissa places implicit centroids" leg of the substrate-addressing claim is now **measured, not asserted**. +- `CurveRuler` regeneration is **bit-exact** across independent constructions over 20 `(path, depth)` pairs incl. `u64::MAX`; stride-4-over-17 arc is full permutation from every one of 17 start offsets. Same address ⟹ same sequence is the deterministic-phase pin's empirical proof. + +PR **#482** (`docs(knowledge): GUID canon + prefix routing`, **merged**) lands two architectural pins that bind any future `substrate-addressing-v1.md`: +- **TWO-ALGEBRA RULE** (load-bearing): sign = XOR (`vsa_bind`); magnitude = `vsa_bundle`, **NEVER `MergeMode::Xor`** (breaks Markov per `I-SUBSTRATE-MARKOV`). Cited as PP-13 P1-1 — permanent CI guard. +- **Helix `CurveRuler` stride-4-over-17** is the canonical bit-exact integer phase generator; analysis remainder escalates per the quorum certificate. +- Probe ledger: HILBERT-L4 (ndarray #215) · PHASE-1 (#485) · MANTISSA-FILL (#485) all GREEN; remaining: ROUTE-1 · QUORUM-1 · PHI-1 · PYR-1 · PERT-RHO · CODEBOOK-44 · WHP-1..4 · PROBE-ATTN-EDGE · PROBE-SPLAT-PSD · PROBE-CASCADE-SPARSITY. + +**New trigger for substrate-addressing-v1.md filing:** after #485 merges. The two-algebra rule + bit-exact phase generator + measured golden-mantissa placement are now load-bearing receipts the plan can cite verbatim. The D-CESIUM-1 (mine — extend `implicit_tiling.rs` to consume `helix::bounds`) becomes the file-soonest deliverable; D-JC-1 still needs per-scene-class `p` calibration timeline from jc-crate owner. + +### Decision 2 — Tier-1 cross-session asks (status table) + +From my coordination message earlier this session. Status as of session close: + +| Ask | From | Status | +|---|---|---| +| FMA Phase 8 implementation opens (TTL → FmaEntity SoA emitter on top of OGAR #37's parser) | OGAR | NOT YET — TTL parser exists (#37), FMA-specific lift not yet written | +| NiblePath identity-prefix scheme for FMA classes | OGAR | **RESOLVED (post-handover survey).** lance-graph #484 ships `D-IDENTITY-2: entity_type↔NiblePath bijection` in `lance-graph-ontology` registry — `register_class_path` is bijective + dedup-by-URI + conflict-rejecting + u16-overflow-guarded; +5 tests; 14 registry tests green. OGAR Phase 8 calls `register_class_path("fma/Class/", entity_type)` per FMA class. The `NodeGuid` layout change (groups 3-4 reclaim for HIP/TWIG) is the version-gated Phase-B follow-up; not blocking for FMA registration. | +| FMA region partitioning scheme for Lance row-groups | OGAR | NOT YET | +| MailboxSoAHeader format frozen? | lance-graph contract owner | UNCLEAR — D-SPLAT-1/3 carriers inherit this | +| bgz17 SH palette extension blessing (D-SPLAT-4 + ADR-024) | bgz17 owner | NOT YET — needed before D-SPLAT-4 implementation | +| D-OSM-4 batched_sample_height W1c primitive | ndarray SIMD-savant | NOT YET — needed before D-OSM-5 | +| No breaking RedactionMode rework queued? | MedCare-rs | NOT YET CONFIRMED — D-SPLAT-10 / D-OSM splat-fit depend on existing set | +| 3DGS-ArcGIS-Cesium parent-plan owner blessing for cesium-osm as 6th source class | lance-graph plan owner | NOT YET CONFIRMED | +| D-OSM-6 (`cesium-3dtiles-writer` crate) ownership | UNASSIGNED | NOT YET — genuine Rust gap; no existing session owns it | +| ndarray PR #189 `OntologySchema::is_ancestor` measured on real FMA (~75K) | ndarray PR owner | NOT YET — §6 acceptance gate hangs on this | + +### Decision 3 — User ratification owed (before any P1 sprint implementation opens) + +- **OQ-SPLAT-1..4** (probe SDK / SH degree / beamformer scope / AR egress) +- **OQ-OSM-1..5** (Tag canonicalization / DEM source / writer scope / planet-scale ingest / coordinate-policy) + +Default proposals are in the respective plans. No implementation PRs should open without these. + +### Decision 4 — Unified-soa post-merge addendum (PR opened today) + +Resurfaced from the early-session Pyry3 branch during today's rebase pass. **PR opened against lance-graph main** as the resolution path (alternative was to drop or leave-on-branch — both worse per board hygiene rule). Reviewer choice in the PR body: ship as-is OR scope down to plan-file edits only (board entries are 80+ commits stale). + +## Mechanics — git state at session close + +| Repo | Pyry3 state | Pushed? | +|---|---|---| +| lance-graph | rebased onto `5363f436`; 1 commit ahead (`5b7e3163` unified-soa addendum, now PR'd) | force-with-lease pushed ✓ | +| ndarray | local rebased to `cb77a31` (= origin/master); push rejected as stale (another session active on the branch) | local-only; nothing of mine to push | +| MedCare-rs | rebased onto `b074aa3`; clean fast-forward | force-with-lease pushed ✓ | + +ndarray Pyry3 has another session actively pushing — coordinate via that session's handover rather than force-pushing over them. + +## Architectural pins from this session (cite by name in future work) + +- **E-SOA-IS-THE-ONLY** — one substrate, three operations. Splat-native + cesium-osm both incarnations. +- **ADR-024** (palette256 + HHTL codec) — load-bearing across security / attention / distance / OSM / SH. Empirical floor ρ = 0.9973 (arm-discovery anchor); target ≥ 0.99 for new adopters. +- **NR-SPLAT-PHI** (in `splat-native-ultrasound-v1.md §3.10`) — scanner-frame splat geometry is non-identifying on its own; `patient_ref ↔ splat_volume` link IS PHI; raw RF/IQ never persisted. +- **Q3 OSM-XYZ → TMS Y-flip** (in `ndarray/crates/cesium/src/osm_pbf.rs::xyz_to_tms_y`) — single boundary helper; runtime sees only TMS. +- **MDR Annex VIII Rule 11** (correct regulation for ultrasound SaMD; NOT IVDR) — pinned across splat-native + OGAR docs. + +## Pointer to next action + +If you have nothing else queued, the cheapest productive next step is to **ping the helix-crate owner and jc-crate owner** so Decision 1 unblocks. Once D-HELIX-1 + D-JC-1 are blessed, file `substrate-addressing-v1.md` and the three-deliverable cross-arc unification lands. + +_End of handover._ diff --git a/.claude/plans/unified-soa-convergence-v1-addendum-2026-05-29-review.md b/.claude/plans/unified-soa-convergence-v1-addendum-2026-05-29-review.md new file mode 100644 index 00000000..852cd1be --- /dev/null +++ b/.claude/plans/unified-soa-convergence-v1-addendum-2026-05-29-review.md @@ -0,0 +1,119 @@ +# unified-soa-convergence-v1 — review addendum (post-merge, 2026-05-29) + +> **Status:** REVIEW NOTES — review of the merged plan after PR #434 landed on `main` (`1186dfd3`). +> **Reviewed:** 2026-05-29, session `claude/lance-graph-ontology-review-Pyry3`. +> **Scope:** does not touch the §1 / §11 user-stated rulings (`E-SOA-IS-THE-ONLY` + refinements). Adds clarifications, fills one stack-table gap, records a verification result, and flags one cross-doc drift that belongs to a separate PR. +> **Anchor file:** `.claude/plans/unified-soa-convergence-v1.md` (685 lines, shipped PR #434). + +--- + +## 1. Status flip (the one update that propagates back to the plan itself) + +§9 P0 ("design ratification") and §15 "PRs (recent context)" both refer to the plan as `in PR (this one)` / `PR (this one)`. The plan merged in **PR #434** on 2026-05-29 (`1186dfd3` merge commit). The in-place plan edits in this branch flip those two references. + +The five-ruling content in §1 / §11 is **untouched** (author-stated, council-bypassed per §16; correcting that would violate the council-bypass discipline). + +--- + +## 2. §3.2 per-row total — clarification (no semantic change) + +§3.2 lists per-row column types totalling `4 + 1 + 4 + 8 + 8 + 4 + 2 + 6 + 4·W = 37 + 4·W` bytes, then narrates "Per-row hot total: ~30 B (bare migrated SoA columns) + ~6 KB Hamming identity planes ... = ~6 KB/thought." + +Both numbers are right but they answer **different questions**: + +- The `~30 B` count includes only the **D-MBX-A1-shipped** columns (`energy 4 + plasticity 1 + last_emission 4 + edges 8 + qualia 8 + meta 4 + entity 2 = 31 B`) — i.e. *the columns that exist on `mailbox_soa.rs` today*. The shipped subset. +- The `~6 KB/thought` figure includes the per-row footprint **plus** the 3 × `[u64; 256]` identity planes (3 × 2048 B = 6144 B per **thought**, not per row). +- After D-MBX-A2 / A3 land, the per-row bare total grows by `content_ref(6) + witness_arc(4·W)`; at the default `W = 16` (OQ-11.2) that's `+70 B`, taking the per-row bare total to **≈101 B**. The hot per-thought ceiling math (64k–256k thoughts at 300–600 MB / 1.2–2.4 GB) is **still dominated by the identity planes** (6 KB ≫ 100 B per row), so the §3.2 ceiling numbers do not change materially even after the Queued columns land. + +**Recommendation:** when §3.2 is next revised (a separate v2 PR, not this addendum), split the per-row table into "shipped today" vs "shipped + queued" columns to remove the ambiguity. The ceiling math stays correct either way. + +--- + +## 3. §4.2 stack alignment — surrealdb fork row (the one true gap) + +The §4.2 stack-pin table covers `arrow / datafusion / lance / lancedb / ndarray` but is silent on **`surrealdb`** — even though §4.3 / D-MBX-9 / OQ-11.6 all hinge on a SurrealDB fork pin (with the `kv-lance` backend feature) to materialize the Rubicon kanban as a transparent view over LanceDB. The pin is OQ-11.6 prose only; a future reader skimming §4.2 will conclude the stack alignment is already complete when in fact one pin is still unknown. + +**Addendum row** (proposed for §4.2 in a future v2): + +| Layer | Current | Target | Delta | +|---|---|---|---| +| `surrealdb` (fork) | BLOCKED — fork URL + branch unknown | TBD; must carry the `kv-lance` backend feature flag | BLOCKED — see OQ-11.6 | + +This makes the "one transparent container view" prereq visible at the same altitude as the other stack pins, instead of being buried in §4.3. + +--- + +## 4. §4.2 verification — independently re-checked 2026-05-29 + +I re-checked the §4.2 claims against the workspace `Cargo.toml`s in this branch (`claude/lance-graph-ontology-review-Pyry3`, HEAD `1186dfd3`): + +| Pin claim | File:line | Verified | Notes | +|---|---|---|---| +| `arrow = "58"` | `crates/lance-graph/Cargo.toml:16` | ✓ | unchanged since author-time | +| `datafusion = "53"` | `crates/lance-graph/Cargo.toml:21` | ✓ | unchanged since author-time | +| `lance = "=7.0.0"` | `crates/lance-graph/Cargo.toml:38` | ✓ post-rebase | **updated since author-time** — original addendum cited `=6.0.0`; main bumped to `=7.0.0` (and lance-linalg to `=7.0.0`) between PR #434 merge and this PR opening. `D-MBX-11`'s "mechanical patch bump pending across 5 Cargo.toml files" is now superseded — main has already moved past `=6.0.1` to `=7.0.0` | +| `lancedb = "=0.30.0"` | `crates/lance-graph/Cargo.toml:41` | ✓ post-rebase | **updated since author-time** — original cited `=0.29.0`; main bumped to `=0.30.0` | + +**D-MBX-11 readiness:** confirmed mechanical 5-file edit (`=6.0.0` → `=6.0.1`). When cargo prohibition lifts, one `cargo check` per crate gates the bump. + +--- + +## 5. CLAUDE.md "Key Dependencies" drift — flagged, NOT fixed by this addendum + +The lance-graph `CLAUDE.md` "Key Dependencies" block (under `## Key Dependencies`) still lists: + +``` +arrow = "57" +datafusion = "51" +lance = "2" +``` + +The workspace pins shown in §4 above are **arrow 58 / datafusion 53 / lance =6.0.0**. The CLAUDE.md block is months stale (it dates to the 2026-04-21 categorical-algebraic-inference update). + +**Why this addendum does not fix it:** CLAUDE.md is workspace-wide doctrine that drives every session boot via the SessionStart hook. A drive-by edit hidden inside an unrelated PR is the wrong altitude. The right move is a focused 1-PR drift-fix that updates the Key Dependencies block + the Cross-Repo Dependencies table + verifies no other CLAUDE.md section quotes stale pins. + +**Tracking:** add to `.claude/board/TECH_DEBT.md` under a new `TD-CLAUDE-MD-DEPS-DRIFT` entry (separate change). + +--- + +## 6. Cross-check vs `.claude/board/STATUS_BOARD.md` + +STATUS_BOARD.md § unified-soa lines 549-566 already lists D-MBX-A1 (Shipped) + A2/A3/A4/A5/A6/7/8/9/10/11/12 (Queued). The dependencies / gates listed in those rows are consistent with §10 of the plan. The post-merge action is the status flip on the section's own header line — done in this PR. + +--- + +## 7. Cross-check vs `EPIPHANIES.md` + +`E-SOA-IS-THE-ONLY` (eb5c4a5, 2026-05-29) carries the five rulings verbatim, and the §11.3 / §11.4 / §11.6 refinements are integrated into the same epiphany block (per the plan's §0 anchoring). Council bypass is correctly documented (§16). **No epiphany-side correction is needed.** + +--- + +## 8. Cross-check vs `PR_ARC_INVENTORY.md` + +PR_ARC's 2026-05-29 unified-soa entry was written *pre-merge* and still records `**Status:** PROPOSAL`. Per the APPEND-ONLY rule (only Status / Confidence lines are updatable), the post-merge flip lands on the existing entry. Done in this PR. A new PR_ARC entry is also PREPENDED for #434 itself (the merge event). + +--- + +## 9. What this addendum does NOT do + +- Does **not** edit the rulings text in §1 / §11 (council-bypass discipline). +- Does **not** touch §10 deliverable specs (those are the work product, edited only by their own implementation PRs). +- Does **not** patch CLAUDE.md (out of altitude — separate focused PR). +- Does **not** invoke `cargo` (session-stability prohibition still active). + +--- + +## 10. Summary of in-place edits accompanying this addendum + +| File | Change | Rule cited | +|---|---|---| +| `.claude/plans/unified-soa-convergence-v1.md` §0 / §9 / §15 | "in PR (this one)" → "SHIPPED in PR #434 (merged 2026-05-29)" — 3 spots | Plans are append-only; status references are updatable | +| `.claude/board/INTEGRATION_PLANS.md` (2026-05-29 unified-soa entry) | `**Status:** PROPOSAL` → `**Status:** SHIPPED (PR #434, merged 2026-05-29)` | CLAUDE.md "Status / Confidence lines are updatable" | +| `.claude/board/STATUS_BOARD.md` (unified-soa section) | Add `> **Status:** SHIPPED (PR #434, merged 2026-05-29).` line under the section header | same | +| `.claude/board/PR_ARC_INVENTORY.md` | PREPEND a new entry for the #434 merge with Added / Locked / Deferred / Docs / Confidence | rule 1: new PRs PREPEND | +| `.claude/board/LATEST_STATE.md` | Update the "Last updated" header line to lead with #434 | post-merge gov rule | +| `.claude/board/TECH_DEBT.md` | PREPEND `TD-CLAUDE-MD-DEPS-DRIFT` | flag for follow-up PR | + +--- + +_End of addendum._ diff --git a/.claude/plans/unified-soa-convergence-v1.md b/.claude/plans/unified-soa-convergence-v1.md index 54f6eea7..d92fdfc6 100644 --- a/.claude/plans/unified-soa-convergence-v1.md +++ b/.claude/plans/unified-soa-convergence-v1.md @@ -377,7 +377,7 @@ This is exactly the re-encode boundary R1 forbids: the planner reads its own DTO ### Phase P0 — design ratification (this plan) -- **Status:** in PR (this one). +- **Status:** SHIPPED in PR #434 (merged 2026-05-29; see post-merge review addendum at `.claude/plans/unified-soa-convergence-v1-addendum-2026-05-29-review.md`). - **Output:** unified-soa-convergence-v1.md (this file) + handover doc + epiphany pointers. ### Phase P1 — prerequisites @@ -672,7 +672,7 @@ D-MBX-11 (Lance 6.0.1) ─────────────────── - PR #417 — `E-CONTRACT-NO-SERIALIZE-2` correction (shipped). - PR #418 — bindspace-singleton-to-mailbox-soa migration spec (shipped; this plan extends). - PR #433 — `style_recipe` D-Atom + epiphany-brainstorm-council + 5 savant cards (shipped). - - PR (this one) — unified-soa-convergence-v1 + handover. + - PR #434 — unified-soa-convergence-v1 + handover (shipped 2026-05-29; review addendum at `.claude/plans/unified-soa-convergence-v1-addendum-2026-05-29-review.md`). ---