@@ -124,6 +124,121 @@ Before any PR touches the callcenter crate or the metadata bus, answer three que
1241243 . Does the internal substrate only see role-tagged blackboard entries (no raw external payload)?
125125
126126If any answer is no, the code is leaking external ontology inward (or internal ontology outward) — reject.
127+ ---
128+
129+ ## 2026-04-21 — CORRECTION-OF 2026-04-21 D5 Frankenstein: VSA must be FP32 multiply/add on identities, not XOR on bitpacked content
130+
131+ ** Status:** FINDING (supersedes multiple session entries)
132+
133+ ** What was wrong in this session's shipped D5+D7 work:**
134+
135+ 1 . ` Vsa10k = [u64; 157] ` — hallucinated bitpacked format. Defined
136+ in ndarray but NEVER consumed by lance-graph before this session.
137+ Should have used existing ` Vsa10kF32 = Box<[f32; 10_000]> ` (40 KB)
138+ or the queued rescale target ` Vsa16kF32 = Box<[f32; 16_384]> ` (64 KB).
139+
140+ 2 . ` RoleKey::bind/unbind ` with slice-masked XOR — wrong algebra.
141+ VSA for lossless role bundling uses element-wise multiply +
142+ element-wise add on f32. Existing ` vsa_bind ` /` vsa_bundle ` /
143+ ` vsa_cosine ` in ` crystal/fingerprint.rs ` already implement this.
144+ XOR on bitpacked is the Hamming-comparison format, not the
145+ bundling format.
146+
147+ 3 . ` vsa_xor ` / ` vsa_similarity ` (Hamming-based) — reinvented what
148+ already exists on the correct substrate.
149+
150+ 4 . Three deepnsm files (` content_fp.rs ` , ` markov_bundle.rs ` ,
151+ ` trajectory.rs ` ) — need reimplementation on ` Vsa16kF32 ` carrier
152+ after coordinated rescale PR lands.
153+
154+ 5 . 5-role "lossless superposition" test — the lossless property came
155+ from SLICE ISOLATION (content zeroed outside each role's slice),
156+ not from XOR bundling itself. With shared-space f32 multiply/add,
157+ losslessness comes from f32 dynamic range — completely different
158+ mechanism. The test passed for the WRONG reason.
159+
160+ ** What remains correct (preserve these):**
161+
162+ - Five Lenses meta-architecture (CLAUDE.md P-1, categorical-algebraic-
163+ inference-v1.md)
164+ - GrammarStyleConfig + GrammarStyleAwareness + NARS revision (φ-1
165+ confidence ceiling)
166+ - FreeEnergy / Hypothesis / Resolution types (but likelihood term
167+ must be cosine, not Hamming)
168+ - 8-step wiring sequence (but steps 1-3 need rewrite on correct carrier)
169+ - Shader-cant-resist / thinking-is-a-struct / tissue-not-storage /
170+ grammar-of-awareness (algebra structure, not byte layout)
171+ - 14-paper landscape
172+ - AGI test = Animal Farm chapter-10 > chapter-1 accuracy
173+
174+ ** Superseded session entries (bodies preserved below, Status flipped):**
175+
176+ - ` Markov IS simple XOR of sentence VSAs... ` → SUPERSEDED. Replace
177+ with: Markov IS element-wise multiply+add superposition of
178+ Vsa16kF32 trajectories with position-permuted braiding. Simplicity
179+ claim still holds; algebra choice was wrong.
180+ - ` RoleKey bind/unbind slice-masking = lossless... ` → SUPERSEDED.
181+ True lossless bundling requires f32 multiply+add, not
182+ slice-isolation XOR.
183+ - ` 8-step wiring sequence... ` → Steps 1-3 need rewrite on Vsa16kF32.
184+ Steps 4-8 unchanged in logic.
185+
186+ Cross-ref: ` .claude/knowledge/vsa-switchboard-architecture.md `
187+ (created this cleanup), CLAUDE.md updated I-CAMPQ-VS-VSA iron rule.
188+
189+ ---
190+
191+ ## 2026-04-21 — Sometimes Vsa16kF32 is just laziness to define a register
192+
193+ ** Status:** FINDING (Test 0 of the four-test VSA decision framework)
194+
195+ If an item has a natural name, ID, or enum variant — that's the
196+ register. ` HashMap<&str, PersonaDef> ` or ` enum ThinkingStyle ` beats
197+ VSA bundle+cosine at exact-match tasks. VSA earns its 64 KB only
198+ when the answer requires resonance across concurrent items or
199+ partial-match reasoning from uncertain input.
200+
201+ Anti-patterns:
202+ - "Find persona Alice" → HashMap, not VSA resonance
203+ - "Session is in analytical mode" → enum variant
204+ - "Character is Napoleon" → graph node by ID
205+
206+ Pro-patterns (VSA legitimately earns complexity):
207+ - "Which persona fits this caller's vibe?" (inferred, not named)
208+ - "Which thinking style best matches signal profile?" (dispatched)
209+ - "Which archetype is this character behaving as?" (inferred)
210+
211+ Cross-ref: ` vsa-switchboard-architecture.md § Test 0 ` .
212+
213+ ---
214+
215+ ## 2026-04-21 — VSA operates on identities, not content — the refined iron rule
216+
217+ ** Status:** FINDING (refines the blunt "CAM-PQ + VSA incompatible" framing)
218+
219+ Initial framing was too blunt. Refined:
220+
221+ ** VSA operates on IDENTITY fingerprints that POINT TO content.
222+ Never on content's bitpacked/quantized register itself.**
223+
224+ Register-loss problem: XOR-bundling 5 CAM-PQ codes makes the bit
225+ patterns of codebook indices XOR together. You can't recover WHICH
226+ centroids contributed. Register destroyed.
227+
228+ Right pattern: resonance layer (VSA Vsa16kF32 identity fingerprints,
229+ bundleable, cosine-retrievable) + content layer (YAML/TripletGraph,
230+ O(1) hash lookup). Winning fingerprint from resonance IS the lookup
231+ key for content.
232+
233+ - Persona: one FP32 identity per named persona in YAML registry.
234+ Bundle for multi-persona context. Cosine-rank. Winner name → YAML.
235+ - Thinking styles: one FP32 identity per style. Resonance from signal
236+ profile. Winner enum variant → YAML config.
237+ - Archetype: existing 12 voice archetypes + palette 256 archetypes
238+ each get an identity fingerprint. Resonance for inferred assignment.
239+
240+ Cross-ref: ` vsa-switchboard-architecture.md § Identity vs Content ` ,
241+ CLAUDE.md ` I-VSA-IDENTITIES ` iron rule (proposed).
127242
128243---
129244
0 commit comments