Skip to content

Commit d6adb2b

Browse files
committed
finding: ground truth audit — what dispatch() actually wires vs promises
Honest audit of ShaderDriver.dispatch() (driver.rs:75-212): - CASCADE probes PaletteSemiring on edge palette indices, NOT content fingerprints. Content plane is read (XOR fold) but never compared. - NARS types exist but aren't dispatched — style_ord_to_inference() packs into CausalEdge64 but no actual NARS runs. - FreeEnergy type exists (grammar/free_energy.rs) but dispatch() never calls compose(). admit_ignorance is threshold, not F. - AriGraph/SPO not connected to driver. PropertySchema not connected. Three options to wire content similarity into the cascade documented. This is the gap between "the glove fits" and "the glove flies." https://claude.ai/code/session_01SbYsmmbPf9YQuYbHZN52Zh
1 parent 6a298e2 commit d6adb2b

1 file changed

Lines changed: 51 additions & 0 deletions

File tree

.claude/board/EPIPHANIES.md

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2783,3 +2783,54 @@ Grounding the NaN: with DeepNSM encode (512-bit VSA tiled 32× into 16K), densit
27832783
**Jirak citation:** Jirak 2016, arxiv 1606.01617, Annals of Probability 44(3). Rate: n^(p/2-1) for p in (2,3]. Weak dependence sources: (a) tiling (32x repeat of 512-bit), (b) XOR-bind braiding, (c) FNV-1a hash collision at 12-bit rank.
27842784

27852785
Cross-ref: I-NOISE-FLOOR-JIRAK iron rule, encode_handler, DeepNSM VsaVec::from_rank().
2786+
2787+
## 2026-04-24 — Ground truth: ShaderDriver dispatch wiring audit (what IS vs ISN'T connected)
2788+
2789+
**Status:** FINDING
2790+
**Owner scope:** @truth-architect, @bus-compiler
2791+
2792+
Honest audit of what dispatch() actually does vs what the DTO surface promises:
2793+
2794+
**WIRED (working end-to-end):**
2795+
- [1] Meta prefilter: u32 column sweep on MetaColumn → passed_rows ✓
2796+
- [2] Style resolution: Auto reads QualiaColumn of first row → style_ord ✓
2797+
- [3] Shader cascade: CognitiveShader::new(planes, semiring).cascade(query, radius, layer_mask) ✓
2798+
BUT: query comes from CausalEdge64.s_idx() of the ROW'S EDGE, not from content fingerprint.
2799+
The cascade probes the PaletteSemiring distance table, not the content plane.
2800+
- [4] Cycle fingerprint: XOR fold of content_row(hit.row) for each hit ✓
2801+
BUT: hits come from step [3] which probes edges, not content similarity.
2802+
- [5] Entropy + std_dev + CollapseGate: computed from top-k resonances ✓
2803+
- [6] Edge emission: CausalEdge64::pack per strong hit ✓
2804+
- [7] Sink callbacks: on_resonance → on_bus → on_crystal ✓
2805+
- Meta summary: confidence = top-1 resonance, admit_ignorance = confidence < 0.2 ✓
2806+
2807+
**NOT WIRED (the gap):**
2808+
- Content fingerprint similarity: dispatch does NOT compare content_row(A) vs content_row(B).
2809+
The cascade uses PaletteSemiring on edge palette indices, not Hamming on content bits.
2810+
The content plane is READ (for cycle_fp XOR fold) but never COMPARED.
2811+
- NARS reasoning: no InferenceType dispatch. style_ord maps to inference type via
2812+
style_ord_to_inference() but it's only used for CausalEdge64 packing, not actual NARS.
2813+
- FreeEnergy: not computed. The contract type exists (grammar/free_energy.rs) but
2814+
dispatch() never calls FreeEnergy::compose(). The 'should_admit_ignorance' is a
2815+
simple threshold (confidence < 0.2), not a real F computation.
2816+
- AriGraph/SPO: no graph. dispatch() operates purely on BindSpace columns.
2817+
The SPO triple store exists in lance-graph core but isn't wired to the driver.
2818+
- PropertySchema validation: not connected. The types exist in contract::property
2819+
but dispatch() doesn't check Required/Optional/Free.
2820+
2821+
**What the zeros meant:** resonance=0 wasn't "missing semiring wire" — the cascade
2822+
DID run (3 cascade calls from step [3]). But the demo palette has synthetic Base17
2823+
entries with no relationship to the encoded text. The PaletteSemiring distance table
2824+
is 256x256 pre-computed from those synthetic entries. Text fingerprints in the content
2825+
plane are INVISIBLE to the cascade — they're read only for the XOR fold in step [4].
2826+
2827+
**To make content fingerprints visible to dispatch:**
2828+
Option A: Add a HammingMin pre-pass before the palette cascade. Compare content_row(i) vs
2829+
content_row(j) via popcount on XOR. If Hamming < Jirak threshold (454), promote to hit.
2830+
Option B: Build the PaletteSemiring FROM the content fingerprints (quantize content into
2831+
256 palette entries, compute distance table from those). Content similarity then flows
2832+
through the existing cascade.
2833+
Option C: Add a second dispatch mode (content-mode vs edge-mode) that uses HammingMin
2834+
instead of PaletteSemiring for the distance function.
2835+
2836+
Cross-ref: driver.rs:75-212, Jirak calibration (this session), I-NOISE-FLOOR-JIRAK.

0 commit comments

Comments
 (0)