Skip to content

Commit 5a09e63

Browse files
committed
docs(unified-soa): v1.1 amendment — retract hallucinated CollapseGateEmission witness-arc model; SoA payload = kanban only
v1 (merged in PR #434) imported the other session's proposer-in-SoA framing and welded it to a symbol — `CollapseGateEmission` — that does not exist. Real `CollapseGate` lives in lance-graph-planner (query-planner result-filter, cold-path). User correction 2026-05-29 retracted the SoA-side proposer model: import discovery is callcenter × ontology × contract cold-path; the SoA holds the kanban board, period. Retracts (load-bearing, ratified): - R1. `CollapseGateEmission` symbol does not exist; v1 §6 withdrawn. - R2. Import discovery is cold-path (witness × Ontology × witness); v1 §6.1, §6.2, §6.3, §7 withdrawn. AriGraph episodic chain is cold-path over callcenter, not a SoA traversal. - R3. `witness_arc: [u32; W]` SoA column (D-MBX-A3) withdrawn; OQ-11.2 dissolved. Kanban card carries a `witness_handle: u64` cold-path pointer instead. Deferred to fresh session (constructive additions, under token-degradation acknowledgment): - A1. Kanban-cards-only SoA payload schema (1 card per lane, no collapse gate). - A2. Advocatus-diaboli / EFE dialogue spec (default: modulation-only via i4 mantissa channel on baton; no commit authority). - A3. Staunen × Wisdom plasticity spreader dissolves into diaboli channel amplitude (OQ-11.1 reframed). - A4. D-MBX deliverable re-map post-retraction (A3 reframed, A5 collapsed cold-path, others survive). - A5. AriGraph episodic Markov chain = cold-path over callcenter rows. Cross-session items independent of SoA (survive unchanged): Jirak math fix (`.powf(-(p/2 - 1.0))`); recipe-dedup CodeRabbit #6 → `debug_assert!`; recipe_id space switches to xxhash-64 / blake3-trunc-64 (78k cumulative ≈ 50% birthday); Aerial+ fork blocker = same class as surreal BLOCKED(C), separate OQ. Council gate: this amendment is derived spec — MUST pass epiphany-brainstorm-council before any field-isolation matrix code lands. v1 §11 author-stated rulings keep their bypass; the additions do NOT. Files: - .claude/plans/unified-soa-convergence-v1.1-amendment.md (114 lines) - .claude/handovers/2026-05-29-1925-soa-amendment-retraction-to-additions.md (75 lines; next-session entry point with FINDING / CONJECTURE / blockers) https://claude.ai/code/session_017GFLBnDy23AWBqvkbHHC41
1 parent 7c28967 commit 5a09e63

2 files changed

Lines changed: 189 additions & 0 deletions

File tree

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
# Handover — soa-amendment retraction → additions
2+
3+
**Date:** 2026-05-29 ~19:25 UTC
4+
**From session:** `017GFLBn` (branch `claude/splat3d-cpu-simd-renderer-MAOO0`)
5+
**To:** the next session that picks up the v1.1 *constructive additions* (kanban-cards-only SoA payload + diaboli/EFE dialogue spec).
6+
**Read in this order:**
7+
1. `.claude/plans/unified-soa-convergence-v1.md` (merged in PR #434) — the SoA skeleton this amends.
8+
2. `.claude/plans/unified-soa-convergence-v1.1-amendment.md` — the retractions (§1) + the deferred A1–A5 outline (§2). Treat §1 as ratified architecture; §2 is your scope.
9+
3. This handover.
10+
11+
---
12+
13+
## What this session did
14+
15+
1. Reviewed PR #435 (other session's op_emitter Phase 2 + ARM-discovery plan); verified 6 CodeRabbit threads; flagged Jirak-math fix is needed but CodeRabbit's diff would deepen the bug.
16+
2. Validated other session's §7 SoA-column proposals (`discovery_arc`, `discovery_origin`) — **incorrectly**. User correction landed: import discovery is cold-path (`callcenter × ontology × contract`), the columns don't belong in the SoA.
17+
3. Discovered I had referenced `CollapseGateEmission` as an SoA emission type — **the symbol does not exist.** What exists is `CollapseGate` in `lance-graph-planner` (planner result-filter, agi-chat Two-Stroke FLOW/HOLD/BLOCK), cold-path. Verified by grep.
18+
4. Wrote v1.1 amendment §1 (retractions R1/R2/R3) + §2 (deferred additions outline) + §3 (cross-session survivors) + §4 (OQ status) + §5 (provenance).
19+
5. **Did not author the constructive additions** (A1–A5). The session reached token-degradation threshold; user flagged it directly. Honest stop instead of producing low-quality spec.
20+
21+
---
22+
23+
## FINDING (high-confidence facts the next session inherits)
24+
25+
- **The retractions in §1 are ratified architecture.** Don't relitigate R1 (CollapseGateEmission doesn't exist), R2 (import discovery is cold-path), R3 (no SoA witness_arc column).
26+
- **Kanban cardinality: 1 card per lane. No in-kanban collapse gate.** Confirmed by user via AskUserQuestion. Rubicon IS the collapse; multiplicity lives in pre-Rubicon Planning only.
27+
- **Diaboli is modulation-only.** Selected as default in the amendment; consistent with "no collapse gate, no cross-ractor commit wait." The other choice (peer-that-can-commit) would force a coordination gate the architecture forbids.
28+
- **Witness lives cold-path.** A kanban card carries at most a `witness_handle: u64` pointer into callcenter; no SoA-side arc array.
29+
- **Existing crates serve the cold-path stack:** `lance-graph-callcenter` (Zone-2 persistence), `lance-graph-ontology` (registry + lazy-locked dictionary cache), `lance-graph-contract` (LE types).
30+
- **The real `CollapseGate`** lives in `lance-graph-planner` (`ir/logical_op.rs:297`, `physical/collapse.rs`, `strategy/collapse_gate.rs`). It is a query-planner result-filter. Stays there. Does not enter the SoA.
31+
32+
---
33+
34+
## CONJECTURE (defaults to ratify in next session)
35+
36+
- **A1 default — kanban card field layout.** `{ phase_in_lane: u8, witness_handle: u64, free_energy_residual: f32, content_ref: ContentId(6B), entity_type: u16 } = ~22 B/card`. With 4 phases × 1 card = ~88 B/mailbox + identity planes ≈ 6.1 KB. Lane cardinality = 4 (the Rubicon kanban columns: Planning · Cognitive work · Evaluation · Commit·Plan·Prune).
37+
- **A2 default — diaboli mantissa wire format.** Extra 4-bit-per-qualia-dimension modulation payload on the baton; for 16-D qualia = 64 bits / 8 B added to baton wire. Baton today is 13 B base + 10 B/baton (per `E-BATON-1`); diaboli modulation adds 8 B → 31 B for a modulated baton. Final shape needs user ratification.
38+
- **A3 default — Staunen × Wisdom dissolves into diaboli amplitude.** Plasticity spread = the diaboli's modulation gain; "radius/decay" becomes a smoothness curve over the qualia dims, not a spatial radius over rows.
39+
40+
---
41+
42+
## Blockers
43+
44+
- **`epiphany-brainstorm-council`** must ratify any new derived spec (A1–A5). The §11 user-stated rulings of v1 bypass the council; the additions in this amendment do NOT bypass.
45+
- **Token-degradation risk.** Author A1–A5 with a fresh context. Don't try to extend this session.
46+
47+
---
48+
49+
## Open questions for the user
50+
51+
| # | Question | Default | Blocks |
52+
|---|---|---|---|
53+
| OQ-11.9 | Kanban card field layout + lane cardinality? | `{phase_in_lane, witness_handle, free_energy_residual, content_ref, entity_type}` × 4 lanes | A1 / D-MBX-A3' |
54+
| OQ-11.10 | Diaboli mantissa channel wire format on baton? | +8 B (4-bit × 16-D qualia) | A2 / D-MBX-A4' |
55+
| OQ-11.11 | Does diaboli get its own mailbox or share one with protagonist (two sea-star members, single owner)? | Separate mailbox; pairwise binding | A2 |
56+
| OQ-11.12 | What signals the protagonist to enter Planning with a diaboli pair (vs solo deliberation)? | High Staunen × Wisdom qualia threshold (the spreader's old role) | A3 |
57+
58+
---
59+
60+
## Code anchors (don't re-grep these)
61+
62+
- `crates/lance-graph-planner/src/ir/logical_op.rs:297` — real `CollapseGate` (planner-side; STAYS).
63+
- `crates/lance-graph-planner/src/physical/collapse.rs` — physical operator.
64+
- `crates/lance-graph-planner/src/strategy/collapse_gate.rs` — strategy #10.
65+
- `crates/lance-graph-callcenter/*` — cold-path Zone-2 persistence (the witness write surface).
66+
- `crates/lance-graph-ontology/src/registry.rs:39``LazyLock<NamespaceRegistry>` (AS IS).
67+
- `crates/lance-graph-ontology/src/lance_cache.rs` — ontology dictionary cache (AS IS).
68+
- `crates/lance-graph-contract/*` — LE types (`CausalEdge64`, `QualiaI4_16D`, `MetaWord`, `MailboxId`, ...).
69+
- `crates/cognitive-shader-driver/src/mailbox_soa.rs:67-83` — D-MBX-A1 columns (`edges`, `qualia`, `meta`, `entity_type`) — these stay; v1.1 adds the kanban card payload alongside, does NOT add `witness_arc`.
70+
71+
---
72+
73+
## Provenance — user rulings (verbatim 2026-05-29)
74+
75+
See `.claude/plans/unified-soa-convergence-v1.1-amendment.md` §5. Treat them as load-bearing.
Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
# unified-soa-convergence-v1.1 — AMENDMENT to v1 (merged in PR #434)
2+
3+
> **Status:** AMENDMENT. **Predecessor:** `unified-soa-convergence-v1.md` (merged 2026-05-29 via PR #434, commit `1186dfd`).
4+
> **Authored:** 2026-05-29 (session `017GFLBn`, branch `claude/splat3d-cpu-simd-renderer-MAOO0`).
5+
> **Trigger:** user correction on 2026-05-29 — *"where do you see a collapse gate? input/output proposer definitely doesn't belong into the SoA and is extremely hallucinated"* — followed by *"the only thing inside the SoA is the kanban board."*
6+
> **Council gate:** this amendment is DERIVED spec (not author-stated). MUST pass `epiphany-brainstorm-council` (PR #433) before any field-isolation matrix code lands.
7+
8+
---
9+
10+
## 0. Why an amendment, not a v2
11+
12+
Two retractions and one architectural restatement. The v1 plan is correct in its skeleton (one LE SoA, never re-encoded; nine consumers; Lance 6.0.1 stack; 4-phase Rubicon kanban; Libet −550 ms anchor; lance-graph-planner DTO overhaul). What broke is the SoA *payload* model: v1 imported the other session's proposer-in-SoA framing and welded it to a symbol (`CollapseGateEmission`) that does not exist. This amendment corrects both.
13+
14+
---
15+
16+
## 1. Retractions
17+
18+
### R1. `CollapseGateEmission` does NOT exist as a symbol
19+
20+
**What v1 said** (§6.2, §11.2): the per-row witness arc is "the per-row arc of `CausalEdge64` emissions (`CollapseGateEmission` arc)" stamping NARS revision. The witness-arc column `[u32; W]` was indexed by these emissions.
21+
22+
**What actually exists** (verified by `grep -rn` 2026-05-29):
23+
- `CollapseGate` (a query-planner result-filter) at `crates/lance-graph-planner/src/ir/logical_op.rs:297`, `crates/lance-graph-planner/src/physical/collapse.rs`, `crates/lance-graph-planner/src/strategy/collapse_gate.rs`.
24+
- Provenance: agi-chat's FLOW/HOLD/BLOCK Two-Stroke engine; cold-path planner gate; filters low-resonance results in `Strategy #10`.
25+
- **There is no per-mailbox emission type carrying witness arc-handles.** The symbol was invented.
26+
27+
**Retraction:** v1 §6 (the witness-arc model anchored to `CollapseGateEmission`) is withdrawn. The real `CollapseGate` stays in `lance-graph-planner` as a planner-side filter; it does not enter the SoA.
28+
29+
### R2. Import discovery is COLD-PATH; it does NOT belong in the SoA
30+
31+
**What v1 said** (§2.1, §2.2, §6.1, §7): the SoA carries proposer outputs; AriGraph episodic chain traversal happens via SoA witness-arc handles; `discovery_arc` + `discovery_origin` columns (PR #435's §7) were affirmed.
32+
33+
**What's correct** (per user 2026-05-29):
34+
35+
```
36+
witness × Ontology × witness = mailbox/graph cold-path fact
37+
```
38+
39+
Any external witness — dentist invoice, X-ray DICOM, OpenStreetMap, Palantir Gotham/Foundry, neo4j dump, Aerial+ ARM-discovered rule — is served by the **existing** cold-path stack:
40+
41+
| Crate | Role |
42+
|---|---|
43+
| `lance-graph-callcenter` | Zone-2 persistence (the cold-path commit surface) |
44+
| `lance-graph-ontology` | Registry / relations / lazy-locked dictionary cache |
45+
| `lance-graph-contract` | LE types (`CausalEdge64`, `QualiaI4_16D`, `MetaWord`, etc.) |
46+
47+
ARM-discovery, AST extraction, L-doc projection, and every future proposer are all **cold-path witness producers** feeding `callcenter × ontology × contract`. **None of them touch the SoA.**
48+
49+
**Retraction:** v1 §6.1, §6.2, §6.3 (SoA-side witness-arc model) and §7 (the `discovery_arc` / `discovery_origin` column proposals folded from PR #435 §7) are withdrawn. The AriGraph episodic Markov chain is **cold-path over callcenter rows**, not a SoA traversal. The SoA does not participate in chain walking.
50+
51+
### R3. `witness_arc: [u32; W]` SoA column (D-MBX-A3) is withdrawn
52+
53+
Under R1 + R2 there is nothing for this column to carry. The committed-witness pointer lives on the kanban card (§2 below); the cold-path arc is reconstructed via `callcenter` SPO-G queries when needed.
54+
55+
**OQ-11.2 (witness arc width W)** is DISSOLVED — no column, no width.
56+
57+
---
58+
59+
## 2. What this amendment does NOT yet cover (deferred to a fresh session)
60+
61+
Authored under explicit token-degradation acknowledgment. The retractions above (R1/R2/R3) are load-bearing and stand alone — they pull the SoA back to a coherent surface. The constructive additions need careful authoring and are **deferred**:
62+
63+
- **A1 (deferred) — kanban-cards-only SoA payload schema.** What does a single kanban card carry? Confirmed: 1 card per lane, no in-kanban collapse gate (Rubicon = the collapse). Open: card field layout (`phase_in_lane`, `witness_handle: u64`, `free_energy_residual: f32`, `content_ref`, `entity_type`), lane cardinality (4 phases of the Rubicon kanban? more?), per-mailbox hot footprint budget after `witness_arc` retraction.
64+
- **A2 (deferred) — advocatus-diaboli / EFE dialogue spec.** Default position to refine: diaboli is **modulation-only** (perturbs protagonist's EFE landscape via i4 mantissa precision channel; does not commit; does not cross Rubicon; does not consume a kanban lane slot). The "*meta-exploration mantissa of the other*" framing maps to an extra 4-bit-per-qualia-dimension modulation payload on the baton. Wire format needs spec.
65+
- **A3 (deferred) — plasticity spreader dissolution.** v1 §11.5 / D-MBX-A4 / OQ-11.1 (Staunen × Wisdom radius + decay) becomes the diaboli channel amplitude in the dialogue, not a focal-row Hebbian. OQ-11.1's radius/decay defaults become moot; replaced by the diaboli amplitude curve.
66+
- **A4 (deferred) — D-MBX deliverable re-map.** D-MBX-A3 reframes from `witness_arc` array to single `witness_handle: u64` on the kanban card. D-MBX-A5 (SPO-W dual-residency) collapses into a pure cold-path callcenter SPO-G commit (no SoA touch). D-MBX-A4 reframes per A3 above. D-MBX-7/8/9/10/11/12 survive unchanged.
67+
- **A5 (deferred) — AriGraph episodic Markov chain restatement.** Chain = cold-path over callcenter rows; traversal = SPO-G query. The mailbox SoA holds at most a `witness_handle` from the active kanban card; no SoA-side chain walking.
68+
69+
A fresh session should treat the retractions in §1 as ratified architecture and draft A1–A5 as new spec, ratified through `epiphany-brainstorm-council`.
70+
71+
---
72+
73+
## 3. Cross-session items that SURVIVE the retractions (cold-path, independent of SoA)
74+
75+
The other session's PR #435 review feedback contained four items that are independent of the SoA decisions and stand unchanged:
76+
77+
1. **Jirak math fix.** Rate is `n^{-(p/2-1)}` (= `n^{1-p/2}`). At p=2.5 → n⁻¹/⁴; at p=3 → n⁻¹/² (coincides with classical Berry-Esseen, not stricter); at p=4 → n⁻¹/² (L^q cap). Code default: `.powf(-(p / 2.0 - 1.0))` or equivalently `.powf(1.0 - p / 2.0)`. Soften the "stricter than IID" framing: Jirak bites *below* p=3; at p=3 the iron-rule's bite is the requirement to *justify* p≥3, not a different rate. **Apply to PR #435's plan §4 + the `jirak` module default.**
78+
2. **Recipe-dedup CodeRabbit #6.** Decline the hard `assert!()`; collapse-by-`recipe_id` is intentional design per `style_recipe.rs:84-85`. Optional `debug_assert!` for a debug-build safety net is acceptable.
79+
3. **FNV-1a 32-bit → 64-bit for `recipe_id` only.** At sustained ARM-discovery throughput, birthday-paradox collision hits ~50% near ~78k cumulative recipes. Switch *the recipe space alone* to xxhash-64 / blake3-trunc-64. Keep the SoA-layout `layout_checksum` (proposed for `MailboxSoAHeader` in v1 §3.1) at FNV-32 — its keyspace (the column-offset table, ~10 entries) has no birthday surface. The two hash decisions are independent.
80+
4. **Aerial+ fork blocker.** Same *class* as `surreal_container` BLOCKED(C) — fork-access-human gate. Separate OQ tickets (different URLs, different feature flags, different downstream consumers); cross-reference with a "blocker class: fork-access-human" tag. If a third one appears, hoist the class to a `FORK-ACCESS-BACKLOG.md`.
81+
82+
---
83+
84+
## 4. v1 OQ catalogue — post-amendment status
85+
86+
| OQ | v1 status | Amendment status |
87+
|---|---|---|
88+
| OQ-11.1 (Staunen × Wisdom radius / decay) | Open | **DISSOLVED** — folded into diaboli amplitude curve (A2/A3, deferred). |
89+
| OQ-11.2 (witness arc width W) | Open | **DISSOLVED** — no SoA witness arc (R3). |
90+
| OQ-11.3 (vetoed / ghosted kanban column) | Default: No | **CONFIRMED** — no extra column; Prune is terminal-veto. |
91+
| OQ-11.4 (CLAUDE.md `Vsa16kF32` doctrinal update timing) | Open | Unchanged. |
92+
| OQ-11.5 (SoA version field width) | Default: u16 | Unchanged. |
93+
| OQ-11.6 (surrealdb fork access — BLOCKED(C)) | Open | Unchanged. Same blocker class as new OQ-ARM-X (Aerial+ fork). |
94+
| OQ-11.7 (planner DTO overhaul scope) | Default: feature-gated | Unchanged. |
95+
| OQ-11.8 (D-MBX-12 sub-PR sequencing) | Default sequence | Unchanged. |
96+
| OQ-11.9 (NEW, deferred A1) || Kanban card field layout + lane cardinality + per-mailbox hot footprint. |
97+
| OQ-11.10 (NEW, deferred A2) || Diaboli mantissa channel wire format on the baton. |
98+
99+
---
100+
101+
## 5. Provenance — user-stated rulings (verbatim, 2026-05-29)
102+
103+
- *"where do you see a collapse gate?"*
104+
- *"input output proposer definitely doesn't belong into the SoA and is extremely hallucinated"*
105+
- *"we already have lance-graph-callcenter, lance-graph-ontology, lance-graph-contract"*
106+
- *"any import discovery or whatever is a witness × Ontology × witness = mailbox/graph cold path facts"*
107+
- *"whether it's a dentist invoice or X-ray or open street map or Palantir Gotham foundry or neo4j"*
108+
- *"if you want something inside the SoA it's the kanban board"*
109+
- *"kanban is Orchestration"*
110+
- *"a planner kanban can hold multiple thoughts or 1 only (sparse and efficient)"* + answered "1 per lane, no gate"
111+
- *"otherwise we need collapse gate for kanban which I don't want, waiting for the commit of another ractor feels wrong"*
112+
- *"one mailbox being the advocatus diaboli / sarcastic remarks / meta exploration mantissa of the other"*
113+
114+
These rulings are **load-bearing** for the retractions in §1 and the deferred additions in §2. Do not paraphrase or "fix" them.

0 commit comments

Comments
 (0)