Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions .claude/board/AGENT_LOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,34 @@
## [Opus 4.7 / 1M ctx, main thread] splat-native-ultrasound-v1 — cross-workspace integration plan + per-repo work-division + interconnect map

**Branch:** `claude/splat-native-ultrasound-v1` (new branch off `main` at `38627e9c5a`). **Files (this commit, lance-graph side):**
- `.claude/plans/splat-native-ultrasound-v1.md` (new, ~930 lines) — canonical cross-workspace plan; §10 per-repo work-division matrix + interconnect map + sprint cadence table.
- `.claude/board/INTEGRATION_PLANS.md` — PREPEND splat-native-ultrasound-v1 entry.
- `.claude/board/STATUS_BOARD.md` — new section with 14 D-SPLAT-* deliverable rows (D-SPLAT-1..14).
- `.claude/board/AGENT_LOG.md` — this entry.

**Companion docs (separate PRs in sibling repos):**
- `ndarray/.claude/plans/splat-native-ultrasound-simd-substrate-v1.md` (~~250 LOC; D-SPLAT-2 SIMD substrate perspective)
- `MedCare-rs/.claude/handovers/2026-06-05-splat-native-medcare-hipaa-wire.md` (~250 LOC; D-SPLAT-10/11 HIPAA wire perspective)
- `OGAR/docs/SPLAT-NATIVE-CUSTOMER.md` (~250 LOC; §6 FMA-litmus customer narrative; via pygithub branch + PR)

**Tests:** none (docs/board only; `cargo` not invoked per the docs-PR pattern). No source code in any of the four PRs.

**Architecture summary** (full detail in plan §0-§10):
- 14 deliverables across 4 repos + 3 new standalone crates (`splat-fit`, `splat-actors`, `splat-render`).
- Phases P1-P7: substrate (sprint 1-2) → engine (sprint 3) → actors + multi-frame (sprint 4-5) → FMA atlas + registration (sprint 6-8) → HIPAA wire (sprint 9-10) → AR surface (sprint 11-13) → SaMD docs (sprint 14+, parallel).
- 4 critical-path edges identified: ndarray D-SPLAT-2 → all SIMD consumers; contract D-SPLAT-1/3 → all carrier consumers; OGAR Phase 8 → lance-graph D-SPLAT-8 FMA atlas; D-SPLAT-12 → AR consumers.
- 5 open questions OQ-SPLAT-1..5 with default proposals (Telemed ArtUs first probe; ℓ=3 SH degree; consume probe BF where available; AR stays on-device; canonical lance-graph + per-repo companions).
- Inherits (no new build): bardioc PR #17 Rubicon kanban for frame ratification gate; callcenter PR #467 `LanceMembrane::commit_event` for HIPAA audit; OGAR PR #25/#31 `KnowableFromStore` for splat-ingest registration; lance-graph PR #434 unified-SoA carrier doctrine.

**Inherits the §11.2 work-division principles:**
1. Math primitives live in ndarray; carriers live in `lance-graph-contract`; engines live in standalone crates.
2. OGAR owns the upstream ontology; lance-graph owns the runtime atlas; MedCare-rs owns the PHI wire.
3. Inherits, never invents — no new orchestration layer, no new mailbox primitive, no new audit sink.

**Outcome:** canonical plan + 14 deliverable rows + governance ledger entries; cross-workspace coordination protocol declared in §10.10 (Layer-1 `OrchestrationBridge` + Layer-2 `READ BY` knowledge-doc activation); the §6 FMA bones-rendering litmus from OGAR PR #30 transitions from "demo target" to "load path" — splat-native is the explicit customer that proves the litmus.

---

## [Main thread / Opus, autoattended] D-SUBSTRATE-B-CONSUMER-DOC-FIX — codex P1 correction on PR #465 (audit retention caveat)

**Branch:** doc/knowledge-old-stack-capability-parity-fix. Follow-up to merged PR #465; addresses codex P1 finding that §2.1 + §5.1 overclaimed Lance-versions-as-immutable-audit.
Expand Down
10 changes: 10 additions & 0 deletions .claude/board/INTEGRATION_PLANS.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,13 @@
## 2026-06-05 — splat-native-ultrasound-v1 (CPU-only Gaussian-splat ultrasound SaMD: probe RF/IQ → splat-fit → Mailbox<Gaussian3D> → 4-phase Rubicon kanban → FMA-atlas Σ-sandwich registration → AR rendering; the explicit customer of OGAR PR #30 §6 FMA litmus + ADR-022 firewall as SaMD Class IIa evidence base)

**Status:** PROPOSAL. Design-spec only, no code. **Plan file:** `.claude/plans/splat-native-ultrasound-v1.md` (~930 LOC, 12 sections incl. §10 per-repo work-division + interconnect map). **Trigger:** user-supplied architecture diagrams (English 6-stage + German business-facing).
**Owns:** 14 deliverables D-SPLAT-1..14 across 4 repos. ndarray D-SPLAT-2 (SIMD splat ops); lance-graph D-SPLAT-1/3/4/5/8/9 (carriers + SH palette + registration math + FMA atlas + style_recipe); new standalone `crates/splat-fit` D-SPLAT-6; `crates/splat-actors` D-SPLAT-7/13; `crates/splat-render` D-SPLAT-12; MedCare-rs D-SPLAT-10/11 (`memory.ultrasound_frame.lance` + `commit_event` audit); OGAR Phase 8 customer of #30; q2/quarto D-SPLAT-14 (SaMD documentation track Forschungstool→Studie→Class IIa).
**Anchored:** E-SOA-IS-THE-ONLY (one substrate, three operations: fit/accumulate/render), E-BATON-1 (frame baton handoff), E-RUBICON-RACTOR (Libet −550 ms 4-phase kanban), I-VSA-IDENTITIES (Gaussian class_id points to FMA URI), I-NOISE-FLOOR-JIRAK (Mahalanobis significance + ICP convergence thresholds).
**Companion docs:** `ndarray/.claude/plans/splat-native-ultrasound-simd-substrate-v1.md` (SIMD-substrate perspective), `OGAR/docs/SPLAT-NATIVE-CUSTOMER.md` (§6 FMA-litmus customer narrative), `MedCare-rs/.claude/handovers/2026-06-05-splat-native-medcare-hipaa-wire.md` (HIPAA wire perspective).
**5 open questions:** OQ-SPLAT-1 first probe SDK (default: Telemed ArtUs — RF directly, USB, lowest regulatory friction); OQ-SPLAT-2 SH degree budget (default: ℓ=3, 16 coeffs); OQ-SPLAT-3 beamformer scope (default: consume probe's BF where available, fall back DAS); OQ-SPLAT-4 AR splat egress (default: no — stays on HoloLens); OQ-SPLAT-5 plan home (resolved: lance-graph canonical + per-repo companions).

---

## 2026-06-01 — north-star-integration-v1 (the two-ViewAngle destination: business "Odoo-in-Rust × OGIT+DOLCE+GoBD" ∥ semantic cognitive-substrate §9–14; maps current→target + the 9 wiring decisions WD-1..WD-9 for the 5-dev council)

**Status:** PROPOSAL / pre-council. **Plan file:** `.claude/plans/north-star-integration-v1.md`. **North star:** `.claude/north-star/README.md` (the 2 reference diagrams, textual capture; PNG slots open). Shipped: §3 capstone + A1 rule + A2 rung (#450), A6 emission surface (branch). The council irons WD-1 (I4x32D 2-halves vs 4-view OGIT O/G/I/T) · WD-2 (OGIT resolver) · WD-3 (vart key + indexes) · WD-4 (version subscription — **no Delta Lake**: vart+Lance-native+SurrealDB-LIVE) · WD-5 (ractor + Belief/Goal BDI) · WD-6 (**Rust core vs Elixir OTP/BEAM split** — the big one) · WD-7 (Figure 4→64 moods) · WD-8 (GoBD audit) · WD-9 (DeepNSM dual-view head2head). The determinism→GoBD thesis: the firewall IS the compliance guarantee.
Expand Down
23 changes: 23 additions & 0 deletions .claude/board/STATUS_BOARD.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,26 @@
## splat-native-ultrasound-v1 — CPU-only Gaussian-splat ultrasound SaMD (14 deliverables across ndarray/lance-graph/MedCare-rs/OGAR + new standalone crates)

Plan path: `.claude/plans/splat-native-ultrasound-v1.md`. Companions: ndarray `.claude/plans/splat-native-ultrasound-simd-substrate-v1.md`; OGAR `docs/SPLAT-NATIVE-CUSTOMER.md`; MedCare-rs `.claude/handovers/2026-06-05-splat-native-medcare-hipaa-wire.md`. Customer of OGAR PR #30 §6 FMA bones-rendering litmus + ADR-022 SaMD audit-controls evidence base.

| D-id | Title | Crate(s) / repo | ~LOC | Risk | Status | PR / Evidence |
|---|---|---|---|---|---|---|
| D-SPLAT-1 | `Gaussian3D` carrier (`mu`/`sigma_packed`/`amplitude`/`opacity`/`sh[16]`/`frame_idx`/`class_id`; 80 B/row) | `lance-graph-contract::splat` | 120 | LOW | **Queued — P1 sprint 1-2** | gates on `MailboxSoAHeader` (D-MBX-10) or own feature flag |
| D-SPLAT-2 | `ndarray::simd::splat` batch ops — `batched_cholesky_3x3` / `batched_mahalanobis` / `batched_opacity_blend` / `batched_sh_eval_l3` / `batched_se3_transform`; all three backends (AVX-512/NEON/scalar) | `ndarray::src/simd_splat.rs` | 600 | MED | **Queued — P1 sprint 1-2** | foundation; none |
| D-SPLAT-3 | `SplatBatch<N>` SoA carrier (per-column slices for SIMD sweep; inherits MailboxSoAHeader versioning) | `lance-graph-contract::splat` | 150 | LOW | **Queued — P1 sprint 1-2** | gates on D-SPLAT-1 |
| D-SPLAT-4 | SH-aware palette extension in `crates/bgz17` (256×256×2B compose table; SH-basis-id per centroid) | `bgz17::sh_palette` | 250 | MED | **Queued — P3 sprint 4-5** | gates on D-SPLAT-1 |
| D-SPLAT-5 | Splat-to-splat registration math — Σ-sandwich Mahalanobis ICP + SE(3) Levenberg-Marquardt | `lance-graph::splat::registration` | 400 | HIGH | **Queued — P4 sprint 6-7** | gates on D-SPLAT-2 + D-SPLAT-3 |
| D-SPLAT-6 | `crates/splat-fit` engine — RF/IQ → beamformed → local-maxima → PSF estimate → SH projection → emit Gaussian3D batch | `crates/splat-fit` (new standalone, 0-dep, ndarray-hpc feature) | 1500 | HIGH | **Queued — P2 sprint 3** | gates on D-SPLAT-1 + D-SPLAT-2 + OQ-SPLAT-3 |
| D-SPLAT-7 | Splat actors — `SplatFitActor`/`PoseAccumulatorActor`/`RegistrationActor`, each owns one `MailboxSoA<Gaussian3D>`; consumes bardioc #17 Rubicon kanban verbatim | `crates/splat-actors` (or `ractor_actors`) | 500 | MED | **Queued — P3 sprint 4-5** | gates on D-SPLAT-3 + D-SPLAT-6 + bardioc #17 (shipped) |
| D-SPLAT-8 | FMA atlas hydrator — TTL → `fma_class.lance` + `fma_relation.lance` + `fma_atlas_splat.lance` (~150M Gaussians full body) | `lance-graph-ontology` + `crates/fma-hydrator` | 800 | HIGH | **Queued — P4 sprint 7-8** | gates on OGAR PR #30 Phase 8 + D-SPLAT-3 + ndarray PR #189 (shipped) |
| D-SPLAT-9 | `fma_blueprint::style_recipe` D-Atom catalogue (AnatomicalRegion, OrganSystem, Innervation, Vasculature, Joint, Muscle, Bone, OrganParenchyma, Tract); mirrors PR #433 Odoo pattern | `lance-graph-ontology::fma_blueprint` | 400 | LOW | **Queued — P4 sprint 7-8** | gates on D-SPLAT-8 |
| D-SPLAT-10 | `memory.ultrasound_frame.lance` + `memory.ultrasound_splat.lance` datasets via `soa_mapping.rs`; new `SensitivityReason::UltrasoundRawPHI`/`UltrasoundAnonymized` variants in `column_mask_bridge` | MedCare-rs `crates/medcare-analytics` | 250 | MED | **Queued — P5 sprint 9-10** | gates on D-SPLAT-3 + MedCare PR #162 (shipped) |
| D-SPLAT-11 | `commit_event` audit chain for splat ingest via `LanceMembrane::commit_event` (callcenter PR #467, sole-writer membrane); `KnowableFromStore::register("ogit-medcare/ultrasound_ingest", Some(ddl_hint))` | MedCare-rs `crates/medcare-analytics` | 100 | LOW | **Queued — P5 sprint 9-10** | gates on D-SPLAT-10 + PR #467 (shipped) + OGAR #25/#31 (shipped) |
| D-SPLAT-12 | AR splat renderer — HoloLens OpenXR (clinical AR target) + Cesium ion + Three.js (browser fallback) + headless PNG (regression); CPU does math, GPU only paints | `crates/splat-render` (new) | 1200 | HIGH | **Queued — P6 sprint 11-13** | gates on D-SPLAT-2 + D-SPLAT-3 + D-SPLAT-5 |
| D-SPLAT-13 | IMU/POSE 4D accumulator — VIO against splat features at IMU rate (~200 Hz); splat-corrected pose at frame rate (~30 Hz); Planning-column readiness at t = −550ms | `splat-actors::PoseAccumulatorActor` | 200 | MED | **Queued — P3 sprint 4-5** | gates on D-SPLAT-7 |
| D-SPLAT-14 | SaMD documentation track — research-tool → clinical-study → Class IIa (IEC 62366 / IEC 80001 / ISO 14971 / IVD-MDR Rule 11). ADR-022 firewall IS the audit-controls evidence base | `q2`/`quarto` or `docs/` | 600 | LOW | **Queued — P7 sprint 14+ (parallel through P4-P6)** | gates on none architecturally; v1/v2/v3 phased |
Comment on lines +7 to +20

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Keep Status values canonical; move sprint timing out of the status cell.

At Line 7 through Line 20, values like **Queued — P1 sprint 1-2** drift from the board’s canonical status enum (Queued, In progress, In PR, Shipped, etc.). This can break any tooling or queries that parse status strictly.

Suggested edit pattern
-| ... | **Queued — P1 sprint 1-2** | gates on ...
+| ... | **Queued** | gates on ... (target: P1 sprint 1-2)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.claude/board/STATUS_BOARD.md around lines 7 - 20, Several table rows (e.g.,
D-SPLAT-1 through D-SPLAT-14) have non-canonical Status cells like "**Queued —
P1 sprint 1-2**"; change each Status cell to the canonical enum value only
(Queued, In progress, In PR, Shipped, etc.) and move the sprint/timing text into
a separate column (e.g., add a "Sprint" or "Timing" column to the board header)
or into the existing Notes column so tooling that parses the Status column still
sees only the canonical value; update the table header to include the new column
and adjust any consumers that expect the original two-column layout if needed.


---

# Status Board — Cross-Deliverable View

> Deliverable-level status across all active integration plans.
Expand Down
Loading