Skip to content

Commit f8a2699

Browse files
committed
docs(board): harvest ractor-supervisor path as Path B complement to thinking-engine (Path A)
User correction: "ractor in lance-graph-callcenter is the other path" — the 2026-05-13 thinking-engine finding captured Path A (cognitive substrate) only; Path B (runtime topology via ractor sync supervisor) is the complementary substrate already designed in .claude/plans/compile-time-consumer-binding-v1.md and tech-debt-tracked as TD-RACTOR-SUPERVISOR-5 + TD-MANIFEST-MODULES-4. Adds: 1. EPIPHANIES.md — 2026-05-13 two-paths-converging finding: Path A gives the *contents* of authorize/dispatch decisions (role projection, persona, awareness DTO); Path B gives the *topology* that runs them under crash-isolated sync supervision (I-2 BBB invariant: tokio outbound only / sync ractor inbound). Together they form the runtime: CallcenterSupervisor owns N consumer actors → each calls UnifiedBridge::authorize_* → which projects through thinking-engine primitives → emits chained UnifiedAuditEvent carrying both merkle_root AND awareness_root. The compile-time manifest (Pattern E) gates both substrate paths from a single /modules/<name>/manifest.yaml entry — actor_type field selects Path B's handler arm, thinking_styles field selects Path A's projection vectors. 2. IDEAS.md — Pattern E+F+cognition cascade: 3-PR sequence (D-MANIFEST-MODULES-4 → D-RACTOR-SUPERVISOR-5 → cognition_bridge) that collapses 5 nominally separate deliverables (~830 LOC clean- room scaffolding) into a ~950 LOC composed-against-thinking-engine cascade. Architectural payoff: lance-graph-callcenter finally becomes the telephony-switching supervisor its name has promised since day one. Promotes to Phase 0.5 in the priority-ordered next steps — before D-SDR-13/15/17. No new TD row (TD-RACTOR-SUPERVISOR-5 + TD-MANIFEST-MODULES-4 already exist in TECH_DEBT.md:1779 and 1751 respectively from prior session). https://claude.ai/code/session_01PjcbSTd9zdVPkta9qwkVKo
1 parent ce01eb9 commit f8a2699

2 files changed

Lines changed: 67 additions & 0 deletions

File tree

.claude/board/EPIPHANIES.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,40 @@ stay as historical references.
6565

6666
## Entries (reverse chronological)
6767

68+
## 2026-05-13 — FINDING: `lance-graph-callcenter` has TWO complementary substrate paths waiting to be wired — thinking-engine (cognition) + ractor (runtime topology)
69+
70+
**Status:** FINDING
71+
72+
The 2026-05-13 thinking-engine finding (below) names one dormant substrate path that closes §16-§19. There is a **second, orthogonal** substrate path already designed and tech-debt-tracked: the **ractor supervisor** path that closes the runtime topology side. Both converge in `lance-graph-callcenter` — and both must be wired together, not picked one-or-the-other.
73+
74+
| Path | What it solves | Status | Cross-ref |
75+
|---|---|---|---|
76+
| **A — `thinking-engine` substrate** (582 KB, 48 modules) | Cognitive surface: role projection, persona, qualia, awareness DTO, lenses, codebook lookup, ground-truth calibration | Indexed in `CLAUDE.md § Thinking Engine`; consumed by zero callcenter code | `TD-THINKING-ENGINE-UNWIRED-1`; `IDEAS.md` 2026-05-13 wire-thinking-engine |
77+
| **B — `ractor` supervisor** (designed, not yet built) | Runtime topology: sync actor supervision, per-consumer crash isolation, compile-time manifest-driven boot, typed message contracts (the I-2 invariant: tokio outbound only / sync ractor inbound) | Designed in `.claude/plans/compile-time-consumer-binding-v1.md` D-RACTOR-SUPERVISOR-5 (~400 LOC `supervisor.rs` sketched); maps 1:1 onto `cognitive-shader-driver/src/grpc.rs` 8 methods | `TD-RACTOR-SUPERVISOR-5` (TECH_DEBT.md:1779); `anatomy-realtime-v1.md` W11; `compile-time-consumer-binding-v1.md` §2.2 |
78+
79+
**Why they're complementary, not competitive:**
80+
81+
- **Path A (thinking-engine) gives the *contents*** of each authorize/dispatch/ingest decision (role projection vectors, persona identity, awareness DTO that rides alongside merkle audit roots).
82+
- **Path B (ractor) gives the *topology*** that runs Path A's primitives under crash-isolated supervision (one actor per consumer/super-domain, restart strategy, compile-time-typed messaging).
83+
84+
Together they form the runtime: **`CallcenterSupervisor` (ractor) owns N consumer actors → each actor calls `UnifiedBridge::authorize_*` → which projects through `thinking-engine::role_tables + persona + awareness_dto` → emits a chained `UnifiedAuditEvent` carrying both `merkle_root` AND `awareness_root`**. The supervisor handles backpressure, restarts, and the I-2 BBB seam (no tokio inside actor handlers). The thinking-engine provides the cognitive contents the supervisor's typed messages carry.
85+
86+
**Compile-time manifest convergence (Pattern E + Pattern F):** the `/modules/<name>/manifest.yaml` PostNuke-style declaration carries `(G, version, entity_types, rbac_policy, action_capabilities, stack_profile, actor_type, thinking_styles)`. The `actor_type` field gates Path B (which ractor handler arm boots for this consumer). The `thinking_styles` field gates Path A (which projection vectors from `thinking-engine::role_tables` this actor's authorize-flow uses). **One manifest entry per consumer compile-time-resolves both substrate paths.** Adding a new consumer = drop a manifest + add a Cargo dep + write ~30 LOC of `impl Consumer for FooActor` glue. Zero edits to `lance-graph-contract` after the build-script lands.
87+
88+
**Implication for the plan:** the cognition-bridge PR proposed in `IDEAS.md` 2026-05-13 should NOT ship in isolation; it should ship **alongside** the ractor supervisor (D-RACTOR-SUPERVISOR-5) and the manifest build-script (D-MANIFEST-MODULES-4) as **a single Pattern E+F+thinking-engine integration cascade** — three deliverables, three PRs, sequenced (manifest → supervisor → cognition-bridge composes against both).
89+
90+
**Concrete cascade ordering:**
91+
92+
1. **D-MANIFEST-MODULES-4** (PostNuke-style `/modules/<name>/manifest.yaml` + build-script generating the compile-time `MODULES: [ConsumerEntry; N]` static). Zero edits to `lance-graph-contract` afterwards.
93+
2. **D-RACTOR-SUPERVISOR-5** (`CallcenterSupervisor` ractor consuming the compile-time module table; 8-arm typed message handler mapped from `cognitive-shader-driver/src/grpc.rs`). Each consumer = one actor spawned on boot with I-2 crash isolation.
94+
3. **Cognition-bridge** (new module wrapping `thinking-engine::role_tables + persona + awareness_dto` behind a callcenter-side trait). Composes against the supervisor's per-consumer actor address; each `authorize_*` call routes through the actor and emits an audit event carrying both `merkle_root` and `awareness_root`.
95+
96+
This cascade collapses **D-SDR-13 + D-SDR-15 + D-SDR-17 + D-RACTOR-SUPERVISOR-5 + D-MANIFEST-MODULES-4** (5 separate deliverables, originally ~830 LOC scaffolded clean-room) into a **3-PR cascade ~900 LOC composed against thinking-engine**. The LOC delta is small; the **architectural** payoff is huge — `lance-graph-callcenter` finally becomes what its name has promised since day one (telephony switching, supervised processes, per-line crash isolation), and the cognitive substrate finally has a runtime home.
97+
98+
**The ball that mustn't drop, restated:** the May 1 → May 13 transcript arc accumulated this two-paths-converging finding without ever capturing it as a single epiphany. Future sessions without this entry would re-derive Path A xor Path B in isolation (~30-turn rediscovery tax) and miss the manifest-driven convergence that makes both paths cheap together.
99+
100+
Cross-ref: `EPIPHANIES.md` 2026-05-13 thinking-engine finding (Path A); `TECH_DEBT.md` `TD-RACTOR-SUPERVISOR-5` + `TD-MANIFEST-MODULES-4` + `TD-THINKING-ENGINE-UNWIRED-1`; `.claude/plans/compile-time-consumer-binding-v1.md` (Pattern E + Pattern F design); `.claude/plans/anatomy-realtime-v1.md` (W11 ractor supervisor demo gate); `ARCHITECTURE_ENTROPY_LEDGER.md:517` (Pattern F design-phase row).
101+
68102
## 2026-05-13 — FINDING: `thinking-engine` is a 582 KB dormant substrate that closes most of §16-§19 when wired
69103

70104
**Status:** FINDING

.claude/board/IDEAS.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,39 @@ Agents filter by `@`-mention or domain to see what's theirs.
8787

8888
(Prepend new ideas here with today's date. Format:)
8989

90+
## 2026-05-13 — Pattern E+F+cognition cascade: ship manifest + ractor supervisor + thinking-engine bridge together (3-PR sequence)
91+
92+
**Status:** Open
93+
**Priority:** P0 (architectural — every later D-SDR ships against the wrong substrate until this lands)
94+
**Scope:** @callcenter-membrane @truth-architect crate:lance-graph-callcenter crate:thinking-engine D-MANIFEST-MODULES-4 D-RACTOR-SUPERVISOR-5 D-SDR-13 D-SDR-15 D-SDR-17 D-SDR-19 domain:cognition domain:topology domain:auth
95+
96+
Captures the 2026-05-13 two-paths-converging finding (`EPIPHANIES.md`). The wire-thinking-engine idea below carried Path A only; Path B (ractor supervisor) is the other half. Ship them as a single cascade, in order:
97+
98+
**PR 1 — D-MANIFEST-MODULES-4** (PostNuke `/modules/<name>/manifest.yaml` + build-script). Generates compile-time `MODULES: [ConsumerEntry; N]` static carrying `(G, version, entity_types, rbac_policy, action_capabilities, stack_profile, actor_type, thinking_styles)` per consumer. Zero edits to `lance-graph-contract` after this. ~250 LOC + build-script + 3 manifest entries (medcare, smb, woa) + 4 tests.
99+
100+
**PR 2 — D-RACTOR-SUPERVISOR-5** (`crates/lance-graph-callcenter/src/supervisor.rs`, ~400 LOC). `CallcenterSupervisor` ractor consuming the compile-time `MODULES` table, spawning each active consumer on boot, routing typed messages to the right addr — all in ractor sync mode (I-2: tokio outbound only / sync ractor inbound). 8-arm handler mapped 1:1 from `cognitive-shader-driver/src/grpc.rs` (dispatch / ingest / qualia / styles / health / tensors / calibrate / probe). Per-consumer crash isolation + restart strategy. ~5 integration tests covering boot, dispatch, crash-restart, and the I-2 BBB seam.
101+
102+
**PR 3 — `cognition_bridge`** (`crates/lance-graph-callcenter/src/cognition_bridge.rs`, ~300 LOC). Composes Path A (thinking-engine substrate) against Path B (the per-consumer actor address from PR 2). Exposes `RoleProjection::for_role`, `ActorPersona::from_jwt`, `AwarenessFrame::project` on the actor's handler boundary. `UnifiedBridge::authorize_*` extension `with_cognition(...)` builder makes the cognitive surface optional; audit events carry `awareness_root: u64` in addition to `merkle_root`. ~5 integration tests covering each authorize op × Allow/Deny/Escalate.
103+
104+
**Net deliverable collapse:** D-MANIFEST-MODULES-4 + D-RACTOR-SUPERVISOR-5 + D-SDR-13 + D-SDR-15 + D-SDR-17 (originally 5× scaffolded clean-room ≈ ~830 LOC + 23 tests) → 3-PR cascade ≈ ~950 LOC + 14 tests **composed against thinking-engine** instead of duplicating it. Architectural payoff: `lance-graph-callcenter` becomes the telephony-switching supervisor its name has promised since day one, cognitive substrate has a runtime home, and adding a new consumer = drop a manifest + add a Cargo dep + ~30 LOC glue.
105+
106+
**Sub-questions to resolve in PR 1's review:**
107+
108+
- Does the manifest build-script live in `lance-graph-callcenter/build.rs` or a new `lance-graph-modules` crate? (Probably the latter to keep callcenter's compile graph clean.)
109+
- Does the `thinking_styles: Vec<ThinkingStyleId>` manifest field reference contract-canonical (36) styles or the planner's 12-ord projection? (Probably contract-canonical; `ord_to_thinking_style` driver.rs:677 handles the down-projection.)
110+
- For BBB enforcement: does the `actor_type` enum gate which ractor handler shape the consumer gets (compile-time-typed dispatch), or does the supervisor dispatch dynamically with a trait object? (Sketch suggests compile-time-typed; let's confirm.)
111+
- For Pattern F sync-mode invariant: how do we test the I-2 seam? Probably a compile-fail test asserting `tokio::spawn` cannot be called inside a handler body. `crates/lance-graph-callcenter/tests/zone_serialize_check.rs` is the prior-art template for compile-fail invariant tests.
112+
113+
**Open follow-ups (out of cascade scope, queued for after merge):**
114+
115+
- D-SDR-25 (DriftDetectionBridge) composes against `thinking-engine::ground_truth` + `cronbach` once PR 3 lands.
116+
- D-SDR-26 (determinism rules) composes against `thinking-engine::reencode_safety` (x256-proven byte-determinism).
117+
- D-PARITY-V2-3..12 (DTO ladder rest) composes against `thinking-engine::tensor_bridge` + `meaning_axes` + `superposition`.
118+
119+
Cross-ref: `EPIPHANIES.md` 2026-05-13 two-paths-converging finding; `TECH_DEBT.md` TD-RACTOR-SUPERVISOR-5 + TD-MANIFEST-MODULES-4 + TD-THINKING-ENGINE-UNWIRED-1; `.claude/plans/compile-time-consumer-binding-v1.md` Pattern E+F design; `.claude/plans/anatomy-realtime-v1.md` W11 gate; `.claude/handovers/2026-05-13-0855-brainstorm-arc-synthesis.md` §6 priority-ordered next steps (this cascade promotes to Phase 0.5 — before D-SDR-13/15/17).
120+
121+
---
122+
90123
## 2026-05-13 — Wire `thinking-engine` into UnifiedBridge — collapse D-SDR-13/15/17 into one bridge module
91124

92125
**Status:** Open

0 commit comments

Comments
 (0)