diff --git a/.claude/knowledge/crate-registry.md b/.claude/knowledge/crate-registry.md new file mode 100644 index 00000000..25837cd5 --- /dev/null +++ b/.claude/knowledge/crate-registry.md @@ -0,0 +1,126 @@ +# Crate registry + naming convention (3dgs-* family) + +> **AUTHORITATIVE policy** (a decision, not inspiration — unlike the plans triage). +> Anticipates a battery of splat/tiles crates; this is the index + the rules that +> keep them tracked and stop the battery from becoming empty shells. + +## Posture (read this first) + +**We do not *use* ArcGIS / Cesium.** No SDK, no service integration, no +API/wire compatibility, no runtime dependency. The relationship is exactly two +things, and nothing else: + +- **Reinvent** — build native CAM SoA from the data's first principles. This is + the goal. +- **Reverse-engineer** — one-way extraction of data out of their static files, + rebuilt as CAM SoA. This is a *donkey-bridge*: transitional grounding, + acceptable **only** when a native refactor isn't yet feasible, retired the + moment it is. + +Using-ArcGIS vs reinventing-and-reverse-engineering is a completely different +animal. We are the latter, never the former. + +**Optional grounding pillar (modesty clause).** We keep *one* optional, +feature-gated `cesium` **reference** crate — never in the production hotpath, +never a runtime dependency — whose only job is to run the real Cesium/ArcGIS +path and emit reference output we diff against. This is the *runnable* form of +the legacy pillar: it keeps "we're at parity / better" honest by **measuring** +against a live oracle instead of asserting it from a capability matrix. It is +the institutional humility against reinvention-hubris — the same "measure, +don't assert" discipline we apply everywhere, turned on our own reinvention +claim. It reads their JSON because it *is* the reference path; that's fine — +it's dev/reference, walled off from production, so rule 3 still holds. + +## Hard rules + +1. **Single production crate family: `3dgs-*`.** No `cesium-*` *production* + family, no `ada-*` (deprecated). Naming is `3dgs-` (`3dgs-tiles`, + `3dgs-ewa-syrk`, future `3dgs-render`, `3dgs-codec`, …). **One exception:** a + single *optional, feature-gated* `cesium` **reference** crate — the runnable + legacy pillar / parity oracle (see Posture's modesty clause), never in the + production hotpath, never a runtime dependency. + +2. **CAM SoA is the mandatory representation.** CAM SoA = + - **content-addressable** — addressed by `cam_pq` (CAM-PQ) codebook index, not by position; + - **structure-of-arrays** — `simd_soa::MultiLaneColumn` / `cognitive-shader-driver::bindspace` columns / lane carriers; + - **binary planes** — `AwarenessPlane16K` (16384-bit), q8 lanes, `#[repr(C)]`. + + Whatever a source contains is **reverse-engineered** into CAM SoA — and + **ONLY** reverse-engineered: extract and rebuild, never depend on the source + format as a library, never round-trip it, never emit it. No AoS, no + source-native structs, no intermediate format survives past the import + boundary. + + **Refactor > reverse-engineer.** The CAM SoA layout is *refactored natively* + from first principles, not derived from the source's structure. + Reverse-engineering is the donkey-bridge (see Posture) — a crutch, never the + design. Never let an imported format's structure calcify into ours. + +3. **NO JSON IN THE HOTPATH. EVER.** Restates the existing W1a invariant + (`no serde`, "no JSON in types", `#[repr(C)]` — see + `lance-graph-contract::splat`). JSON is permitted **only** at the cold, + one-time, read-only *import boundary* (reverse-engineering someone else's + file); it is rebuilt into CAM SoA immediately and **never enters the hotpath, + is never persisted, and is never emitted**. + +4. **Import adapters are read-once, one-way, output-CAM-SoA.** The 3D Tiles + reader (in `3dgs-tiles`) reads `tileset.json` + `KHR_gaussian_splatting` glTF + + `ESRI_crs` once, reverse-engineers into CAM SoA, and discards the source. + No `cesium-*` family; nothing emits or serves their wire format. + +5. **Rethink clause.** Our CAM SoA is canonical. An external format is + reconsidered **only** on falsifiable proof it is strictly better — not by + default, not for interop convenience. The optional `cesium` reference crate + (Posture / rule 1 exception) is the instrument that *produces* that proof. + +6. **Creation gate.** A crate exists **only with ≥1 real consumer** (≥2 for a + generic abstraction — the `certified-field-kernel-substrate` self-fence). + Until then it stays a **module inside an existing crate**. A `3dgs-*` crate + with no consumer is the code version of a markdown-only plan. + +## Registry (seed — verified first-party only) + +`status`: shipped / planned / module-until-earned. Only crates read first-party +this session carry a description; the rest are the catalogue checklist below. + +| Crate / module | Repo | Family | Status | Purpose (verified) | Lane | +|---|---|---|---|---|---| +| `3dgs-tiles` | lance-graph | `3dgs-*` | planned | 3D Tiles reader. **Reverse-engineers** KHR_gaussian_splatting glTF + ESRI_crs → CAM SoA (donkey-bridge, transitional); JSON read-once at the cold boundary only | Geo | +| `3dgs-ewa-syrk` | ndarray (`benches/`) | `3dgs-*` | planned | EWA-SYRK crossover bench (`project_batch` vs cblas-batched sandwich) | Kernel | +| `cesium` (reference) | tbd | **optional/dev** | planned | runnable **legacy pillar / parity oracle** — runs the real Cesium/ArcGIS path, emits reference output to diff against. Feature-gated, never hotpath, never a runtime dep. The grounding + modesty instrument | tbd | +| `splat3d` (module) | ndarray `src/hpc/` | — (pre-conv.) | shipped | CPU-SIMD forward renderer (`spd3`/`project`/`raster`/`sh`/`tile`/`gaussian`) | — | +| `cam_pq` (module) | ndarray `src/hpc/` | — | shipped | 6×256 CAM-PQ codebook — the **CAM** in CAM SoA | — | +| `simd_soa` (module) | ndarray `src/` | — | shipped | `MultiLaneColumn` lane carrier — the **SoA** in CAM SoA | — | +| `bgz17` | lance-graph | — (bare) | shipped | LOSSY golden-step recoverable sampling (BASE_DIM=17, GOLDEN_STEP=11); `ScalarCsr::spmv_min_plus` | — | +| `blasgraph` (module) | lance-graph `…/graph/` | — | shipped | **canonical bit-exact** 16384-bit GraphBLAS substrate (7 HDR semirings) | — | +| `jc` | lance-graph | — (bare) | shipped | 12-pillar proof-in-code (Pillar 10 `pflug`, 11 `hambly_lyons`) | — | +| `sigker` | lance-graph | — (bare) | shipped | path-signature kernels (`signature_truncated`, `signature_kernel_pde`) | — | +| `cognitive-shader-driver` | lance-graph | — (bare) | shipped | BindSpace **SoA** / mailbox / token_agreement / codec bridge | — | +| `lance-graph-contract` | lance-graph | — | shipped | SPLAT-1 CAM SoA contract types (`CamPlaneSplat`/`SplatPlaneSet`/`CamSplatCertificate`/`AwarenessPlane16K`) | — | + +**Convention note:** existing bare/`lance-graph-*` crates predate the `3dgs-*` +convention and are **not force-renamed** (churn). The convention binds **new** +splat-pipeline crates. CAM SoA (rule 2) and the no-JSON-hotpath rule (rule 3) +bind **everyone** — old and new. + +## Catalogue checklist (not yet first-party read — do not guess purposes) + +lance-graph crates to add rows for, from each `lib.rs`, by lane owners: +`bge-m3`, `bgz-tensor`, `causal-edge`, `deepnsm`, `highheelbgz`, `holograph`, +`lance-graph-archetype`, `lance-graph-benches`, `lance-graph-callcenter`, +`lance-graph-catalog`, `lance-graph-codec-research`, `lance-graph-cognitive`, +`lance-graph-consumer-conformance`, `lance-graph-ontology`, `lance-graph-osint`, +`lance-graph-planner`, `lance-graph-python`, `lance-graph-rbac`, +`lance-graph-supervisor`, `lance-graph` (main), `learning`, `neural-debug`, +`p64-bridge`, `reader-lm`, `sigma-tier-router`, `thinking-engine`. + +## Why this exists (governance parallel) + +Same shape as #200 Tier-4, one layer down: docs proliferated → needed "2 +canonical sources + perspective-docs-aren't-evidence"; crates will proliferate → +need "single `3dgs-*` family + registry + creation gate + CAM SoA as the one +representation." Naming + registry *track* the battery; the creation gate +*prevents* the part that shouldn't exist; **CAM SoA + no-JSON-hotpath keep every +crate speaking the same content-addressed SoA substrate instead of a battery of +private formats — and the reinvent/reverse-engineer posture keeps us from ever +becoming an ArcGIS/Cesium consumer.** diff --git a/.claude/knowledge/plans-alignment-triage.md b/.claude/knowledge/plans-alignment-triage.md new file mode 100644 index 00000000..62130e37 --- /dev/null +++ b/.claude/knowledge/plans-alignment-triage.md @@ -0,0 +1,229 @@ +# Plans Alignment Triage — ChatGPT 48h corpus vs ground truth + +> **STATUS: NOT AUTHORITATIVE.** This document ranks *inspiration* — the +> ChatGPT-seeded `.claude/plans/` corpus committed 2026-05-24/25 across +> `ndarray` and `lance-graph` — against **ground truth**. It is **not a spec +> to implement** and **may not be cited as evidence** for any claim about +> current code. +> +> `USE-NOW` means only: "the idea coincides with verified code or a ratified +> standard." Build from that ground truth, citing the plan as the idea's +> *origin*, never as its authority. Where a plan diverges from code/canon/ +> standard, **the divergence is the correction list** below — ground truth +> wins every time. + +## Evidence model — three levels (the auditor is not exempt) + +| Level | What | Authority | +|---|---|---| +| **L0 — terminal** | source code · passing tests · ratified standards | ground truth | +| **L1 — verifiable claims-about-source** | the merged #200 audit · **this triage** | falsifiable vs L0; must be spot-checked, never inherited | +| **L2 — inspiration** | the `.claude/plans/` corpus · `pr-x12-*` perspective docs · R-1..R-15 (forward-conditional) | not evidence | + +**#200 sits at L1, not L0** — it is a Claude-authored doc; its value is that its +claims point at *checkable symbols*, not that it is "an audit." So it was itself +spot-checked: the five load-bearing rows this triage's correction-list rests on +(`spmv_min_plus`-not-`tropical_spmv`; sigker-PDE-not-buggy; no `batched_ssd_search`; +no `tropical_gemm`; blasgraph-bit-exact / bgz17-lossy) were verified first-party +against source this session — **all CONFIRMED**, only cosmetic defects in #200 +(`spmv_min_plus` at line 99 not 98; "8 methods" is 9). #200's own §6 self-flagged +**un-verified** items (18 of 20 blasgraph files; `hambly_lyons` probe numerics; +the `predict.rs` assertion; the 343:1 compression ratios; PR #348/#350 GitHub +state) remain the residual trust boundary — **not to be elevated past L1 until +checked.** + +## Ground-truth anchors (verified this session, whole-file) + +> All ndarray anchors are independently confirmed real by the merged **#200 +> audit §1** (`.claude/PR-X12-docs-audit.md`, in this branch's tree). This +> branch was synced to current `master` so every cited path resolves in-tree — +> the branch was originally cut from a pre-`pillar/` master point, which is why +> an earlier review saw the pillar files as absent. + +- **code (ndarray):** `src/hpc/splat3d/{spd3,project,raster,sh,tile,gaussian}.rs`, + `src/hpc/pillar/{ewa_sandwich_2d,ewa_sandwich_3d,splat_invariants}.rs`, + `src/hpc/cam_pq.rs` (847 lines), `src/hpc/bgz17_bridge.rs` + (`BASE_DIM=17`, `GOLDEN_STEP=11`, `Base17=[i16;17]`) +- **code (lance-graph):** `crates/cognitive-shader-driver/*` (bindspace, + mailbox_soa, token_agreement, codec_bridge, decode_kernel), `crates/jc` + (Pillar 10 `pflug`, Pillar 11 `hambly_lyons`), `crates/sigker`, + `crates/bgz17`, `crates/lance-graph/.../blasgraph` +- **audit:** `.claude/PR-X12-docs-audit.md` (PR #200, merged) — the + authority over the `pr-x12-*` doc layer +- **standards:** `KHR_gaussian_splatting` (RC Feb 2026), OGC 3D Tiles 2.0, + Cesium HLOD-for-splats (Apr 2026), ArcGIS `ESRI_crs` + +## Correction list (plan ⟂ ground truth — ground truth wins) + +Sourced from PR #200 (`PR-X12-docs-audit.md`) + first-party reads: + +1. **blasgraph is the canonical bit-exact kernel; bgz17 is a *lossy sibling*.** + The plans/docs that present bgz17 as "the actual kernel home" with + blasgraph as "eventual abstraction" have it **inverted** (#200 §1, #1/#4). + Substituting bgz17 for blasgraph is a soundness violation. +2. The symbol `bgz17::scalar_sparse::tropical_spmv` **does not exist**; the + real kernel is the method `ScalarCsr::spmv_min_plus` (#200 #2). +3. `ndarray::hpc::blas_level2::batched_ssd_search` **does not exist** (#200 #5). +4. `sigker::signature_kernel_pde` is **not buggy** — its own passing tests + prove convergence to `I₀(2·√⟨u,v⟩)` (#200 #9). The "use truncated because + pde is buggy" framing is wrong. +5. Per-arch DCT crossover constants (SPR=64, ICX=32, Zen4=96, Apple=256, + Graviton=128) are **uncalibrated estimates**, not commitments (#200 #6/#7). + Mark `[uncalibrated]` until a bench measures them. +6. `simd_soa.rs` is a **373-line PR-X1 layout carrier**, not a codec hub + (#200 #24). +7. The **R-1..R-15 series is forward-conditional planning**, not present-tense + canon (#200 §2 truth #1). +8. Manifold: the directional lane is **spherical** (KHR ships + `SH_DEGREE_n_COEF_i`; `sh.rs` is degree-3 SH). Poincaré is reserved for the + LOD tile-tree only — *not* the directional lane. +9. GS payload = a glTF carrying the `KHR_gaussian_splatting` extension, not a + peer `ContentKind::GaussianSplat3d`. SPZ = interop tier; PR-X12 = internal. +10. **Naming: the family prefix is `3dgs-*`; `ada-*` is deprecated.** The 3D + Tiles reader proposed as `ada-3dtiles` (PR #2) is renamed **`3dgs-tiles`** + before it commits; the plan docs that reference `ada-3dtiles` + (`3DGS-Cesium-feature-mapping`, `3DGS-3D-Tiles-runtime`) need the same + rename. Geo's lance-graph lane. The EWA-SYRK bench (PR #3, Kernel) is named + **`3dgs-ewa-syrk`** under the same convention. Pinned W1 names: + `3dgs-tiles`, `3dgs-ewa-syrk`. + +## Supersedes-note — this thread's own in-conversation errors + +Recorded for honesty; the inventory below supersedes them: + +- **Gov (this session):** repeatedly asserted the R-7 inversion + (blasgraph-aspirational / `bgz17::scalar_sparse::tropical_spmv`-is-real), the + sigker-PDE "bug", and `batched_ssd_search` — all falsified by #200. +- **Geo session:** the `SplatShaderBlas` "blasgraph-aspirational / bgz17-is-the- + kernel" inversion (retracted). +- **Kernel session:** premature `phi_spiral.rs` on the wrong (flat-disk) + manifold + the unverified "BGZ17 offset 17-27 / stride 2,4" annotation + (corrected in `fc27775c`; real values `GOLDEN_STEP=11`). + +## Legend + +- **HOP** — 1 (coincides with verified code/standard) · 2 (one experiment + away) · 3 (speculative / fenced) +- **CV** — ✓ cross-verified (whole-read by ≥2 sessions) · ◑ single-session +- **VERDICT** — USE-NOW / KEEP-EPIPHANY / GROUND-FIRST / ARCHIVE / OUT-OF-SCOPE + +## Hop 1 — USE-NOW (idea coincides with verified code/standard) + +| Plan | Repo | CV | Grounds onto | +|---|---|---|---| +| 3DGS-3D-Tiles-runtime | lance-graph | ✓ | OGC 3D Tiles 1.1 + KHR | +| 3DGS-Lance-Arrow-storage | lance-graph | ✓ | Arrow/Lance schemas (foundation) | +| 3DGS-HHTL-datalake-traversal | lance-graph | ✓ | Lance/DataFusion pruning | +| 3DGS-ArcGIS-Cesium-ingestion | lance-graph | ✓ | real ArcGIS/Cesium + `ESRI_crs` | +| 3DGS-certified-query-render | lance-graph | ✓ | auditable skip/refine/hydrate | +| 3DGS-integration-wiring | lance-graph | ✓ | the lance-graph↔ndarray boundary | +| 3DGS-Cesium-feature-mapping | lance-graph | ✓ | 3D Tiles spec (gold-standard transfer) | +| 3DGS-SIMD-forward-renderer | ndarray | ✓ | real `splat3d/{project,raster,sh}` (Kernel whole-read) | +| 3DGS-columnar-splat-codec | ndarray | ◑ | f16 carrier + `splat3d` block views | +| 3DGS-error-certification-pillars | ndarray | ✓ | real Pillar-6/7/12 (Kernel whole-read `pillar/` dir) | +| 3DGS-validation-benchmark | ndarray | ◑ | real renderer/codec/pillar paths | +| 3DGS-HHTL-CPU-cascade | ndarray | ◑ | `hpc::{cascade,clam,cam_pq}` | +| 3DGS-EWA-SYRK-BLAS-MKL | ndarray | ✓ | `spd3::sandwich` + Pillar-7. Idea USE-NOW; **actionable half (MKL/BLAS backend) may DOWNGRADE after PR-3 measures — likely a 3×3 pessimization** (`project.rs` already 16-wide SoA over tiny matrices) | +| cam-pq-production-wiring | lance-graph | ◑ | real `cam_pq` (self-corrects 1300×→128×) · **UNOWNED cross-repo pick-up** | +| codec-sweep-via-lab-infra | lance-graph | ◑ | real `cognitive-shader-driver`; honest negative controls | +| categorical-algebraic-inference | lance-graph | ◑ | real grammar/VSA surface (categorical framing = labeled conjecture) | +| archetype-scaffold | lance-graph | ◑ | self-contained crate, runnable acceptance | +| burn-ndarray-parity-sprint | lance-graph | ◑ | real ndarray parity, pinned base SHA | +| jc-pillars-runtime-wiring **+ ERRATUM** | lance-graph | ◑ | real 12-pillar `jc`; ERRATUM de-risks layer attribution | +| cognitive-substrate-convergence-v3 | lance-graph | ◑ | canonical; tracks merged PRs #383–389 | + +### Idea USE-NOW / doc RE-GROUND +| Plan | Repo | CV | Note | +|---|---|---|---| +| PR-X12-tensor-container-expansion-capstone | ndarray | ✓ | block grammar sound (R-1/R-2/R-9), but carries PR #200 #1–#16 debt. Do not promote until PR-4 re-grounds. | + +## Hop 2 — KEEP-EPIPHANY (true direction, preserve as vision, not build) + +| Plan | Repo | Note | +|---|---|---| +| 3DGS-epiphany-roadmap | lance-graph | **source of C/HLOD** (now standard-backed by Cesium HLOD) | +| 3DGS-blast-radius-application-map | lance-graph | Ring 1 grounded; Rings 2–4 speculative | +| 3DGS-Cesium-BindSpace4-headstone | lance-graph | real anchors + unbuilt markdown | +| tetrahedral-epiphany-splat-integration | lance-graph | "no runtime claimed"; idea source | +| oxigraph-arigraph-cognitive-shader-soa-merge | lance-graph | core splat-thread (aspirational, in-program) | +| ogit-g-context-bundle | lance-graph | the ontology↔codec "semantic exponent" bridge | +| unified-ogit-architecture | lance-graph | anatomy north-star wires FMA + splat pillars | +| thought-cycle-soa-awareness | lance-graph | ⚠ redefines `CausalEdge64` — collides with v3 canon; reconcile first | +| 3DGS-4x4-cognitive-shader-integration | lance-graph | geospatial slice buildable; cross-domain lanes not | +| 3DGS-certified-field-kernel-substrate | ndarray | whole-read ✓ (Kernel+Geo): self-fences ("don't abstract until 2 consumers exist"); grounded on real EWA/SPD/Block4/pillar; PR-6 + the 4×4 row land under it. Sessions split GROUND-FIRST/KEEP-EPIPHANY — graded KEEP-EPIPHANY on the self-gate | + +## Hop 2/3 — GROUND-FIRST (needs an experiment/fixture before build) + +| Plan | Repo | Note | +|---|---|---| +| 3DGS-4x4-cognitive-shader-SoA | ndarray | `(4×4)⁴` fanout speculative | +| PhiSpiral256-SoA-cross-system | lance-graph | core lane markdown-only; needs the kernel | +| 2026-05-06-splat-osint-ingestion | lance-graph | **CORRECTED mis-grade:** SPLAT-1 types are **SHIPPED** in `lance-graph-contract::splat` (`CamPlaneSplat`/`SplatPlaneSet`/`CamSplatCertificate`/`AwarenessPlane16K`/`witness_to_splat`, verified first-party). Ingestion wiring not built → stays GROUND-FIRST. **PR-7 (ASG-leaf) must EXTEND these, not reinvent.** | +| 3DGS-Blender-transcode-crosspollination | lance-graph | real bridges, speculative mappings | +| 3DGS-SplatShaderBlas-BLASGraph | lance-graph | **plan inverts blasgraph/bgz17 (see correction #1); blasgraph is canonical** | +| 3DGS-domain-adapter-strategy | lance-graph | trait stays plan-level until 2 adapters exist | +| bindspace-columns | lance-graph | cols A–D real; E–H proposals | +| causaledge64-mailbox-rename-soa | lance-graph | real crates; draft compartment layer | +| anatomy-realtime | lance-graph | strong floor; depends on unmerged tiers + fixtures | +| 3DGS-ultrasound-SaMD | lance-graph | no in-repo fixture; SaMD trajectory | +| lance-graph-rdf-fma-snomed | lance-graph | grounds the ontology bridge; itself ontology ingest | +| sprint-5-through-9-roadmap | lance-graph | only Sprint 7/9 touch splat/EWA/jc; rest compliance | +| 3DGS-render-depth-certification | ndarray | whole-read ✓ (Kernel+Geo): grounded spec for PR-6 `ErrorCertificate` (separated error terms `E_camera+E_quant+E_covariance+E_overlap+E_sort+E_lod+E_sampling` + Cesium SSE + KHR point-cloud fallback); DTO not built | + +## Hop 3 — ARCHIVE (superseded / fabrication-heavy) + +| Plan | Repo | Note | +|---|---|---| +| cognitive-substrate-convergence-v1 | lance-graph | superseded by v3 | +| cognitive-substrate-convergence-v2 | lance-graph | superseded by v3 | +| Palette256-3DSB-PhiSpiral-attention-integration | lance-graph | **most fabrication-heavy** — 5+ markdown-only primitives, no deliverables | + +## Out of scope — a separate program (real/shipping, not codec/3DGS) + +- **graph-DB / ontology:** lance-graph-ontology-v5, sql-spo-ontology-bridge, + lf-integration-mapping, unified-integration, compile-time-consumer-binding +- **business / SaaS / RBAC:** super-domain-rbac-tenancy, callcenter-membrane, + supabase-subscriber, foundry-consumer-parity, foundry-roadmap-unified-smb-medcare, + palantir-parity-cascade, q2-foundry-integration, ogit-cascade-supabase-callcenter, + grammar-foundry-followup, elegant-herding-rocket + +These reuse the shared VSA/CAM-PQ/bgz17 fingerprint substrate as a *storage +layer* but are not about splatting. + +## Headline concept: C/HLOD + +`C/HLOD` (from `3DGS-epiphany-roadmap`) = **Cesium HLOD (shipping, Apr 2026) + +error-certificate + query-relevance overlay.** The HLOD half is now a real, +shipped Cesium feature (`GaussianSplat3DTileContent`, back-to-front radix +`GaussianSplatSorter`); the contribution is the certified/queryable overlay, +which maps onto `tile.rs` radix-sort + `project.rs` conic + `raster.rs` +alpha-blend that ndarray already has. + +## Forward program (7 PRs, 3 sessions — this doc is PR #1) + +``` +W1 (independent): #1 triage [Gov] · #2 `3dgs-tiles` reader (NOT ada-*) [Geo] · #3 `3dgs-ewa-syrk` bench [Kernel] +W2 (spine): #4 pr-x12 fixes+archive [Geo] / evidence-policy [Gov] ── #5 canon specs (ASG·BGZ17·C/HLOD) [Gov] +W3 (impl): #6 ErrorCertificate [Kernel] · #7 ASG lobe+recovery-gate [Kernel] (both trail #5) +``` + +**Parked (deliberately unbuilt):** EWA-SYRK *backend* (gated behind #3's +measurement; likely a 3×3 pessimization) · PR-X12 tensor capstone build +(debt-laden until #4) · `phi_spiral.rs` (wrong manifold, superseded by #7). + +## Scope boundary — not whole-read this pass + +Both `3DGS-render-depth-certification` and `3DGS-certified-field-kernel-substrate` +are now whole-read (Kernel + Geo, this review round) and graded above — the +provisional flag is **cleared**. The `2026-05-06-splat-osint-ingestion` row was +**corrected** (SPLAT-1 types are shipped in `lance-graph-contract::splat`, not +markdown-only). The `pr-x12-*` perspective docs are graded by PR #200, not +re-read here. Residual unverified (per #200 §6, held at L1, not elevated): the +18-of-20 blasgraph files, `hambly_lyons` probe numerics, the 343:1 ratios, and +PR #348/#350 GitHub state. + +## Convergence — comment surface + +This PR is the comment surface. CodeRabbit, Codex, and the parallel sessions: +please flag (1) mis-graded rows, (2) missed fabrications, (3) corrections to +the correction-list. Hop-2/3 build work lands in PRs #4–#7.