Skip to content

D-SDR-3/4/5 + sprint-log-4 governance + sprint 5-9 roadmap#364

Merged
AdaWorldAPI merged 25 commits into
mainfrom
claude/lance-datafusion-integration-gv0BF
May 13, 2026
Merged

D-SDR-3/4/5 + sprint-log-4 governance + sprint 5-9 roadmap#364
AdaWorldAPI merged 25 commits into
mainfrom
claude/lance-datafusion-integration-gv0BF

Conversation

@AdaWorldAPI
Copy link
Copy Markdown
Owner

Summary

Follow-up to PR #363 (D-SDR-1 + D-SDR-2 merged at 421e71e). Ships the remaining Tier-A D-SDR substrate (D-SDR-3/4/5) + sprint-log-4 governance corpus + sprint-5-through-9 roadmap.

Predecessor: PR #363 explicitly named D-SDR-3/4/5 as "NOT in this PR". This PR closes that loop.

Product code (4 commits, ~760 LOC)

Commit Scope LOC
2c3e87d D-SDR-3OgitFamilyTable + FamilyEntry per-family codebook (inline label + schema + verbs per super-domain-rbac-tenancy-v1.md §3.3) ~300
1d0157f D-SDR-4 — merkle-chained UnifiedAuditEvent log for UnifiedBridge (AuditMerkleRoot is u64 FNV-1a per implementation) ~460
dabd510 Cargo.lock after D-SDR-4
dc9e081 D-SDR-5 — wire authorize_* through Policy::evaluate chain with audit emission on every decision ~300

Together these complete the Tier-A starter substrate. The next sprint's surgical fixes (slot u8→u16 widen, bridge-error audit emission, Lance/JSONL audit sinks, family hydration) compose on top.

Sprint-log-4 governance corpus (~280 KB)

12-worker CCA2A sprint converting the 11 TD rows from .claude/board/TECH_DEBT.md (2026-05-13 batch) into PR-ready implementation specs:

  • 12 worker specs at .claude/specs/ covering Q2 stubs dedup, D-SDR API drift deprecation, super-domain subcrate cascade, SIMD callcenter retrofit, thinking-engine UnifiedBridge wire, D-SDR PR release plan, audit Lance/JSONL sink, family hydration TTL, slot widen + bridge-err audit, FMA heart-click smoke test
  • 2 meta reviews (M1 per-worker brutal review, M2 cross-spec synthesis) at .claude/board/sprint-log-4/meta-*-review.md
  • Sprint summary + per-worker scratchpads at .claude/board/sprint-log-4/

Sprint-4 brutally honest retrospective (see EPIPHANIES.md 2026-05-13 duplication-audit entry): several worker specs partially duplicated existing .claude/plans/ content. Sprint-5+ worker prompts get a mandatory 12-step .claude/plans/ read-order as hard precondition.

Sprint 5–9 roadmap

New plan at .claude/plans/sprint-5-through-9-roadmap-v1.md — 70 agents (60 workers + 10 meta) across 5 sprints, every agent owns one file:

Sprint Workers Calendar Est. PR LOC Critical path?
5 — Substrate close-out 12 + 2 meta 1 week ~1350 Yes
6 — Tier-2 composable wiring 12 + 2 meta 2 weeks ~3300 Yes
7 — FMA convergence + Tier-4 perf 12 + 2 meta 1 week ~2450 Yes
8 — TTL + compliance certification 12 + 2 meta 2 weeks ~3600 Customer-dep
9 — Q2 cockpit + holographic cinematic 12 + 2 meta 1-2 weeks ~1700 Parallel sales asset

Critical-path total (5+6+7): 4 weeks, ~7100 LOC, 36 workers + 6 meta. Sprints 8 + 9 independently scheduleable.

Key epiphanies harvested today (.claude/board/EPIPHANIES.md)

  • UNIFICATION: Gaussian-splat + EWA-Sandwich is ONE kernel Σ' = J·Σ·Jᵀ applied to THREE Jacobians (camera projection in ndarray::hpc::renderer, edge step in Pillar 6 crates/jc/src/ewa_sandwich.rs, radial decay in crates/jc/examples/splat_perturbationslernen.rs)
  • FINDING: ndarray::hpc::renderer is the canonical 60fps SIMD double-buffer renderer for q2 cockpit / Palantir / Neo4j-style visualization — the FMA heart-click 3D anatomy view already has its render substrate
  • CORRECTION-OF sprint-4 framing: worker specs must DELTA against .claude/plans/ corpus, not redraft from scratch
  • 14 additional same-day FINDING/CORRECTION/CONJECTURE entries on OGIT axes, super-domain subcrates, API drift, FMA convergence, etc.

Verification

  • D-SDR-3/4/5 commits: pre-merged into the branch; cargo check -p lance-graph-callcenter clean
  • 124 files changed, +30,744 / -16 lines (vast majority in .claude/ governance + spec corpus)
  • Branch state: 21 commits ahead of main, clean working tree

What's NOT in this PR

Same deferral list as PR #363's "What's NOT in this PR" — TTL namespaces, full compliance certification, federation Phase 2, drift bridge LanceProbe M5/M6 — but now with explicit sprint-5/6/7/8 ownership in the roadmap. Sprint-5 surgical fixes (slot widen, bridge-err audit, audit sinks, family hydration, compat shim) ship as a separate PR series per the roadmap.

Companion PRs (not auto-opened — needs human decision per roadmap OQs)

  • AdaWorldAPI/MedCare-rs#? — medcare-rs UnifiedBridge wiring (commits exist locally on claude/lance-datafusion-integration-gv0BF of that repo per W7 spec)
  • AdaWorldAPI/smb-office-rs#? — smb-office-rs UnifiedBridge wiring (same pattern)

Test plan

  • cargo build -p lance-graph-callcenter — should succeed against the merged D-SDR-3/4/5 surface
  • cargo test -p lance-graph-callcenter unified_audit — D-SDR-4 merkle chain tests
  • cargo test -p lance-graph-callcenter unified_bridge — D-SDR-5 authorize_* + audit emission tests
  • cargo test -p lance-graph-callcenter super_domain — D-SDR-3 codebook table tests
  • cargo clippy -p lance-graph-callcenter --tests --no-deps -- -D warnings clean on new code
  • No regression in lance-graph-rbac::Policy integration (D-SDR-5 wires through it)

Generated by Claude Code

claude added 21 commits May 13, 2026 07:56
…separate from active spec)

Captures 6 verification-tasks-with-paper-URLs from external synthesis pass.
Kept in .claude/knowledge/ as an inbox doc — not folded into the active
super-domain-rbac-tenancy-v1 plan or any other shipping spec, so existing
context isn't diluted.

Each entry has explicit verification steps + a yes/no "synergy confirmed"
signal before any code commitment. Pattern follows the existing
.claude/knowledge/ convention: paper URL + anchor + verification + synergy
+ defer-if criteria.

Two suggested Linear epics:
- "Splat substrate consolidation" (E1+E2+E3+E4): hardware/storage reuse
  story (AwarenessPlane16K dual-reading, multi-channel split, temporal
  HHTL bands, gsplat SIMD ports).
- "Formal grounding citations" (E5+E6): docs-only outputs for the
  regulated-industry pitch (computational irreducibility paper as MUL
  formal grounding, Mahler approximate ideals as cross-OGIT-path merge
  algebra).

Foliation papers (5) + Algorithmic Idealism II are explicitly deferred
pending a math-deep reader.

E1 is the cheapest first move (pure grep). E5 produces the strongest
commercial-pitch artifact. E2 is highest leverage if channels-as-separate-
planes lands.
…FamilyTable + FamilyEntry)

Per spec §3.3 — each OGIT basin carries a 256-slot dense
`OgitFamilyTable` indexed by `OwlIdentity::slot()`. Each occupied slot
holds `FamilyEntry` (label URI + SchemaKind + OwlCharacteristics +
DolceMarker + axiom_blob + provenance + outgoing verbs) INLINE.
Replaces the spec's earlier sidecar-table sketch (rejected as
Neo4j-shaped per §16.5 + §17.4 brutal-honest correction).

src/family_table.rs (NEW, ~330 LOC + 9 tests):

- `OwlCharacteristics` (1-byte bitfield per
  `GLUE_LAYER_OGIT_TO_OWL_SPEC.md` §3): FUNCTIONAL, INVERSE_FUNCTIONAL,
  TRANSITIVE, SYMMETRIC, ASYMMETRIC, REFLEXIVE, IRREFLEXIVE + reserved.
  Const helpers (`is_functional`, `is_transitive`, ...).

- `FamilyEntry` — one slot's worth of OGIT data:
    label_uri:           &'static str    (canonical OGIT URI)
    kind:                SchemaKind      (Entity / Edge / Attribute,
                                          reuses lance-graph-ontology)
    owl_characteristics: OwlCharacteristics (1B bitfield)
    dolce_marker:        DolceMarker     (1B enum, reuses super_domain)
    axiom_blob:          &'static [u8]   (optional OWL axioms)
    provenance:          &'static str    (dcterms:source — carries the
                                          off-label lineage per §5 OSLC
                                          absorption decision)
    verbs:               &'static [u8]   (outgoing verb slots within
                                          this family)

  `FamilyEntry::plain_entity(label_uri)` const helper for the simplest
  hydration paths.

- `PerFamilyCodebook` — placeholder for D-SDR-3c (per-basin CAM-PQ
  centroids + Base17 head + scent). Concrete fields land alongside
  `lance-graph-contract::cam` codec wiring.

- `OgitFamilyTable { family, entries: [Option<FamilyEntry>; 256],
  codebook: PerFamilyCodebook }`:
    * `empty(family)` — constructor for hydration
    * `lookup(owl) -> Option<&FamilyEntry>` — hot-path O(1) array
      index. `debug_assert` checks the OwlIdentity belongs to this
      family (callers MUST route via FAMILY_TO_SUPER_DOMAIN first)
    * `label(owl)` / `kind(owl)` / `is_functional(owl)` /
      `is_transitive(owl)` — typed convenience helpers
    * `set(slot, entry)` / `clear(slot)` — hydration mutators
    * `len()` / `is_empty()` — table-state queries

- 9 unit tests: empty table, lookup hit, lookup miss, helper
  consistency, bitfield round-trip, is_functional via slot, clear,
  len counting, debug_assert on wrong-family lookup.

src/lib.rs:
- Re-exports `family_table` types: `OgitFamilyTable`, `FamilyEntry`,
  `OwlCharacteristics`, `PerFamilyCodebook`, `SchemaKind`.

D-SDR-3 scope: type system + lookup method. Bake-time population from
TTL hydration is D-SDR-3b (lance-graph-ontology side, hooks into
`OntologyRegistry::hydrate_once_sync` after parsing). `PerFamilyCodebook`
fields are D-SDR-3c.

Tier A progress:
- D-SDR-1 (UnifiedBridge<B> + TenantId + AuthError) — shipped f627ef1
- D-SDR-2 (SuperDomain layer + OgitFamily + OwlIdentity)  — shipped 17987ce
- D-SDR-3 (OgitFamilyTable + FamilyEntry inline)         — THIS COMMIT
- D-SDR-4 (Merkle audit chain wiring)                     — next
- D-SDR-5 (4-stage authorize against PolicyRewriter)      — wires it all

Verification: `cargo clippy -p lance-graph-callcenter --tests --no-deps`
clean on new code; 9/9 family_table tests pass; 6/6 unified_bridge tests
still pass; 7/7 super_domain tests still pass.
…ifiedBridge

Per spec §13.3 — each UnifiedBridge::authorize() decision that materially
gates access (Deny / Escalate / audit-required Allow) emits one
UnifiedAuditEvent. Events form a chain: event N's merkle root binds in
event N-1's merkle root + a per-super-domain merkle_salt. Tampering with
any past event is detectable by chain re-verification.

src/unified_audit.rs (NEW, ~340 LOC + 10 tests):

- AuthOp (Read / Write / Act) + AuthDecision (Allow / Deny / Escalate /
  BridgeError) — lifetime-free enums for durable storage (the
  `lance_graph_rbac::policy::Operation<'_>` borrow doesn't reach the
  sink).

- AuditMerkleRoot(u64) with GENESIS const + chain(prev_root, salt,
  entry_bytes) operator. FNV-1a 64-bit step internally — deterministic
  across platforms / Rust versions (per §15.2 cross-language
  determinism rules); safe to persist + cross-binary verify.

- UnifiedAuditEvent — one chain entry:
    ts_unix_ms:       u64 (ms-quantized for cross-language determinism)
    tenant:           TenantId
    super_domain:     SuperDomain
    owl:              OwlIdentity
    op:               AuthOp
    decision:         AuthDecision
    actor_role_hash:  u64 (FNV-1a of &'static str — keeps event Copy +
                       fixed-size for durable storage)
    merkle_root:      AuditMerkleRoot (stamped by AuditChain::advance)
  + canonical_bytes() -> [u8; 25]: fixed field order, little-endian,
    no padding. Excludes merkle_root (it's the OUTPUT, not an input).

- AuditChain (stateful chain advancer):
    new(super_domain, salt) — seeds at GENESIS
    resume(super_domain, salt, last_root) — restart after persist
    advance(event) -> event — stamps merkle_root, updates last_root

- UnifiedAuditSink trait + NoopUnifiedAuditSink reference impl.
  Production sinks (JsonLinesUnifiedAuditSink, LanceUnifiedAuditSink)
  defer to D-SDR-4b.

- verify_chain(start_root, salt, &[events]) -> Result<final_root,
  broken_index> — tamper detection helper. Re-derives each event's
  merkle root from canonical_bytes + chain operator; returns the
  first index where stored_root != recomputed_root (or final_root on
  full match).

10 unit tests:
  - merkle_root_chain_is_deterministic
  - merkle_root_chain_depends_on_salt (cross-domain unlinkability proof)
  - merkle_root_chain_depends_on_prior (chain integrity)
  - audit_chain_advance_stamps_event_and_updates_state
  - audit_chain_two_events_chain_through
  - verify_chain_accepts_genuine_chain
  - verify_chain_detects_tampered_event_in_middle
    (flip decision Allow→Deny at index 2; verify fails at index 2)
  - verify_chain_detects_wrong_salt (verification with wrong salt
    fails at index 0; proves the salt IS part of the chain integrity
    bind)
  - noop_sink_swallows_events
  - canonical_bytes_round_trips_field_order (offset-by-offset)

Separate from `crate::audit` (feature-gated audit-log): that records
RLS-rewritten plan executions, different event type / schema / sink
contract. The two coexist — a typical request emits one
UnifiedAuditEvent (auth decision) and zero or one audit::AuditEntry
(rewritten plan if execution proceeded).

D-SDR-4 scope: types + chain mechanics + Noop sink + tamper-detection
helper. Production sinks (JSONL + Lance) = D-SDR-4b. Wiring into
authorize() = D-SDR-5.

src/lib.rs: re-exports verify_chain, AuditChain, AuditMerkleRoot,
AuthDecision, AuthOp, NoopUnifiedAuditSink, UnifiedAuditEvent,
UnifiedAuditSink.

Tier A progress:
- D-SDR-1 (UnifiedBridge core)         — shipped f627ef1
- D-SDR-2 (SuperDomain + OgitFamily)   — shipped 17987ce
- D-SDR-3 (OgitFamilyTable inline)     — shipped 2c3e87d
- D-SDR-4 (Merkle audit chain)         — THIS COMMIT
- D-SDR-5 (4-stage authorize wiring)   — next

Verification: cargo clippy -p lance-graph-callcenter --tests --no-deps
clean on new code; 10/10 unified_audit tests pass; all prior tests
(9 family_table + 6 unified_bridge + 7 super_domain) still pass.
… with chained audit emission

Wires D-SDR-1..4 into the actual UnifiedBridge authorization flow:

- UnifiedBridge<B> grows `actor_role_hash` (FNV-1a digest, cached),
  `audit_sink: Arc<dyn UnifiedAuditSink>` (defaults to noop), and
  `audit_chain: Mutex<AuditChain>` (defaults to GENESIS @ Unknown/0).
- Builders `with_audit_chain(super_domain, salt, sink)` and
  `with_audit_chain_resume(super_domain, salt, last_root, sink)` swap
  the sink + reseed/resume the chain. `audit_root()` exposes the
  current root for shutdown persistence.
- authorize_read / authorize_write / authorize_act each:
    1. resolve `bridge.row(public_name)?` (BridgeError short-circuits)
    2. extract canonical entity type via `canonical_entity_type`
    3. evaluate Policy against the canonical name
    4. emit one chained UnifiedAuditEvent through the sink
    5. map AccessDecision -> Result<EntityRef, AuthError>
- BridgeError short-circuits before audit emission — invalid lookups
  aren't auth decisions (D-SDR-5 minimum; revisit if probe-detection
  becomes a requirement).
- Free helpers: `decision_of`, `map_decision`, `owl_from_schema_ptr`
  (truncates 16-bit entity_type_id to 8-bit slot per §16 reality
  check), `now_unix_ms`.

Tests (5 new in `unified_bridge::tests`):
- authorize_read_emits_allow_audit_event
- authorize_read_emits_deny_audit_event
- bridge_error_short_circuits_before_audit
- audit_chain_advances_across_calls (root diverges per emission;
  events carry post-advance root)
- with_audit_chain_resume_picks_up_from_prior_root

Drive-by clippy: family_table.rs map_or(false, ..) -> is_some_and(..).

96/96 tests green; clippy -D warnings clean on lib + tests
(pre-existing zone_serialize_check assert!(true) unaffected).

Refs: super-domain-rbac-tenancy-v1 §3.9 + §13.1.

https://claude.ai/code/session_01PjcbSTd9zdVPkta9qwkVKo
… transcripts

Three governance artifacts + the May 1→13 main-window transcript archive:

1. Handovers (`.claude/handovers/`):
   - 2026-05-13-0852 formal status: Tier A complete (D-SDR-1..5),
     consumer wirings local, Tier B+ roadmap with 39 D-SDR deliverable ledger.
   - 2026-05-13-0855 brainstorm arc synthesis: collaborative architecting
     trajectory (Pillar 5+/5++/6 math cert → splat-osint → DTO ladder →
     OGIT spine → Super-Domain RBAC), 12 compressed insights, 12 verdicts,
     priority-ordered next steps Phase 0-6.

2. Board harvest (APPEND-ONLY governance respected):
   - INTEGRATION_PLANS.md: super-domain-rbac-tenancy v1 status correction
     with follow-up PR + Tier B+ roadmap.
   - EPIPHANIES.md: 6 new dated entries — `thinking-engine` is a 582 KB
     dormant substrate that closes §16-§19 when wired (the ball that
     mustn't drop); PolicyRewriter composition confirmed; Arrow Flight
     SQL is Phase 5+ not immediate; 3DES is broken-single-DES → Argon2
     backfill; Codex canonical-name fix; LanceProbe IS drift bridge;
     6-byte OGIT identity.
   - IDEAS.md: wire thinking-engine into UnifiedBridge — collapse
     D-SDR-13/15/17 into one ~300 LOC bridge module; ~45% LOC saved
     across downstream Tier B-H.
   - TECH_DEBT.md: 7 new TD rows — TD-THINKING-ENGINE-UNWIRED-1 (P1
     architectural), follow-up PR (P0), consumer-side push (P0), audit
     persistence (P1), family hydration (P1), slot truncation (P2),
     bridge-error audit (P3).

3. Transcripts (`.claude/transcript/`): 79 scrubbed jsonl files
   (main-window only, sidechain filtered) covering May 1 (EWA-Sandwich
   / Pillar 6 certification) → May 13 (D-SDR-5 commit), plus a 4.5 MB
   zip archive. PAT/secret patterns aggressively redacted (ghp_,
   github_pat_, gho_/ghu_/ghs_/ghr_, Bearer tokens, sk-ant-, sk-proj-,
   AKIA, xox*-, env-var GITHUB_TOKEN / API_KEY / SECRET / PASSWORD,
   embedded URL credentials).

No code changes; documentation + governance + session-archive only.

https://claude.ai/code/session_01PjcbSTd9zdVPkta9qwkVKo
…hinking-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
…+ API-drift + OGIT-axis orthogonality

5 new prepended entries across the three governance files capturing
findings from rapid 2026-05-13 brainstorming:

EPIPHANIES.md (4 new entries, all 2026-05-13):
- THREE-paths-converging (extends the two-paths entry) — Path C =
  `ndarray::simd` canonical SIMD compute substrate per spec §19.2;
  per-row hot path correctly scalar, batch paths should route through
  ndarray::simd (`LazyLock<Tier>` dispatch, gather_u8, xor_fold, etc).
- super-domain-as-subcrate finding — each SuperDomain variant IS its
  own specialised subcrate; Tier C "consumer crate scaffolding" is
  specifically "super-domain subcrate scaffolding"; medcare migration
  is the proof case (3 crates → 1 healthcare re-export).
- API drift mid-flight — medcare-rs failing during migration because
  D-SDR-1..5 grew the UnifiedBridge API in 5 steps over 7 days;
  5-step operational mitigation (SHA pinning + must_use lint +
  deprecation + migration module + CHANGELOG).
- OGIT-axis orthogonality clarification — the §1-§2 "4-level
  hierarchy" framing is partially misleading; SuperDomain × OGIT-basin
  × OWL-leaf × DOLCE-leaf are orthogonal axes, not strictly nested.
  Implications for per-row identity (6 bytes carry OWL only) vs
  column-side metadata (DOLCE / Foundry / Wikidata) and for
  masked-predicate composition (identity-axis predicate separate from
  upper-ontology-axis predicate).
- §16-§19 correction — most was already delivered in PRs #355-#363+
  (sprint-2 + sprint-3 + super-domain spec authoring). Outstanding
  work is composition + implementation of designs that exist; this is
  a morale + scope correction.

IDEAS.md (1 new entry):
- super-domain subcrate scaffolding cascade — 5-PR sequence (MedCare
  finalization → smb-bridge retrofit → woa-rs extraction → hiro-rs
  new → hubspot-rs new) that ships per-super-domain subcrates with
  manifest entries. Depends on Pattern E+F+cognition cascade.

TECH_DEBT.md (3 new TD rows):
- TD-API-DRIFT-MIDFLIGHT-1 (P0): consumer migrations blocked TODAY by
  API drift; needs operational discipline mitigation.
- TD-SUPER-DOMAIN-SUBCRATES-1 (P1): 5 super-domain subcrate slots,
  medcare in-flight, smb in-flight, 3 not started.
- TD-SIMD-CALLCENTER-BATCH-PATHS-1 (P2): batch hot-spots still
  scalar-loop where ndarray::simd is canonical (§19.2).

https://claude.ai/code/session_01PjcbSTd9zdVPkta9qwkVKo
…est anchor

Two more 2026-05-13 epiphanies + one TD row capturing the user's
"wire OGIT ↔ OSINT ↔ Palantir Gotham / Neo4j route" + "remember
FMA 75K human anatomy as on-screen rendering smoke test" directives.

EPIPHANIES.md (2 new entries, prepended):

1. FMA smoke-test anchor (75K-entity OWL ontology) — the canonical
   dual-purpose demo for the integration arc:
   - Neo4j-ish edges propagation test (EWA-Sandwich Σ-push-forward
     replaces 5-hop Cypher; Pillar 6 PR #289 certified)
   - Healthcare super-domain test (UnifiedBridge<MedcareBridge> with
     SuperDomain::Healthcare audit chain at FMA-scale)
   - Visual rendering test (q2 cockpit + notebook-render produces
     3D anatomy with heart-click → edges propagation visible)
   - Touches all three substrate paths (thinking-engine cognition,
     ractor supervisor, ndarray::simd batch compute)
   - 6-phase sequencing converging on demoable end-to-end FMA-heart
     query (phase 4 = Q2-2.x Cypher console + Q2 3D view ready)

2. OGIT ↔ OSINT ↔ Palantir/Neo4j ↔ q2 route — q2 is the 8th consumer
   subcrate slot alongside the 5 super-domain subcrates (medcare-rs,
   smb-office-rs, woa-rs, hiro-rs, hubspot-rs) + 2 OSINT-related
   crates (aiwar-ingest in q2 workspace, external aiwar/neo4j-rs
   /aiwar-neo4j-harvest research repos). Verified q2 is accessible
   via MCP (mcp__github__get_file_contents on AdaWorldAPI/q2).
   End-to-end route mapped from external user opening q2 notebook
   through PolicyRewriter chain → DataFusion ScanExec → arrow render.
   Gaps identified: q2's local lance-graph + ndarray stubs need
   re-exports; notebook-query polyglot dispatcher needs wiring;
   Q2Bridge (D-ONTO-V5-5) needs TTL+bridge work.

TECH_DEBT.md (1 new TD row, prepended):

TD-Q2-STUBS-DEDUP-1 (P1) — q2's crates/stubs/lance-graph and
crates/stubs/q2-ndarray are placeholders that must be replaced
with re-exports from AdaWorldAPI/lance-graph + AdaWorldAPI/ndarray
before FMA smoke-test can compile against the canonical pipeline.
~60 LOC PR + 2 integration tests proving type-universe coherence
(q2_lance_graph_canonical_test, q2_ndarray_simd_dispatch_test).

https://claude.ai/code/session_01PjcbSTd9zdVPkta9qwkVKo
…rants

Sprint-4 CCA2A pass: 12 sonnet workers + meta agents scoped per-file,
each appending to its own scratchpad via tee -a, addressing the 11 TD
entries from 2026-05-13 + FMA-heart-click smoke-test convergence anchor.

Landed specs (10):
- sprint-4-execution-plan.md (W1, 24 KB)
- td-q2-stubs-dedup.md (W2, 16.6 KB) — caught SpoQuad doesn't exist
- td-api-drift-deprecation.md (W3, 21 KB) — silent Policy::evaluate drift
- td-super-domain-subcrates.md (W4, 20.7 KB)
- td-simd-callcenter-batch.md (W5, 15.9 KB) — real names: vsa_bind/hamming_batch_raw
- td-thinking-engine-wire.md (W6, 21 KB) — ghosts/qualia/cognitive_stack composition
- td-sdr-pr-release.md (W7, 15.3 KB) — D-SDR SHAs captured
- td-sdr-audit-persist.md (W8, 23.8 KB) — merkle is u64 not [u8;32]
- td-sdr-family-hydration.md (W9)
- sprint-4-pr-graph.md (W12, ~6 KB)

Pending retries (in flight): W10 (slot u16 + bridge-err audit),
W11 (FMA heart-click smoke).

Settings: added explicit Write/Edit/tee permissions for
.claude/board/sprint-log-4/ and .claude/specs/ subtrees (covered by
existing wildcards but explicit grants reduce subagent retry friction).
Closes sprint-log-4. All 12 worker specs + 2 meta reviews + sprint summary
shipped (~280 KB total documentation).

W10 (14.6 KB) — slot u8→u16 widen + bridge-err audit emission
W11 (28 KB) — FMA heart-click smoke test, patched with BioPortal source
  + two-tier ingest (CSV-quick / OWL-full) + drug-knowledge crosswalk

M1 review (16.3 KB) — brutal per-worker assessment; flagged 3 cross-spec
  inconsistencies (SpoQuad reality gap, merkle u64 spread, CognitionHandle
  vs CognitiveStack handshake), permission-bail failure mode for sprint-5
  protocol fix
M2 review (11.1 KB) — convergence story, 4 new canonical patterns
  (P-S4-1..4), 11 TD-row "In-Spec" status flips, MedCare-rs drug-KB pivot
sprint-summary.md (6.1 KB) — handover for sprint-5 implementation pass

Governance updates:
- EPIPHANIES.md: prepend CONJECTURE entry on Gaussian-splat prerender
  + EWA-Sandwich + stream as Tier-3 FMA render path (Amiga-demoscene
  escape hatch for 75K-entity hydration)
- IDEAS.md: matching idea row for sprint-5+ pickup
…s Pillar 6 (Σ push-forward), not a 3D renderer

User pointed to actual source: crates/jc/src/ewa_sandwich.rs +
crates/lance-graph-contract/src/sigma_propagation.rs + .claude/plans/
jc-pillars-runtime-wiring-v1{,-ERRATUM}.md + crates/jc/examples/
osint_edge_traversal.rs + splat_perturbationslernen.rs.

Real architecture: EWA-Sandwich = Σ_n = M_n·...·M_1·Σ_0·M_1ᵀ·...·M_nᵀ
along multi-hop edge paths. Pillar 6 certifies PSD-preservation
(10000/10000 hops in probe) + log-norm concentration at
Köstenberger-Stark rate (CV tightness 1.467×). Combined with Pillar
5 (Jirak scalar), 5+ (KS Σ-tensor), 5++ (DZ Hilbert), 7
(α-saturation), the full aggregation substrate sits on certified
ground.

Plus PR #288 (Σ-codebook viability, R² = 0.9949) rules out
CausalEdge64 8→16 byte expansion — 256-entry codebook with 1-byte
sidecar is sufficient.

EPIPHANIES: prepend CORRECTION-OF entry with the real math kernel +
pillar-stack composition; keep the original splat-conjecture entry
intact (append-only).

IDEAS: split into two distinct rows — (1) CORRECTION acknowledging
EWA-Sandwich is an existing certified pillar not a new idea;
(2) separate-and-orthogonal 3DGS render-buffer idea kept for
sprint-5+ pickup (different crate home, different math role).

sprint-4-execution-plan.md (W1): patched W1's wrong acronym
expansion ("Efficient Weighted Adjacency" → Elliptical Weighted
Average, Heckbert origin, Pillar 6 in JC framework, real code
locations cited).
… render substrate

User pointed to /home/user/ndarray/src/hpc/renderer.rs (995 LOC) — a
SIMD-accelerated double-buffer renderer for SPO graph visualization
explicitly built for q2 cockpit / Palantir / Neo4j-style rendering.
Front/back LazyLock<RwLock<RenderFrame>> with AtomicUsize swap;
F32x16 mul_add force integration; 60fps canonical via cached_splat(DT_60).
SoA: positions, velocities, charges, fingerprints.

Collapses three same-day conjectures: no prerender needed, no new
render crate needed, splat escape hatch deferred (measure live 60fps
with 75K entities first). Three meanings of 'splat' in workspace, none
are 3DGS scene rendering. Architectural lesson — compose, don't rebuild;
grep ndarray before writing.
…l Σ' = J·Σ·Jᵀ applied to THREE Jacobians

User correction 2026-05-13: I wrongly split the three 'splat' meanings as
unrelated primitives that share a name. They are three APPLICATIONS of one
math kernel — the Σ push-forward of a Gaussian through an affine map.
Same Heckbert sandwich form. Three different Jacobians:

  Render          (J = camera projection)    → ndarray::hpc::renderer
  Graph propagation (J = edge step)          → crates/jc/src/ewa_sandwich.rs
                                              + lance-graph-contract::sigma_propagation
  Perturbation field (J = radial decay)      → crates/jc/examples/splat_perturbationslernen.rs

Architectural consequence: the FMA heart-click demo gets all three for
free from the unified kernel — live 60fps EWA-splat render + Pillar 6
multi-hop Σ propagation along anatomy edges + perturbation-search
context retrieval. The prerender escape hatch is wrong on both axes:
substrate is SIMD-accelerated already, AND even if it failed the right
fix is reducing per-node Σ rank, not prerendering.

Sprint-5 reconciliation: add ndarray::hpc::renderer + JC pillar plan as
MANDATORY READS for any spec touching FMA, q2 cockpit, multi-hop edge
propagation, or covariance-based context search. Same lesson as W6
thinking-engine wire-up — compose, don't rebuild.
… — emerges from unified Σ-push-forward kernel

User vision 2026-05-13: transparent holographic human-body projection
(Tony Stark / Star Trek sickbay aesthetic) for q2. Captured as
presentation-tier idea anchored to existing substrate so it doesn't
get re-derived from scratch next session.

Key insight: the look is mostly free from the kernel already in place.
- Soft glow + transparency = Gaussian-splat alpha falloff (no separate shader)
- Volumetric body = additive blending of 75K splats
- Pulsing scan wave on click = Pillar 6 EWA-Sandwich Σ-displacement readout
- Peelable layers = SuperDomain::Healthcare family slice filter
- 60fps + rotation = cached_splat(DT_60) + double-buffer atomic swap

What's new: ~200 LOC q2 frontend shader (additive Gaussian-splat +
bloom + cyan palette), ~300 LOC FMA→RenderFrame canonical-pose seeder,
tiny highlight column added to RenderFrame for bloom intensity. Rest
is wiring of existing components (ndarray renderer + Pillar 6 + W4
MedcareBridge + W6 thinking-engine + W11 FMA spec).

4 sprint-5 candidate PRs ordered. 3 open frontend questions
(layer toggles, audio cues, hover/click semantics).
…tscene-plus-gameplay, not competing

User correction 2026-05-13: prior thrashing wrongly framed prerender vs
live as either/or. Both are right, for different phases. AAA game
pattern: prerendered cinematics for WOW + live engine for interaction.

FMA holographic demo phase split:
  Intro cinematic    — prerender 900-18000 frames (demoscene grade) — WOW
  Hand-off frame     — prerender exit state == live initial state
  Live interaction   — ndarray::hpc::renderer 60fps + Pillar 6 on click
  Transition clips   — short prerendered 1-5s clips for system switches
  Outro / share      — capture live session to splat stream

Build surface: ~500 LOC prerender pipeline (new crate fma-cinematic),
~100 LOC handoff contract, 10-20 hand-curated transition clips as
release artifact (bgz7-style). Storage format open: Arrow batches /
MP4 / .splat / custom temporal-delta codec.

Lesson: when conjecturing an alternative substrate, ask 'different
phase of same UX or competing implementation?' Three correction cycles
in EPIPHANIES today were a false-dichotomy thrash. Same lesson at the
math layer (one kernel, three Jacobians).
…t feature — owner=demo budget, sprint-5 stays focused on substrate

User clarification 2026-05-13: the holographic projection exists to
'get customers hooked' — conversion-funnel eye candy. Reframes priority
across the prior three same-day idea entries.

Key shift:
  - Owner: demo / marketing budget, NOT sprint-5 engineering scope
  - Substrate dependency: zero in either direction — opaque pixels
  - Priority: LOWER than sprint-5 substrate work (W4/W6/W8/W10/W11)
  - Build when funded: parallel track, ~500 LOC + 1 week + render farm
  - Procedural T-pose seeder works fine for the cinematic; no FMA SPO
    data needed

Sprint-5 substrate work stands unchanged. The cinematic decorates the
product; don't let WOW seduce engineering hours away from the audit
chain. Earlier handoff-contract / transition-library / outro-share
remain valid for v1.x customer-facing features when sales asks.
…6-color palette (demoscene sweet spot)

User-sized 2026-05-13: prerendered cinematic frames fit Lance trivially
at any palette point. 16-color (4-bit nibble-packed) is the sweet spot:

  4-color   207 MB / 4.1 GB    too restrictive for anatomy gradients
  16-color  415 MB / 8.3 GB    sweet spot — ~80-150 MB after Lance compression
  256-color 829 MB / 16.5 GB   overkill, kills demoscene constraint

Lance schema: one PaletteRow + N FrameRows (frame_id, timestamp_us,
4-bit-packed indices, keyframe bool). Versioning + random-access seek
+ time-travel built in.

Alternatives ruled out:
  Rust game engine — wrong tool (live engines, re-derive renderer)
  Quarto          — wrong layer (pitch deck around cinematic)
  Unity WebGL     — wrong dep (non-Rust runtime, 20-100 MB bundle)

Why 16-color wins: AVX2 _mm256_unpack decodes 64 px/instruction (60fps
playback in ndarray::simd dispatch); shared palette across all frames
= 10x metadata compression; forced palette discipline IS the aesthetic
(Andromeda/Sanity/Spaceballs demoscene precedent).

Build pipeline: offline tool reads scripted trajectory + procedural
T-pose; renders high-quality offline; Floyd-Steinberg dither to
curated cyan/teal palette; write Lance rows; q2 playback streams +
AVX2-unpacks + blits.

Closes the storage-format open question from the prior REFRAME entry.
…cated existing .claude/plans/ corpus

User surfaced 5 prior plans 2026-05-13 evening:
  anatomy-realtime-v1.md (19 KB) — IS W11's FMA spec, pre-existing
  unified-ogit-architecture-v1.md (30 KB, 15 patterns A-O) — supersedes W1
  ogit-g-context-bundle-v1.md — already exists (sprint-3 cited)
  super-domain-rbac-tenancy-v1.md (86 KB, 1387 lines) — canonical PR #363 spec
  compile-time-consumer-binding-v1.md (23 KB) — Pattern E + F sprint-2 plan
Plus prior find: jc-pillars-runtime-wiring-v1.md, lance-graph-rdf-fma-snomed-v1.md,
  2026-05-06-splat-osint-ingestion-v1.md, tetrahedral-epiphany-splat-integration-v1.md,
  foundry-roadmap-unified-smb-medcare-v1.md

Duplication audit: W1 / W4 / W6 / W11 specs partially restate prior
plans; W3 / W7 / W8 / W9 / W10 / W12 added real value. The workers
did not grep .claude/plans/ before drafting.

Same root-cause pattern surfaced THREE times in one session:
  math layer    — one kernel Σ' = J·Σ·Jᵀ, three Jacobians
  substrate     — ndarray::hpc::renderer already exists at 60fps
  plan layer    — 30+ plans already cover the architectural surface

Fix: sprint-5 worker prompt template MUST include a mandatory
read-order section pointing at .claude/plans/ as hard precondition
to spec writing. 12-step read-order added to the EPIPHANIES entry
covering the most-relevant plans by domain.

Sprint-5 priority stack revised: Tier 1 surgical fixes (W10/W8/W9)
stand but reframed as DELTA against super-domain-rbac-tenancy §13;
Tier 2 W4/W6 specs should be REPLACED with delta-against-prior-plan
patches; Tier 3 W11 spec replaced with citation+patches to
anatomy-realtime-v1 + lance-graph-rdf-fma-snomed-v1.
… sprint, file scope per agent

5 sprints × (12 workers + 2 meta) = 70 agents total. Every W{N} owns
exactly ONE distinct .claude/specs/ file path. Meta agents own
distinct .claude/board/sprint-log-{N}/meta-*-review.md paths.

Sprint 5 (1 wk, substrate close-out): PR-A D-SDR-3/4/5 follow-up + 5
surgical fix PRs (slot widen, bridge-err audit, audit sinks Lance+JSONL,
family hydration, compat shim)

Sprint 6 (2 wk, Tier-2 wiring): 5 super-domain subcrate cascade PRs
(medcare/smb/woa/hiro/hubspot) + thinking-engine wire + manifest modules
+ ractor supervisor — ALL extending prior plans, not redrafting

Sprint 7 (1 wk, FMA convergence): lance-graph-rdf border crate + FMA
two-tier ingest + q2 Cypher wire + heart-click integration test +
Pillar 6 EWA propagation + SIMD callcenter retrofit + SNOMED+RadLex
companions + drug-knowledge crosswalk

Sprint 8 (2 wk, compliance): TTL namespaces + HIPAA/SOX/GDPR cert
surfaces + OSINT LanceProbe + Federation Phase 2 + audit replay CLI +
BAA export + encryption-at-rest gate — addresses D-SDR-6..D-SDR-39
deferred by PR #363

Sprint 9 (1-2 wk, sales asset, parallelizable): holographic q2 UX
(splat shader + highlight column + canonical pose + layer toggle) +
prerender cinematic pipeline (offline tool + player + release artifact)
+ camera storyboard + palette curation + audio cues + recording script

Critical-path total (5+6+7): 4 weeks, ~7100 LOC. Sprints 8/9
independently scheduleable.

Pattern documented end-to-end:
- pre-write SPRINT_LOG.md with roster + mandatory reads
- 12 sonnet workers parallel-spawn in single main-thread call
- meta agents (opus) after workers complete
- main thread aggregates commits + pushes
- governance updates per board-hygiene rule

Worker-prompt template fix from sprint-4 retro baked in: every prompt
includes 12-step .claude/plans/ mandatory-read list as hard precondition.
…ory worker-prompt template

Replaces in-place edits with cleaner end-to-end document. Adds worker-prompt
template at top with mandatory 12-step .claude/plans/ read-order (sprint-4
retrospective fix). Every W{N} owns ONE .claude/specs/ path; every
M{1,2} owns ONE .claude/board/sprint-log-N/meta-*-review.md path.

70 agents total across 5 sprints, ~12.4k LOC, 7-9 calendar weeks.
Critical path (sprints 5+6+7) = 4 weeks ~7100 LOC, 36W+6M.

5 open questions for human reviewer flagged at bottom of plan.
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ec1897677d

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread crates/lance-graph-callcenter/src/unified_bridge.rs Outdated
Comment thread crates/lance-graph-callcenter/src/unified_bridge.rs Outdated
claude added 4 commits May 13, 2026 11:23
…ed in

ndarray master moved blake3 behind the hpc-extras feature gate as part
of the i686/no_std unblock work (AdaWorldAPI/ndarray PR #141). lance-graph
specifies default-features = false on its ndarray dep and previously only
opted into 'std', which left blake3 unresolved at workspace build time
even though src/hpc/{plane,seal,merkle_tree,vsa}.rs use it unconditionally.

Adding 'hpc-extras' to the feature list restores the hash dep. lance-graph
already uses every other HPC module from the fork (Fingerprint, CAM-PQ,
CLAM, BLAS, ZeckF64), so opting into hpc-extras is the intended posture
for this consumer.

Fixes the linux-build, test, and test-with-coverage failures on PR #364.
Per chatgpt-codex-connector review on PR #364: emit_audit was calling
super_domain_for_family(owl.family()) to look up the super-domain via
FAMILY_TO_SUPER_DOMAIN — a private all-Unknown static with no mutation
API in the current repo. Every event was therefore stamped Unknown
even when the caller wired .with_audit_chain(SuperDomain::Healthcare, …),
silently breaking compliance partitioning on the audit stream.

AuditChain already carries the configured super_domain (the same field
fed into the merkle salt), so the chain itself is the single source of
truth. Stamp the event from chain.super_domain instead of the static
lookup, holding the chain lock across the read+advance so the event
and the chain commit agree by construction.

The FAMILY_TO_SUPER_DOMAIN reverse-lookup table stays in place — it
lands hydrated in sprint 5 (D-SDR-3b family-hydration worker) once a
loader from the registry exists. Until then, the chain's configured
domain is the authoritative stamp.

Test updated to assert SuperDomain::WorkOrderBilling (the chain's
configured value) instead of the placeholder Unknown.

96/96 callcenter lib tests pass.

Refs: PR #364 review threads (P2 priority).
…stry IDs in audit

Per chatgpt-codex-connector P1 review on PR #364: owl_from_schema_ptr
truncated SchemaPtr::entity_type_id (u16) to 8 bits, so distinct
authorized entities whose registry IDs differ by 256 collided in the
audit log. RegistryState::append allocates IDs globally as rows.len()+1
u16, not per-namespace u8 slots, so the truncation was reachable on
otherwise-valid hydrated registries.

User decision (sprint-5-roadmap OQ): widen now, not defer to sprint 5.

Contract-level change rippling through three call sites:

* OwlIdentity: 2-byte packed u16 -> named fields { family: OgitFamily,
  slot: u16 }. raw() removed; replaced by to_canonical_bytes() -> [u8; 3]
  returning the deterministic on-wire form [family, slot_lo, slot_hi].
  new()/is_slot() now take slot: u16. UNKNOWN literal updated.

* owl_from_schema_ptr: drop the & 0xFF truncation; entity_type_id flows
  through full-width.

* UnifiedAuditEvent::canonical_bytes: grows 25 -> 26 bytes. owl now
  occupies [13..16); op/decision/role_hash offsets shifted by 1. Wire
  format is breaking for any persisted audit log — none exist outside
  test fixtures at this commit, so no migration is needed in tree.
  Cross-language emitters (Rust / C#) get the new layout via
  OwlIdentity::to_canonical_bytes.

* OgitFamilyTable: [Option<FamilyEntry>; 256] dense array -> sparse
  HashMap<u16, FamilyEntry>. Lookups stay O(1); resident set scales
  with occupied-slot count, not the u16 keyspace. set()/clear() now
  take slot: u16. The doc comments' '256-slot' framing is replaced
  by 'sparse map'.

Tests:
* slot_keyspace_distinguishes_high_ids — locks the new invariant by
  asserting slot 7 and slot 7+256 stay distinct (would alias under
  the old layout).
* canonical_bytes_round_trips_field_order — updated to the 26-byte
  layout and to_canonical_bytes() projection.

97/97 callcenter lib tests pass.

Refs: PR #364 review threads (P1 priority); sprint-5 roadmap OQ
'PR-D5 compat shim vs coordinated cutover' — resolved as cutover
(no compat shim because no on-disk audit log exists yet outside
test fixtures).
Lockfile follow-up to a3c753f: enabling ndarray/hpc-extras pulls in
blake3, fractal, and p64 as transitive deps; the lock now reflects
that.
@AdaWorldAPI AdaWorldAPI merged commit da156eb into main May 13, 2026
5 checks passed
AdaWorldAPI pushed a commit that referenced this pull request May 13, 2026
…1/P2 fixes)

PREPEND #364 entry to PR_ARC_INVENTORY.md (Added / Locked / Deferred /
Docs / Confidence / Correction lines per the file's append-only contract).
Update LATEST_STATE.md header and PR table row with #364 summary plus
ndarray #142 adjacent-landing note.

Per CLAUDE.md Mandatory Board-Hygiene Rule: a merged PR requires
LATEST_STATE row + PR_ARC PREPEND in the same commit. This entry closes
that gap (commit lands after merge because #364 was merged before this
session reconstructed state; not a same-PR commit but the durable
record is what the rule protects).

Notes on locked decisions:
* OwlIdentity canonical wire form is now 3 bytes [family, slot_lo,
  slot_hi]; cross-language emitters use OwlIdentity::to_canonical_bytes.
* UnifiedAuditEvent::canonical_bytes is 26 bytes (owl at [13..16)).
* OgitFamilyTable is sparse HashMap<u16, FamilyEntry>; 256-slot framing
  retired.
* Audit super_domain comes from AuditChain.super_domain(), not the
  static FAMILY_TO_SUPER_DOMAIN.
* Sprint-5+ worker prompts: 12-step .claude/plans/ read-order is a hard
  precondition.

Deferred (documented in #364 entry, not closed by this commit):
* PR-B medcare-rs UnifiedBridge: commits on remote integration branch,
  no PR opened.
* PR-C smb-office-rs UnifiedBridge: same shape.
* Per-namespace u8 slot in RegistryState::append: declined this session
  (widening to u16 in 3208743 is the chosen fix; per-namespace would
  cascade into BindSpace + enumerate_first_with_entity_type_id rewrite,
  see TECH_DEBT).
AdaWorldAPI pushed a commit that referenced this pull request May 13, 2026
#364

Sprint-5 cross-repo coordinated landing complete: MedCare-rs#112 (PR-B,
UnifiedBridge<MedcareBridge> + medcare-rbac/realtime substrate) and
smb-office-rs#31 (PR-C, UnifiedBridge<OgitBridge> wiring) both merged
2026-05-13 same day as lance-graph #364 + ndarray #142.

Updates:
* PR_ARC #364 Confidence line: append "Adjacent landings (2026-05-13)"
  note listing both downstream merges. Confidence line is the only
  mutable field per APPEND-ONLY RULE point 3.
* LATEST_STATE header: rewrite to capture the full four-PR landing
  (lance-graph + MedCare + smb-office + ndarray) so cold-start sessions
  see the coordinated landing at a glance.

D-SDR-5's UnifiedBridge surface is now consumed end-to-end.
AdaWorldAPI pushed a commit that referenced this pull request May 13, 2026
…tch (W1 + W8 still in flight)

Sonnet worker fleet (12 parallel) producing PR-ready specs for the
remaining sprint-5 follow-ons + sprint-6 Tier-2 wiring. This commit
captures 10 of 12 outputs that landed cleanly; W1 (LanceAuditSink)
and W8 (woa-rs extraction) are respawns still running.

Sprint-5 specs (substrate already shipped in PR #364):
* pr-d3b-jsonl-and-verify.md  (W2, 27 KB) — JsonlAuditSink + CompositeSink + verify CLI
* pr-d4-family-hydration.md   (W3, 16 KB) — TTL hydration of FAMILY_TO_SUPER_DOMAIN
* sprint-5-ci-matrix.md       (W4, 21 KB) — green-gate criteria + target matrix
* sprint-5-pr-graph.md        (W5, 16 KB) — retro of 4-PR landing + sprint-6 unblock map

Sprint-6 specs (Tier-2 composable wiring):
* pr-e1-medcare-super-domain.md   (W6, 26 KB) — MedCare finalisation, ~900 LOC
* pr-e2-smb-retrofit.md           (W7, 11 KB) — 5 bypass sites + audit emission
* pr-f1-thinking-engine-wire.md   (W9, 16 KB) — UnifiedBridge gate for cross-tenant ops
* pr-g1-manifest-modules.md       (W10, 27 KB) — build.rs codegen, no cycle
* pr-g2-ractor-supervisor.md      (W11, 25 KB) — per-G actor, one-for-one supervision
* sprint-6-conformance-test.md    (W12, 26 KB) — 10 contract assertions across consumers

Permissions: settings.json grants Write/Edit on .claude/board/sprint-log-5-6/**
to unblock workers writing into the per-agent scratchpad dir.

A2A scratchpads at .claude/board/sprint-log-5-6/agents/ (one per worker).
AGENT_ORCHESTRATION_LOG.md gets one-line per agent on completion.

W1 + W8 respawns + Opus meta review to follow in subsequent commits.
AdaWorldAPI pushed a commit that referenced this pull request May 13, 2026
…364 + smb-office-rs PR #31

Section 5 row added: lance-graph PR #364 (D-SDR-1..5) shipped the
UnifiedBridge<B> + TenantId surface; smb-office-rs PR #31 wired
smb_unified_bridge(registry, namespace, role, tenant) ->
UnifiedBridge<OgitBridge>. Currently locked to OgitBridge per-namespace;
future SmbBridge (OGIT/NTO/SMB/) drops in via type-param swap with no
call-site change.

Coexistence framing: the new authorize_read/write/act path is
complementary to the legacy SmbMembraneGate / CachedOntology surface.
Both stay until SMB TTL hydrates the registry, at which point the
legacy hand-rolled Ontology in smb-realtime/src/ontology.rs retires.

Footer updated to pin against current main SHAs (lance-graph da156eb,
smb-office-rs 074ce9b).
AdaWorldAPI pushed a commit that referenced this pull request May 13, 2026
…364 + smb-office-rs PR #31

Section 5 row added: lance-graph PR #364 (D-SDR-1..5) shipped the
UnifiedBridge<B> + TenantId surface; smb-office-rs PR #31 wired
smb_unified_bridge(registry, namespace, role, tenant) ->
UnifiedBridge<OgitBridge>. Currently locked to OgitBridge per-namespace;
future SmbBridge (OGIT/NTO/SMB/) drops in via type-param swap with no
call-site change.

Coexistence framing: the new authorize_read/write/act path is
complementary to the legacy SmbMembraneGate / CachedOntology surface.
Both stay until SMB TTL hydrates the registry, at which point the
legacy hand-rolled Ontology in smb-realtime/src/ontology.rs retires.

Footer updated to pin against current main SHAs (lance-graph da156eb,
smb-office-rs 074ce9b).
AdaWorldAPI pushed a commit that referenced this pull request May 14, 2026
link_and_entity_type_id_resolution was written before PR #364's Codex P1
fix (`3208743`), when registry-created rows always carried
ontology_context_id = 0. That fix made RegistryState::append stamp the
seeded id from NamespaceRegistry::seed_defaults() — Healthcare = 2 — so
the MulThresholdProfile MEDICAL/CALLCENTER lookup at driver.rs:303-321
actually fires for Healthcare/WorkOrder/Medical rows instead of always
selecting DEFAULT.

The test assertion `== 0` is stale; the desired behavior is `== 2`.
Closes the pre-existing test failure flagged in the conflict-resolution
commit message. Listed in PR #369's deferred backlog as the Tier B
"per-row BindSpace.context_ids for driver.rs:311" follow-up — this is
the test-side; the BindSpace SoA layout change remains sprint-10.
AdaWorldAPI pushed a commit that referenced this pull request May 14, 2026
Architectural reference docs surfaced by the sprint-log-10 work +
post-sprint research into the hot-path mental model. All 8 docs carry
`READ BY:` headers per the .claude/knowledge/ convention and cite
shipped source with file:line refs.

Docs (~123 KB total):

1. causal-edge-64-spo-variant.md
   The causal-edge::CausalEdge64 (SPO-palette layout): S/P/O palette
   + NARS f/c + Pearl 2³ mask + direction + inference + plasticity +
   temporal. Full bit layout + accessors + forward()/learn() cycle.

2. causal-edge-64-thinking-engine-variant.md
   The thinking_engine::layered::CausalEdge64 (8-channel cascade):
   BECOMES / CAUSES / SUPPORTS / REFINES / GROUNDS / ABSTRACTS /
   RELATES / CONTRADICTS, each 1 byte. NOT the same type as the
   SPO-palette variant despite sharing the name.

3. causal-edge-64-synergies-and-pr-trajectory.md
   What each variant does BETTER + thinking-engine function mapping
   + PR #364/365/366 trajectory analysis + reunification Options R-1
   (CausalEdge128) / R-2 (paired tuple) / R-3 (recommended: tier
   separation + transcode at L3 commit).

4. spo-schema-and-mailbox-sidecar.md
   SPO-G (named-graph quad) vs SPO-W (witness tetrahedron, per
   oxigraph-arigraph-cognitive-shader-soa-merge-v1.md §8) vs both.
   Time-as-sidecar correction: CausalEdge64 IS the sidecar (AGI-as-
   glove doctrine), not a bearer of one. Mailbox payload per Σ-tier.

5. spo-ontology-format-stack.md
   Format ladder: 3×16Kbit lossless → ZeckBF17 → Base17 (bgz17) →
   PaletteEdge / CAM-PQ → Scent → CausalEdge64. Selection matrix per
   use case (witness corpus, multi-hop, neighborhood search, cycle-
   speed dispatch).

6. ogit-owl-dolce-ontology-compartments.md
   OGIT (domain content) + OWL (formal axioms) + DOLCE (orthogonal
   categorical scaffold). CAM codebook = OGIT manifestation in
   quantized form. 8-channel ↔ OWL axiom near-isomorphism:
   SUPPORTS↔sameAs, REFINES↔subClassOf-down, ABSTRACTS↔subClassOf-up,
   CONTRADICTS↔disjointWith, etc.

7. cognitive-shader-driver-thinking-engine-reunification.md
   The p64 drift origin pinpointed at lance-graph-planner/src/cache/
   convergence.rs:18-22: `#[allow(unused_imports)] // CausalEdge64
   intended for hot-path convergence wiring` — wiring started, never
   finished, smoking gun for where the dual-variant drift formalized.
   5-step reunification plan.

8. splat-shader-rayon-struct-method-vision.md
   Splat ops (splat_gaussian, score_hole_closure, etc.) as BLAS-class
   field operations over the 4096×4096 SPOW question surface. ndarray
   struct methods + rayon work-stealing par_* variants. The
   "computational entropy through struct object-oriented" framing:
   caller LOC 7-15 → 1-3 per cycle, state-passing bugs eliminated.

Correction of prior session framing: "AriGraph reads = µs+ cold-path
joins" was wrong. AriGraph entity_index is O(1) HashMap, Zone-1
(20-200 ns). Three-zone model now documented:
- Zone-1 (cycle-speed): thinking-engine MatVec 200-500ns + AriGraph
  entity_index lookup 20-200ns
- Zone-2 (SPO-as-3D-vector ANN): blasgraph + neighborhood cascade
  HEEL→HIP→TWIG→LEAF, 20-1200µs
- Zone-3 (cold-path): DataFusion / lance-graph-planner, >1ms

https://claude.ai/code/session_01UwJuKqP828qyX1VkLgGJFS
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants