diff --git a/.claude/blackboard.md b/.claude/blackboard.md index 80e4d85c..ca00ed07 100644 --- a/.claude/blackboard.md +++ b/.claude/blackboard.md @@ -1,5 +1,48 @@ +# Current epoch (2026-05-26) — splat / palette / pillar / 3DGS + +> **Read this first.** The "Polyglot Notebook" architecture below is a +> separate/older program, not the current epoch. + +## Evidence model (binding — from PR #200) +- **L0** = source · passing tests · ratified standards (ground truth). +- **L1** = `.claude/PR-X12-docs-audit.md` (#200) + `.claude/knowledge/plans-alignment-triage.md` — claims-about-source; **spot-check, never inherit**. +- **L2** = `.claude/plans/*` + `pr-x12-*` perspective docs = **inspiration, NOT evidence**. +- **Whole-file reads only** — no `grep`/`sed`/`head`/`tail` (`ls` to locate). +- Build/bench locally at `target-cpu=x86-64-v4`; committed `.cargo/config.toml` stays **v3** (GitHub/CI). + +## Settled architecture (grounded this epoch, whole-read) +- **Cognitive similarity/cosine = Palette256 + Fisher-z**, integer: `hpc::cam_pq` + squared-L2 ADC (u8 codebook indices) gated by θ = `distance::similarity_z` (atanh). + Validated 10k×10k @ θ≈cos-0.90. **No float MAC in the distance kernel.** +- The cognitive **"splat"** = `lance-graph-contract::splat::CamPlaneSplat` (q8) → + `AwarenessPlane16K` (16 384-bit OR deposition). **Sibling of, not the same as,** the + graphics `splat3d` EWA renderer (per `splat3d/mod.rs`). +- EWA float-Σ sandwich (`splat3d::spd3`, Pillar 6/7) = uncertainty propagation + + certification, **not** similarity. Pillar suite (6–17) certifies the substrate; + **Pflug-10 certifies the CAM-PQ palette**. +- Typed distance (`cognitive-distance-typing.md`): one named fn per metric, newtype + outputs, **no `fn distance` umbrella**, conversions explicit. `palette→fisher→ + cosine→hamming` roundtrip is the named anti-pattern. + +## Outstanding (per triage + #200) +- **#4** pr-x12 doc-fixes + evidence-policy + archive fabrication-heavy plans (Geo/Gov). +- **#5** ASG-leaf canon spec (Gov) — prerequisite for #7. +- **#7** ASG-leaf impl (Kernel) — must **extend `CamPlaneSplat`**, not reinvent; trails #5. +- `cam-pq-production-wiring` (UNOWNED, lance-graph) — route `cam_pq` through `CamCodecContract`. +- `UNUSED_INVENTORY_1.95` A1–A9 dead-code (phantom `SimdTier::{Sse2,WasmSimd128}`, stale 1.64 imports). + +## Merged / closed this epoch +- ✅ #201 triage · #205 `3dgs-tiles` (cesium tileset) · #206 + #208 render-depth cert. +- ❌ #207 EWA-SYRK bench **closed** (wrong regime — category error). +- 🗑 `phi_spiral.rs` abandoned (float, wrong manifold). Net new usable code this + session = 0 (see `board/EPIPHANIES.md` grounding-discipline entry). + +--- + # Polyglot Notebook — Single Binary Architecture +> Separate/older program — NOT the current epoch (see top of file). + ## The Binary One `cargo build`. Ships as one executable. Contains: diff --git a/.claude/board/EPIPHANIES.md b/.claude/board/EPIPHANIES.md index 901e49f9..b645f3f3 100644 --- a/.claude/board/EPIPHANIES.md +++ b/.claude/board/EPIPHANIES.md @@ -45,3 +45,82 @@ needed (Knowledge Activation trigger), so the routine cost is 0. Cross-ref: PR #110 (ndarray ledger), PR #213 (lance-graph ledger). EPIPHANIES.md 10⁷× finding above. + +## 2026-05-26 — Palette256 + Fisher-z IS the exact cosine replacement (integer, no float) +**Status:** VALIDATED (per user: 10 000×10 000 splat, θ ≈ 1.45–1.6 Fisher-z ≈ cos 0.90–0.92) +**Scope:** @cognitive-substrate domain:distance + +Cosine similarity in the cognitive substrate is **not** a float dot/norm. It is +replaced — *ranking-exact* — by Palette256 (`hpc::cam_pq` 256-centroid ADC, integer +table lookup) gated by a Fisher-z aperture θ (`lance-graph-contract::distance:: +similarity_z = atanh`). "No float at all" = no float MAC in the O(D) distance +kernel; the only floats are the θ scalar + the ADC table values, and θ lands as +`theta_accept_q8` (u8) on the splat (`effective_amplitude = amplitude_q8 − +theta_accept_q8`). + +Grounded (whole-read this session): `cam_pq.rs` (847 L, squared-L2 ADC), +`distance.rs` (`Distance` trait + `similarity_z`/`fisher_z_inverse`), +`cognitive-distance-typing.md` (popcount IS the cosine replacement *by topology, +not value*; Fisher-z is a palette-output normalization, **not** a cosine +reconstruction — `palette→fisher→cosine→hamming` is the named anti-pattern). + +**DEBT:** validated-but-unwritten as canon → #5 ASG-leaf spec (Gov, outstanding). + +## 2026-05-26 — Two lanes: SELECT (integer) vs uncertainty-Σ (float), co-certified +**Status:** FINDING +**Scope:** @cognitive-substrate domain:architecture + +- **SELECT / similarity** = HDR-popcount (cascade L1, the cosine replacement) → + Base17-L1 (L2) → Palette256 ADC (L3). Integer, bulk hot path. +- **Uncertainty** = EWA sandwich `Σ'=M·Σ·Mᵀ` (Pillar 6/7), a *tiny 2×2/3×3 float Σ* + per edge — certified PSD metadata, **not** bulk arithmetic. + +Co-certified sibling pillars (suite 6–17), not competitors. **Pflug-10 certifies the +CAM-PQ palette quantization** in the same suite (`pillar/mod.rs`). `cognitive-distance- +typing.md` binds: one named fn per metric, newtype outputs, no `fn distance` umbrella. + +## 2026-05-26 — "EWA-SYRK BLAS backend" is a category error (PR #207 closed) +**Status:** FINDING (kill) +**Scope:** @splat3d domain:perf + +`3DGS-EWA-SYRK-BLAS-MKL`'s "projection is a BLAS workload → MKL/OpenBLAS backend" +conflates the **graphics** float covariance sandwich (`spd3`/`project`, renders +pixels) with the **cognitive splat**. There is no float SYRK in the substrate to +accelerate: the cognitive "splat" is `lance-graph-contract::splat::CamPlaneSplat` +(q8) deposited into 16 384-bit `AwarenessPlane16K` (SPLAT-1, **integer**, OR-accumulate). +PR #207's bench also measured `simd_x16` ≈2× over scalar AND the dense-3×3 "BLAS-shape" +at 1k–1M (no crossover) — but the premise itself was incoherent. **Closed, not merged.** + +`splat3d` (graphics EWA) and `lance-graph-contract::splat` (cognitive) are +**siblings, not parent/child** (per `splat3d/mod.rs`). + +## 2026-05-26 — C/HLOD = Cesium HLOD (shipped) + certificate + query-relevance +**Status:** FINDING +**Scope:** @3dgs domain:geospatial + +`KHR_gaussian_splatting` (RC) + Cesium HLOD-for-splats (Apr 2026: +`GaussianSplat3DTileContent`, back-to-front radix `GaussianSplatSorter`) are +ratified/shipped. Our contribution is the **certified/queryable overlay** (SSE + +Pillar-7 cert), mapping onto `tile.rs` radix-sort + `project.rs` conic + `raster.rs` +alpha-blend ndarray already has. Render-depth cert **shipped** (#206 + #208). +Geospatial = product manifold: tileset-tree (LOD — Poincaré belongs *only* here) × +per-splat spherical SH/ASG (KHR ships `SH_DEGREE_n_COEF_i`; directional lane is the +sphere, never the Poincaré disk). + +## 2026-05-26 — Grounding-discipline (meta — the expensive one) +**Status:** FINDING +**Scope:** @workspace-primer domain:process + +One session of code — `phi_spiral.rs` (555 L float), `ewa_syrk_crossover` (257 L +float) — was **net-zero-usable**: built in the FLOAT regime from ChatGPT +"inspiration" plans without first grounding against the integer/palette substrate +(`cam_pq`, the `Distance` contract, `cognitive-distance-typing`) sitting in the same +repo. The fix, now binding: **whole-file reads only (no grep/sed/head/tail)**, and the +#200 evidence model — **L0** source/tests/standards · **L1** audit + triage +(spot-check, never inherit) · **L2** plans/perspective-docs (NOT evidence). Plans are +inspiration, never authority. + +**DEBT carried forward (not in code, recorded here):** #4 pr-x12 doc-fixes (the #200 +fabrications still on master) · #5 ASG canon spec · #7 ASG-leaf impl (extend +`CamPlaneSplat`, don't reinvent) · `cam-pq-production-wiring` (cam_pq shipped, unrouted +through `CamCodecContract`) · `UNUSED_INVENTORY_1.95` A1–A9 dead-code.