Skip to content

Commit 38618d4

Browse files
committed
adr-0001 followups: DU-2 transcode terminology + STATUS_BOARD ADR row
ADR 0001 Decision 1 locks the Archetype crate as TRANSCODE, not bridge. This commit lands the plan-doc + STATUS_BOARD terminology updates the ADR called out as "needs clarification commit": **unified-integration-v1.md DU-2 updates:** - Integration deliverable renamed from `lance-graph-archetype-bridge` → `lance-graph-archetype` (per ADR 0001 Decision 1) - Scope description updated: native Rust transcode of ECS contracts (`Component`, `Processor`, `World`, `CommandBroker`) against Lance + DataFusion + Arrow, NOT a bridge to Python Archetype runtime - "§ 4 Invariants" item 3: updated from "DU-2 Archetype bridge" to "DU-2 `lance-graph-archetype` (native transcode crate per ADR 0001)" - "§ 5 Open Questions" DU-2 API stability: clarified that Python upstream is design spec, not runtime dependency; Rust interface is defined from conceptual contracts - Phase ordering (priorities): "DU-2 (Archetype bridge...)" → "DU-2 (Archetype transcode crate...)" **STATUS_BOARD.md:** - New section: "ADR 0001 — Archetype transcode + Lance/DataFusion stack + Persona 16^32" with three-decision status table (all three Accepted) + follow-up items table (5 P1-P3 tracked items) - callcenter-membrane-v1 section header updated: "Validated by ADR 0001 Decision 2 (DM-4 + DM-6 IS the Supabase-shape transcode)" **No code changes.** Docs-only terminology cleanup completing the ADR 0001 implications. Unlocking the transcode-vs-bridge distinction as immutable lock state. https://claude.ai/code/session_01SbYsmmbPf9YQuYbHZN52Zh
1 parent 575fe17 commit 38618d4

2 files changed

Lines changed: 59 additions & 15 deletions

File tree

.claude/board/STATUS_BOARD.md

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -227,10 +227,37 @@ before the next major planning session.
227227

228228
---
229229

230+
## ADR 0001 — Archetype transcode + Lance/DataFusion stack + Persona 16^32
231+
232+
Three-decision architectural lock, accepted 2026-04-24. First ADR in the
233+
workspace. Path: `.claude/adr/0001-archetype-transcode-stack.md`.
234+
235+
| Decision | Status | Mutability |
236+
|---|---|---|
237+
| **D1 — Archetype is TRANSCODED, not bridged** | **Accepted** | Immutable (unlocking requires new ADR) |
238+
| **D2 — Stack lock** (Lance + DataFusion + Supabase-shape scheduler + Arrow temporal; Polars rejected; Ballista deferred to 1s-P99) | **Accepted** | Ballista threshold mutable; rest immutable |
239+
| **D3 — Persona 16^32 is THE identity space** (56-bit PersonaSignature; atom vector BBB-banned) | **Accepted** | Immutable; shared-DTO unification OPEN for future ADRs |
240+
241+
**Follow-up items tracked** (per ADR implications):
242+
243+
| Item | Priority | Location |
244+
|---|---|---|
245+
| DU-2 clarification (rename "bridge" → "transcode") | P2 | `unified-integration-v1.md` DU-2 |
246+
| First `lance-graph-archetype` skeleton crate | P1 (when deliverable lands) ||
247+
| Grok gRPC A2A expert adapter | P2 | `TECH_DEBT.md` 2026-04-24 |
248+
| Enrichment-shape follow-up ADR | P2 | `TECH_DEBT.md` 2026-04-24 |
249+
| Ballista threshold tuning (post-benchmark amend) | P3 | `TECH_DEBT.md` 2026-04-24 |
250+
251+
Merged via PR #249 (2026-04-24).
252+
253+
---
254+
230255
## callcenter-membrane-v1 — Supabase-shape over Lance + DataFusion
231256

232257
External callcenter membrane crate. BBB enforced by Arrow type system at
233-
compile time. Plan: `.claude/plans/callcenter-membrane-v1.md`.
258+
compile time. Plan: `.claude/plans/callcenter-membrane-v1.md`. **Validated
259+
by ADR 0001 Decision 2** (DM-4 `LanceVersionWatcher` + DM-6 `DrainTask`
260+
pattern IS the Supabase-shape transcode approach).
234261

235262
### DM-0 / DM-1 — Shipped in this session
236263

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

Lines changed: 31 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -155,13 +155,25 @@ per tick.
155155
- Archetype belongs in q2's simulation layer; callcenter belongs at wire level
156156
- Keeping them separate preserves the q2=GUI / callcenter=headless boundary
157157

158-
**Integration deliverable:** thin adapter crate `lance-graph-archetype-bridge`
159-
- `ArchetypeWorld → Blackboard` adapter (World snapshot → Blackboard round)
160-
- `ArchetypeTick → UnifiedStep` adapter (tick event → step for OrchestrationBridge)
161-
- `project() result → Archetype DataFrame component update`
162-
163-
**Status:** Queued
164-
**Effort:** ~3 days (adapter crate; no changes to callcenter or lance-graph core)
158+
**Integration deliverable (per ADR 0001 Decision 1 — TRANSCODE, not bridge):**
159+
native Rust crate `lance-graph-archetype` that assimilates the Archetype
160+
ECS contracts against Lance + DataFusion + Arrow. Python upstream is
161+
design spec, not runtime dependency.
162+
163+
- `Component` trait maps to Arrow field
164+
- `Processor` trait = stateless `RecordBatch → RecordBatch` transform
165+
- `World` = Lance versioned dataset + tick counter + `CommandBroker`
166+
- `ArchetypeWorld.tick()` = drain commands → run processors → append snapshot
167+
- `ArchetypeWorld.fork()` = Lance version branch (free time-travel / counterfactual)
168+
- `project()` emits Arrow `RecordBatch` consumed by `ExternalMembrane`
169+
170+
**Not "bridge":** the crate does not FFI into Python Archetype at
171+
runtime. It transcodes the contracts natively. The upstream Python
172+
package is the DESIGN reference, not a live dependency. See
173+
`.claude/adr/0001-archetype-transcode-stack.md` Decision 1.
174+
175+
**Status:** Queued (naming + scope updated post-ADR 0001)
176+
**Effort:** ~3 days (native crate; no changes to callcenter or lance-graph core)
165177

166178
---
167179

@@ -255,7 +267,7 @@ DU-2 (Archetype) ──► needs DM-2 (ExternalMembrane impl to adapt against
255267
3. DU-0 (offline extraction, runs async)
256268
4. DM-2 (LanceMembrane impl — unlocks DU-1, DU-2)
257269
5. DU-1 (ONNX oracle, depends on DM-2 corpus)
258-
6. DU-2 (Archetype bridge, depends on DM-2)
270+
6. DU-2 (Archetype transcode crate, depends on DM-2)
259271
7. DU-5 (board hygiene, last)
260272

261273
---
@@ -268,9 +280,11 @@ DU-2 (Archetype) ──► needs DM-2 (ExternalMembrane impl to adapt against
268280
2. **I-SUBSTRATE-MARKOV:** `bundle_udf` in DU-3 MUST use `MergeMode::Bundle`, not `MergeMode::Xor`.
269281
XOR breaks the CK guarantee for state-transition paths.
270282

271-
3. **q2=GUI / callcenter=headless:** DU-2 Archetype bridge does NOT put ECS logic inside
272-
`lance-graph-callcenter`. The bridge is a thin adapter crate that Archetype calls INTO
273-
the callcenter. Callcenter has zero knowledge of Archetype.
283+
3. **q2=GUI / callcenter=headless:** DU-2 `lance-graph-archetype` (the native
284+
transcode crate per ADR 0001) does NOT put ECS logic inside
285+
`lance-graph-callcenter`. The transcode crate sits alongside, calling INTO
286+
the callcenter via `ExternalMembrane::ingest()`. Callcenter has zero
287+
knowledge of Archetype.
274288

275289
4. **Jirak-derived thresholds (I-NOISE-FLOOR-JIRAK):** `unbind_udf` dispatch scores are
276290
probabilistic, not exact. Any significance threshold for dispatch scoring must cite
@@ -292,9 +306,12 @@ DU-2 (Archetype) ──► needs DM-2 (ExternalMembrane impl to adapt against
292306
depends on class balance across 288 persona classes. Some personas may be rare in
293307
practice (e.g., `(OpenClaw, Koan)`) — rare class handling may be needed.
294308

295-
- **DU-2 Archetype API stability:** `VangelisTech/archetype` is an active repo. Adapter
296-
crate should define its OWN interface (not directly call Archetype internals) so that
297-
Archetype version changes don't break the bridge.
309+
- **DU-2 Archetype API stability:** `VangelisTech/archetype` is an active Python repo,
310+
which is the DESIGN spec (not a runtime dependency). The `lance-graph-archetype`
311+
transcode crate defines its OWN Rust interface based on the conceptual contracts
312+
(`Component`, `Processor`, `World`, `CommandBroker`) rather than mirroring Python
313+
signatures. Upstream API changes inform future transcodes; they don't break running
314+
code. See ADR 0001 Decision 1.
298315

299316
- **DU-3 fingerprint column type in DataFusion:** `[u64; 256]` is not a native Arrow type.
300317
Representation options: `FixedSizeBinary(2048)`, `FixedSizeList<u64>(256)`, or custom

0 commit comments

Comments
 (0)