Skip to content

Commit bc6a29f

Browse files
committed
feat(contract): episodic-RISC-spine — EpisodicEdges64 + ViewAngle (D-EW64-1, D-VIEW-1) + plan v1
AriGraph episodic edges, RISC-encoded (the corrected EW64, replacing the earlier "CE64 lens"/"16-bit pointer" framings): - episodic_edges::{EpisodicEdges64(u64), EdgeRef} — 4x[4-bit family | 12-bit local]. family 0 = intra-basin (inherited from HHTL/class_id, ~98.6% per #444); 1..=15 = cross-family index into the OGIT-class-inherited palette (~1.4%). Identities inherited, never on the edge (I-VSA-IDENTITIES); a CAM_PQ facet code. - view_angle::ViewAngle — 4-bit view-schema selector; the class presence bitmask doubles as the attention mask (inherited view-schema, never per-instance semantics). 527 contract lib tests (+11); both files clippy pedantic+nursery clean. Plan: .claude/plans/episodic-risc-spine-v1.md (3 lifecycle-separated structures: CAM/OGIT identity, Lance-version pseudo-radix index, CLAM ephemeral KV; bounded-horizon compression). Finding: EPIPHANIES E-EPISODIC-CLOSURE. CI-gated next (no protoc offline): D-EW64-2 SoA columns, D-STORY-1 CLAM clusterer, D-STORY-2 session index, D-STORY-3 palette256/4096 archetypes, D-HORIZON-1 stopping rule. Board: INTEGRATION_PLANS + LATEST_STATE + STATUS_BOARD + EPIPHANIES + AGENT_LOG. https://claude.ai/code/session_012SorR8UbtEvYmbX8cXftj7
1 parent 5bd02d9 commit bc6a29f

8 files changed

Lines changed: 494 additions & 0 deletions

File tree

.claude/board/AGENT_LOG.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,31 @@
1+
## [Main thread / Opus] episodic-RISC-spine wave — EpisodicEdges64 + ViewAngle (D-EW64-1, D-VIEW-1) + plan v1
2+
3+
**Branch:** claude/jolly-cori-clnf9. **Autonomous (full authorization, self-resolved).** **Spans:** the 2026-05-31 episodic-addressing design dialogue → detailed plan + two verifiable contract slices.
4+
5+
**Cargo:** `cargo test -p lance-graph-contract`**527 green** (+11: 8 episodic_edges, 3 view_angle); both files clippy pedantic+nursery clean.
6+
7+
**Shipped (contract, zero-dep, offline-verified):**
8+
- **D-EW64-1** `episodic_edges::{EpisodicEdges64(u64), EdgeRef}` — AriGraph episodic edges: 4×[4-bit family | 12-bit local]; `family 0` = intra-basin (inherited, ~98.6% per #444), `1..=15` = cross-family index into the OGIT-class-inherited palette (~1.4%); identities inherited not stored (`I-VSA-IDENTITIES`). Corrects the earlier "EW64 = CE64 lens" + "16-bit pointer" framings.
9+
- **D-VIEW-1** `view_angle::ViewAngle` — 4-bit view-schema selector; presence-bitmask-doubles-as-attention-mask doctrine (inherited view-schema, never per-instance semantics).
10+
11+
**Plan:** `.claude/plans/episodic-risc-spine-v1.md` (3-structure closure; verifiable-now vs CI-gated split). **Finding:** EPIPHANIES `E-EPISODIC-CLOSURE`. **CI-gated next (named, not built — no protoc offline):** D-EW64-2 (SoA columns), D-STORY-1 (CLAM clusterer), D-STORY-2 (session index), D-STORY-3 (palette256/4096 archetypes), D-HORIZON-1 (MUL stopping rule).
12+
13+
---
14+
15+
## [Main thread / Opus] episodic-RISC-spine wave — EpisodicEdges64 + ViewAngle (D-EW64-1, D-VIEW-1) + plan v1
16+
17+
**Branch:** claude/jolly-cori-clnf9. **Autonomous (full authorization, self-resolved).** **Spans:** the 2026-05-31 episodic-addressing design dialogue → detailed plan + two verifiable contract slices.
18+
19+
**Cargo:** `cargo test -p lance-graph-contract`**527 green** (+11: 8 episodic_edges, 3 view_angle); both files clippy pedantic+nursery clean.
20+
21+
**Shipped (contract, zero-dep, offline-verified):**
22+
- **D-EW64-1** `episodic_edges::{EpisodicEdges64(u64), EdgeRef}` — AriGraph episodic edges: 4×[4-bit family | 12-bit local]; `family 0` = intra-basin (inherited, ~98.6% per #444), `1..=15` = cross-family index into the OGIT-class-inherited palette (~1.4%); identities inherited not stored (`I-VSA-IDENTITIES`). Corrects the earlier "EW64 = CE64 lens" + "16-bit pointer" framings.
23+
- **D-VIEW-1** `view_angle::ViewAngle` — 4-bit view-schema selector; presence-bitmask-doubles-as-attention-mask doctrine (inherited view-schema, never per-instance semantics).
24+
25+
**Plan:** `.claude/plans/episodic-risc-spine-v1.md` (3-structure closure; verifiable-now vs CI-gated split). **Finding:** EPIPHANIES `E-EPISODIC-CLOSURE`. **CI-gated next (named, not built — no protoc offline):** D-EW64-2 (SoA columns), D-STORY-1 (CLAM clusterer), D-STORY-2 (session index), D-STORY-3 (palette256/4096 archetypes), D-HORIZON-1 (MUL stopping rule).
26+
27+
---
28+
129
## [Main thread / Opus] grounding wave (4 agents) → VersionScheduler slice (D-MBX-9-IN)
230

331
**Branch:** claude/jolly-cori-clnf9 (reset onto merged main `b6e3cc6` = #444+#445/lance7). **Spans:** the "wire all loose ends" agent wave — 4 read-only grounding agents → synthesis → first verifiable slice. **Firewall KEPT (user ratified):** EW64+markov_soa is the particle→wave; the old `Vsa16kF32` singleton is hunted, never re-materialized.

.claude/board/EPIPHANIES.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -864,6 +864,30 @@ AriGraph (`crates/lance-graph/src/graph/arigraph/`) is almost entirely standalon
864864
- **SPO-vocabulary debt (extends F-WIRE-DTO-DUP-MAP):** ≥4 parallel SPO-triple types (AriGraph `TripletGraph`, `ruff_spo_triplet::Triple`, `odoo_ontology::OntologyTriple`, aerial `CandidateTriple`, osint `extractor::Triplet`) — "one SoA never transformed" wants ONE; unification is the convergence work.
865865
- **class_id landing (shipping now):** the SoA's class discriminator IS the existing `entity_type: [u16; N]` (= OGIT `EntityTypeId`); expose it as `MailboxSoaView::class_id()` (N1 freeze hook). Metadata resolves one layer up via `lance-graph-ontology::OntologyRegistry` (perf gap: add O(1) `by_entity_type_id` index; today O(n) `enumerate_first_with_entity_type_id`).
866866
**Cross-ref:** `aerial-arm-ruff-spo-codegen-synergies.md`; `splat-codebook-aerial-wikidata-compression.md`; cognitive-risc-{core,classes,faiss-homology}; PR #437 `MailboxSoaView`.
867+
## 2026-05-31 — E-EPISODIC-CLOSURE — the episodic spine closes on three lifecycle-separated structures, and the compression IS the bounded horizon (not a codec)
868+
869+
**Status:** FINDING (architecture; converged in the 2026-05-31 design dialogue, grounded in user-supplied cognitive-risc-{core,classes}/faiss-homology/wikidata-hhtl docs + AriGraph arXiv 2407.04363 + the #444 probe).
870+
871+
1. **Three structures by lifecycle, zero overlap:** frozen identity = OGIT palette + CAM (never moves); cross-session index = Lance append-only version log = a **pseudo-radix** (append + immutable pointer ⇒ stable addressing, no rebalance — you don't *build* a radix, append-never-renumber *gives* one); within-session = **CLAM** over an ephemeral KV (the only thing that moves). Append-ness, clustering, freezing — three jobs, three structures.
872+
2. **EW64 = AriGraph episodic edges, NOT a CausalEdge64 lens.** A mailbox(=episode) is a basin with multiple edges; the temporal arc is a basin one HHTL level up (not a scalar prev). Intra-basin (~98.6%, #444) = inherited, ~0 bits; cross-family (~1.4%) = a **4-bit nibble** (16 families; fan-out ≤3 ⇒ headroom) into the **OGIT-class-inherited palette** (CAM_PQ facet code; identities inherited, never on the edge). NOT 16-bit pointers — 4-bit + inherited palette (Quartettkarten "lookup in OGIT, not in the data"). Shipped: `EpisodicEdges64`+`EdgeRef` (D-EW64-1).
873+
3. **Compression IS the bounded solution horizon.** A research = a free-energy descent that rests at the homeostasis floor ("call it a day"); awareness (MUL/`MetaWord` residual-F) = the stopping rule; 256 inputs → <32 clusters (locality); 4096-64k/KV = shock-absorber headroom, not a target. Lever = horizon-shortening (proposer/arbiter quality), NOT a codec. The presence bitmask doubles as the attention mask; a 4-bit `ViewAngle` (D-VIEW-1) selects the inherited view-schema (never per-instance semantics); `head2head` competes angles.
874+
875+
Shipped this wave (contract, verifiable): `VersionScheduler` (D-MBX-9-IN, pseudo-radix reader), `head2head` (D-H2H-1, story-meta), `EpisodicEdges64`/`EdgeRef` (D-EW64-1), `ViewAngle` (D-VIEW-1). Plan: `.claude/plans/episodic-risc-spine-v1.md`. Firewall held: identity exact (CAM/OGIT), stories flexible (CLAM/discovery), never swapped.
876+
877+
---
878+
879+
## 2026-05-31 — E-EPISODIC-CLOSURE — the episodic spine closes on three lifecycle-separated structures, and the compression IS the bounded horizon (not a codec)
880+
881+
**Status:** FINDING (architecture; converged in the 2026-05-31 design dialogue, grounded in user-supplied cognitive-risc-{core,classes}/faiss-homology/wikidata-hhtl docs + AriGraph arXiv 2407.04363 + the #444 probe).
882+
883+
1. **Three structures by lifecycle, zero overlap:** frozen identity = OGIT palette + CAM (never moves); cross-session index = Lance append-only version log = a **pseudo-radix** (append + immutable pointer ⇒ stable addressing, no rebalance — you don't *build* a radix, append-never-renumber *gives* one); within-session = **CLAM** over an ephemeral KV (the only thing that moves). Append-ness, clustering, freezing — three jobs, three structures.
884+
2. **EW64 = AriGraph episodic edges, NOT a CausalEdge64 lens.** A mailbox(=episode) is a basin with multiple edges; the temporal arc is a basin one HHTL level up (not a scalar prev). Intra-basin (~98.6%, #444) = inherited, ~0 bits; cross-family (~1.4%) = a **4-bit nibble** (16 families; fan-out ≤3 ⇒ headroom) into the **OGIT-class-inherited palette** (CAM_PQ facet code; identities inherited, never on the edge). NOT 16-bit pointers — 4-bit + inherited palette (Quartettkarten "lookup in OGIT, not in the data"). Shipped: `EpisodicEdges64`+`EdgeRef` (D-EW64-1).
885+
3. **Compression IS the bounded solution horizon.** A research = a free-energy descent that rests at the homeostasis floor ("call it a day"); awareness (MUL/`MetaWord` residual-F) = the stopping rule; 256 inputs → <32 clusters (locality); 4096-64k/KV = shock-absorber headroom, not a target. Lever = horizon-shortening (proposer/arbiter quality), NOT a codec. The presence bitmask doubles as the attention mask; a 4-bit `ViewAngle` (D-VIEW-1) selects the inherited view-schema (never per-instance semantics); `head2head` competes angles.
886+
887+
Shipped this wave (contract, verifiable): `VersionScheduler` (D-MBX-9-IN, pseudo-radix reader), `head2head` (D-H2H-1, story-meta), `EpisodicEdges64`/`EdgeRef` (D-EW64-1), `ViewAngle` (D-VIEW-1). Plan: `.claude/plans/episodic-risc-spine-v1.md`. Firewall held: identity exact (CAM/OGIT), stories flexible (CLAM/discovery), never swapped.
888+
889+
---
890+
867891
## 2026-05-31 — E-LANCE7-OBJECTSTORE-SURREALDB — the lance 6→7 bump is what *aligns* object_store with the surrealdb fork; the fork's `kv-lance` `=6.0.0` pins were already self-contradictory against its own object_store 0.13
868892

869893
**Status:** FINDING (deps; verified against crates.io dep graphs + a lock-only `cargo update`, no compile). User directive: "let's do 7 + 0.3 but we need to test surrealdb."

.claude/board/LATEST_STATE.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,10 @@
4242

4343
## Current Contract Inventory (lance-graph-contract)
4444

45+
> **2026-05-31 — ADDED (D-EW64-1 + D-VIEW-1, episodic-RISC-spine contract slices)**: `lance_graph_contract::episodic_edges::{EpisodicEdges64(u64), EdgeRef{family:u8, local:u16}}` — AriGraph episodic edges, 4×[4-bit family | 12-bit local]: `family 0` = intra-basin (inherited from HHTL/`class_id`, the ~98.6% case per #444), `1..=15` = cross-family index into the **OGIT-class-inherited palette** (CAM_PQ facet code; identities inherited, never on the edge — `I-VSA-IDENTITIES`). `local` 1-based ≤4095; cross-session reach = a separate 16-bit episode-store column (not this word). Plus `view_angle::ViewAngle` (4-bit view-schema selector; the class presence bitmask doubles as the attention mask — inherited view-schema, never per-instance semantics). Zero-dep; 527 contract lib tests (+11); clippy pedantic+nursery clean. Plan: `.claude/plans/episodic-risc-spine-v1.md`. Retracts the earlier "EW64 = CausalEdge64 lens" / "16-bit pointer" framings.
46+
47+
> **2026-05-31 — ADDED (D-EW64-1 + D-VIEW-1, episodic-RISC-spine contract slices)**: `lance_graph_contract::episodic_edges::{EpisodicEdges64(u64), EdgeRef{family:u8, local:u16}}` — AriGraph episodic edges, 4×[4-bit family | 12-bit local]: `family 0` = intra-basin (inherited from HHTL/`class_id`, the ~98.6% case per #444), `1..=15` = cross-family index into the **OGIT-class-inherited palette** (CAM_PQ facet code; identities inherited, never on the edge — `I-VSA-IDENTITIES`). `local` 1-based ≤4095; cross-session reach = a separate 16-bit episode-store column (not this word). Plus `view_angle::ViewAngle` (4-bit view-schema selector; the class presence bitmask doubles as the attention mask — inherited view-schema, never per-instance semantics). Zero-dep; 527 contract lib tests (+11); clippy pedantic+nursery clean. Plan: `.claude/plans/episodic-risc-spine-v1.md`. Retracts the earlier "EW64 = CausalEdge64 lens" / "16-bit pointer" framings.
48+
4549
> **2026-05-31 — ADDED (D-H2H-1, head2head superposition winner-select)**: `lance_graph_contract::head2head::{Head2Head (judge), WinnerCriterion (DissonanceMin≈infight / SupportSpread≈Raumgewinn / ConfidenceMax / Tempered=default), CompetitionOutcome}`. `Head2Head::select(&Blackboard) -> Option<CompetitionOutcome>` picks the winning competing-expert bid over the existing `a2a_blackboard` (confidence/dissonance/support) — pure read + arg-extremum, **no new identity, copies nothing** (select-don't-duplicate, `I-VSA-IDENTITIES`); `margin` = the dark-horse signal. The *selection* half of head2head superposition; parallel-mailbox *execution* is the CI-gated consumer side. Zero-dep; 516 contract lib tests (+7); clippy pedantic+nursery clean.
4650
4751
> **2026-05-31 — ADDED (D-MBX-9-IN, VersionScheduler contract slice, on `b6e3cc6`/lance7)**: `lance_graph_contract::scheduler::{DatasetVersion(u64), VersionScheduler (trait), NextPhaseScheduler (reference impl)}`. The IN-direction dual of `MailboxSoaOwner` (`E-SUBSTRATE-IS-THE-SCHEDULER`): `on_version<V: MailboxSoaView>(&V, DatasetVersion, ExecTarget) -> Option<KanbanMove>` lowers a Lance `versions()` tick to the next legal Rubicon `KanbanMove`; `NextPhaseScheduler` is the forward-arc reference (Libet `-550ms` anchor on Planning→CognitiveWork, `None` on absorbing). Read-only over the view (**propose-not-dispose**, R1); composes only existing contract types; zero-dep. 509 contract lib tests (+6); clippy pedantic-clean. CI-gated twin = `LanceVersionScheduler` over `VersionedGraph::versions()` via callcenter `LanceVersionWatcher`. Closes D-MBX-9 IN-direction at the type level (OUT twin + core impl remain CI-gated).

.claude/board/STATUS_BOARD.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -563,6 +563,10 @@ Plan path: `.claude/plans/unified-soa-convergence-v1.md`. Handover `.claude/hand
563563
| D-MBX-9 | Rubicon kanban view in `surrealkv`-on-lance (4 columns: Planning · Cognitive work · Evaluation · Commit·Plan·Prune); ractor lifecycle hooks = kanban moves | surreal_container + ractor | 250 | HIGH | **Queued** | gates on D-MBX-7 + D-MBX-8 + surreal_container BLOCKED(B/C/D) resolved (OQ-11.6) + D-PERSONA-5 |
564564
| D-MBX-9-IN | contract slice of D-MBX-9 IN-direction (`E-SUBSTRATE-IS-THE-SCHEDULER`): `scheduler::{DatasetVersion, VersionScheduler, NextPhaseScheduler}` — Lance `versions()` tick → next legal `KanbanMove`, zero-dep, read-only-over-view (propose-not-dispose) | lance-graph-contract | 130 | LOW | **Shipped (contract)** | 509 lib tests (+6); clippy pedantic-clean; CI-gated twin `D-MBX-9-IN-impl` (LanceVersionScheduler over `VersionedGraph::versions()`) named not written |
565565
| D-H2H-1 | head2head superposition winner-select (item 4, Go infight-vs-Raumgewinn): `head2head::{Head2Head, WinnerCriterion, CompetitionOutcome}``select(&Blackboard)` arg-extremum over existing bids, select-not-duplicate | lance-graph-contract | 130 | LOW | **Shipped (contract)** | 516 lib tests (+7); clippy pedantic+nursery clean; parallel-mailbox executor = CI-gated consumer side |
566+
| D-EW64-1 | `episodic_edges::{EpisodicEdges64, EdgeRef}` — AriGraph episodic edges (4×[4b family\|12b local]); intra=inherited (~98.6%), cross=4-bit nibble→OGIT-class palette (~1.4%); identities inherited not stored | lance-graph-contract | 120 | LOW | **Shipped (contract)** | 527 lib tests (+8); clippy pedantic+nursery clean; SoA-column wiring = D-EW64-2 (CI-gated) |
567+
| D-VIEW-1 | `view_angle::ViewAngle` — 4-bit view-schema selector; presence-bitmask-as-attention doctrine (inherited, never per-instance semantics); head2head competes angles | lance-graph-contract | 40 | LOW | **Shipped (contract)** | 527 lib tests (+3); clippy clean |
568+
| D-EW64-1 | `episodic_edges::{EpisodicEdges64, EdgeRef}` — AriGraph episodic edges (4×[4b family\|12b local]); intra=inherited (~98.6%), cross=4-bit nibble→OGIT-class palette (~1.4%); identities inherited not stored | lance-graph-contract | 120 | LOW | **Shipped (contract)** | 527 lib tests (+8); clippy pedantic+nursery clean; SoA-column wiring = D-EW64-2 (CI-gated) |
569+
| D-VIEW-1 | `view_angle::ViewAngle` — 4-bit view-schema selector; presence-bitmask-as-attention doctrine (inherited, never per-instance semantics); head2head competes angles | lance-graph-contract | 40 | LOW | **Shipped (contract)** | 527 lib tests (+3); clippy clean |
566570
| D-MBX-10 | SoA version byte at layout root (`MailboxSoAHeader`); refuse v(N>M) bytes on v(M) reader; field-isolation matrix tests on every column op (`I-LEGACY-API-FEATURE-GATED` discipline) | lance-graph-contract | 100 | HIGH | **Queued** | foundation — should land early in P2; gates on OQ-11.5 |
567571
| D-MBX-11 | Lance `=6.0.0 → =6.0.1` patch bump (5 Cargo.toml files identified) | workspace Cargo.toml | 10 | LOW | **Queued (mechanical)** | none — can land in parallel with par-tile prereq |
568572
| D-MBX-12 | 8-PR workspace-wide consumer alignment: 12.1 AriGraph · 12.2 Vsa16k audit · 12.4 lance-graph · 12.5 planner · 12.6 shader-driver · 12.7 callcenter · 12.8 ontology audit · 12.9 thinking-styles | per-crate | 800 | per-PR | **Queued (multi-PR)** | sequencing per OQ-11.8: 12.4 → 12.5 → 12.6 → 12.7 → 12.1 → 12.9 → 12.2 → 12.8 |

0 commit comments

Comments
 (0)