Skip to content

Commit 972b60a

Browse files
authored
Merge pull request #248 from AdaWorldAPI/claude/plan-doc-surgery-from-3578405
plan-doc surgery: delete §18 Vsa10k BF16 hallucination + DU-3 precision note
2 parents 0014d57 + 1813ed8 commit 972b60a

2 files changed

Lines changed: 0 additions & 92 deletions

File tree

.claude/plans/callcenter-membrane-v1.md

Lines changed: 0 additions & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -1136,88 +1136,3 @@ Runtime lookup:
11361136
PersonaId + KernelHandle → cognitive configuration for this turn
11371137
```
11381138

1139-
---
1140-
1141-
## § 18 — VSA Precision Tiers + Generational Compression (Father-Grandfather)
1142-
1143-
**Trigger:** 2026-04-23 — clarification that L4/L5 is the speed lane and must stay
1144-
at fingerprint resolution; L3 is where precision lives; VSA is the wire format.
1145-
1146-
### Three precision tiers
1147-
1148-
| Tier | Format | Size | Properties | Where |
1149-
|---|---|---|---|---|
1150-
| **Fingerprint** | `[u64;256]` = `Fingerprint<256>` | 2 KB (16 Kbit) | Hash-quantized. One-way (no unbind). SIMD-fast Hamming. | L4/L5 substrate (30 ns/bind) |
1151-
| **Vsa10k BF16** | `[bf16; 10000]` | 20 KB | Effectively lossless (Jirak noise floor not crossed). Supports `unbind(role)`. | L3 memory / cold storage |
1152-
| **Vsa10k f32** | `[f32; 10000]` | 40 KB | Fully lossless. Full bind/unbind algebra. | Offline training / precision UDFs |
1153-
1154-
**L4/L5 is the speed lane (motion, learning, fast dispatch).** The 16Kbit
1155-
fingerprint is the right format there — shrinking it would leave the speed
1156-
lane; inflating it to Vsa10k would blow the L3 memory budget at 30 ns/bind.
1157-
This boundary is a hardware-budget invariant, not a design choice.
1158-
1159-
**L3 is where precision is affordable.** The callcenter operates at human-turn
1160-
rate (seconds between commits), not substrate rate. Full Vsa10k BF16 at L3
1161-
costs 20 KB/row — trivial at that cadence. Alternatively: **RaBitQ**-quantized
1162-
columns in Lance provide zero-copy ANN search at < Vsa10k RAM cost while
1163-
preserving approximate unbind accuracy.
1164-
1165-
### VSA as the wire format
1166-
1167-
VSA IS the wire format — the medium through which cognitive content travels
1168-
between layers:
1169-
1170-
```
1171-
Wire format: bundle(SPO triples) → trajectory [Vsa10k or Fingerprint<256>]
1172-
Markov ±5 window → bundle last 5 trajectories → episodic context
1173-
Markov ±500 window → bundle last 500 cycles → long-range context
1174-
SPO role bind → bind(role_key, payload) → superposed into trajectory
1175-
```
1176-
1177-
`CognitiveEventRow` is NOT the wire format — it is the BBB-safe SCALAR
1178-
projection of the wire state. The wire (VSA trajectory) stays inside. The
1179-
projection (Arrow scalars) crosses the gate.
1180-
1181-
### Father-Grandfather generational compression
1182-
1183-
**Motivation:** Per-cycle fingerprints accumulate at 2 KB/cycle. 10K cycles
1184-
= 20 MB (manageable in hot tier). 10M cycles = 20 GB (cold storage, still
1185-
feasible). But for full-precision Vsa10k cold storage at 20 KB/cycle,
1186-
generational compression prevents unbounded RAM growth during replay.
1187-
1188-
**Hierarchy:**
1189-
1190-
```
1191-
"Son" (hot tier, L4/L5):
1192-
Per-cycle Fingerprint<256> rows — 2 KB each — fast, hash-quantized
1193-
Lance version-tagged; last M rows in hot dataset
1194-
1195-
"Father" (~100-cycle bundle, L3):
1196-
MergeMode::Bundle over last ~100 per-cycle fingerprints
1197-
→ single Vsa10k BF16 (20 KB) representing 100 cycles
1198-
→ CK-safe (I-SUBSTRATE-MARKOV); saturating bundle preserves Markov property
1199-
→ 100 × 2 KB → 20 KB: 10:1 compression; unbind survives at full L3 precision
1200-
1201-
"Grandfather" (~1000-cycle bundle, cold tier):
1202-
MergeMode::Bundle over last ~1000 cycles (or over 10 Father vectors)
1203-
→ single Vsa10k BF16 (20 KB) representing 1000 cycles
1204-
→ 1000 × 2 KB → 20 KB: 100:1 compression; Markov property preserved
1205-
→ unbind(role, grandfather) = approximate role trajectory over 1000 turns
1206-
```
1207-
1208-
**Relationship to existing Markov windows:**
1209-
- ±5 window → per-cycle fingerprint braid (existing, L4/L5)
1210-
- ±500 window → episodic memory (existing, L3)
1211-
- ±1000 window → grandfather bundle (new, L3/cold storage)
1212-
1213-
**CK safety proof (informal):** `MergeMode::Bundle` is commutative and
1214-
associative in expectation (Johnson-Lindenstrauss + concentration-of-measure
1215-
at rate ~e^(−d), I-SUBSTRATE-MARKOV). Bundling 100 fingerprints into one
1216-
Vsa10k is a saturating bundle; the Chapman-Kolmogorov property holds for the
1217-
bundle as a whole — the state transition from "Son" to "Father" is a valid
1218-
Markov step.
1219-
1220-
**Implementation note:** deferred. Current hot dataset stores fingerprints
1221-
only. Father/Grandfather columns are Phase B additions when cold dataset
1222-
accumulates > 10K cycles. No schema change to `CognitiveEventRow` required —
1223-
generational bundles live in a separate Lance dataset (compression tier).

.claude/plans/unified-integration-v1.md

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -193,13 +193,6 @@ ORDER BY dispatch_score DESC
193193
LIMIT 10;
194194
```
195195

196-
**Precision note:** The UDF signatures above use `[u64;256]` (fingerprint, L4/L5 tier)
197-
for dispatch scoring — fast Hamming distance, approximate role overlap. This is correct
198-
for the dispatch path (30 ns/bind speed lane). For deep role recovery via `unbind()`
199-
at full precision (RoleDB Phase B), the UDF input should be Vsa10k BF16 from the L3
200-
cold dataset — deferred until the L3 Vsa10k or RaBitQ cold columns exist. See §18
201-
of `callcenter-membrane-v1.md` for the precision tier architecture.
202-
203196
**BBB compliance:** UDFs operate on internal_dataset only. Results are scalar
204197
(f32 dispatch scores, u32 Hamming distances). VSA types never cross to external_dataset.
205198

0 commit comments

Comments
 (0)