diff --git a/.claude/board/INTEGRATION_PLANS.md b/.claude/board/INTEGRATION_PLANS.md index 9713b6260..30543ccea 100644 --- a/.claude/board/INTEGRATION_PLANS.md +++ b/.claude/board/INTEGRATION_PLANS.md @@ -1,3 +1,11 @@ +## 2026-10-26 — D-DT64 64-slot versioned DTO adapter / holographic relational projections → `.claude/plans/d-dt64-holographic-predicate-capstone-v1.md` + +**Status:** DESIGN ONLY, six draft docs PRs. **Board:** [D-DT64-0](entries/2026-10-26-dt64-holographic-interface.md) and [STATUS_BOARD](STATUS_BOARD.md). **Stages:** [DT64-1 #1794](https://github.com/AdaWorldAPI/lance-graph/pull/1794) predicate/source catalogue, [DT64-2 #1795](https://github.com/AdaWorldAPI/lance-graph/pull/1795) IAM/Odoo/SAP/EXO DTO authority, [DT64-3 #1796](https://github.com/AdaWorldAPI/lance-graph/pull/1796) directed DR projections, [DT64-4 #1797](https://github.com/AdaWorldAPI/lance-graph/pull/1797) edge×edge and Thought-Git temporal hypotheses, [DT64-5 #1798](https://github.com/AdaWorldAPI/lance-graph/pull/1798) native method/ONNX/time series. [EXO-50](https://linear.app/exo-red/issue/EXO-50) is append-only handoff; all these are independent docs-only branches and **NOT** production PRs or measured probes. + +**Q0 cross-session binding lock (docs only):** [source-attested borrowed DT64↔Quack interface](../plans/d-dt64-q0-borrowed-quack-binding-seam-v1.md) in #1799. Eight real IAM/Exchange/SAP predicate candidates first, exact typed source/scoped identities, physically attested snapshot, borrowed lanes and reusable *recipe*, not reusable stale Keep. Directed (s,p)→o / (p,o)→s / (s,o)→p answers against original source and independent oracle; DR64² optional costed arm. #1792's 1,032-vs-31 stale selection is binding refusal control; numerical contracts remain D-NAM/EXO-152+ndarray. No new stage, runtime, ONNX authority, physical DR64³ or live write. + +DT64 64 entries = versioned *typed predicate* registry hypothesis, not ClassView field mask, not physically decided DR³ third axis. Source-mapped IAM groups/mailbox/license (license source not present), Odoo employee/user/partner/company, SAP CATS 23/16/8 ordered fields; unknown vs false vs revoked; frame/focus/scope/predicate catalogue and source identity all need witnesses. Borrow-only Quack safe; escaped masks and physical Lance cross-source snapshots remain unadmitted (#1792). Logical DR64³ 32 KiB bit plane excludes provenance/masks, with exact direct bitmask or CSR alternatives. No auto permissions/provisioning or model writes. **Owner precedents:** EXO-121/122/123, EXO-126/127/151/152, EXO-46 and EXO-148. + ## 2026-10-26 — D-DR256-WHERE population-masked reads, thought amortization, DuckDB harvest → `.claude/plans/dr256-where-capstone-v1.md` **Status:** P0 census DONE, P1 lab DONE (reported, not gated); P2–P5 PROPOSED, NOT AUTHORIZED. **Board entry:** [D-DR256-WHERE](entries/2026-10-26-dr256-where-capstone.md). Smallest gap: exact occupancy over a `Keep` mask; multi-property gain is dead-block skipping, measured at ndarray level only. No runtime, ABI, planner, writer or WAL change; the scatter survival condition stays in force. @@ -4141,3 +4149,8 @@ Phase 1 fix the lance-phase2 build (`MedcareOntology::default()` calls broken no ### Scope Consolidates the 4 consumer-integration plans into a P0/P1/P2-prioritised POC roadmap. **First POC slice = woa-rs PR-5 (XRechnung visible reward)** — the moment 6 months of lance-graph substrate work produces its first customer-deliverable artefact (EN16931-conformant ZUGFeRD/Factur-X invoice via `hydrate_zugferd` + `SchematronHydrator` + `XsdHydrator`). Maps 1:1 to "First Foundry-style projection: fibo:Transaction" Phase 9 from `erp_foundry_hhtl_ontology_distillation.md`. P0 effort ~7-8 days. P1 closes parity dashboard + RLS-via-codegen-bucket + MedCare/SMB cross-consumer harvest. P2 = opt-in Cypher/similarity/MongoDB alt cold path. No new D-ids; this plan re-indexes existing D-UB-/D-WLG-/D-LGMC-/D-LGSMB- IDs by priority. + + +### DT64-QB joint execution seam (coordination amendment, 2026-10-26) + +[DT64 ↔ Quack source-attested borrowed binding](../plans/d-dt64-q0-borrowed-quack-binding-seam-v1.md) is the smallest first possible lab after separate approval: 8 IAM/Exchange/SAP source-grounded predicate candidates, authoritative source+snapshot/schema/catalogue/permission/focus/knownness descriptors, borrowed input lanes into existing Quack→RelAlg→R2IL→mask-risc/ndarray, independent scalar oracles and typed refusal. Source data, permissions and business behavior remain external; prepared native recipe reusable under fresh validated bindings, escaped Keep blocked unless recomputed/refused (#1792 old 1,032 / fresh 31). Three directional SPO query orientations only on actual binary relations, not unary group/mailbox classifiers. Optional DR64² costed against direct. Physical DR³, Thought-Git durability/EXO-148 and numerical ONNX/D-NAM EXO-152 are downstream, not prerequisites. STATUS_BOARD and EXO-50 carry handoff only; no production implementation authorized. diff --git a/.claude/board/STATUS_BOARD.md b/.claude/board/STATUS_BOARD.md index a0b609947..730737e3d 100644 --- a/.claude/board/STATUS_BOARD.md +++ b/.claude/board/STATUS_BOARD.md @@ -1,3 +1,20 @@ +## D-DT64 — DTO Tensor 64: versioned semantic predicate adapter and DR projections (2026-10-26) + +**Status:** PLAN / DOCS ONLY, six independent draft PRs, no source ingestion, no new 64-slot ABI, no runtime or tests run. [Charter](../plans/d-dt64-holographic-predicate-capstone-v1.md); [board entry](entries/2026-10-26-dt64-holographic-interface.md). [EXO-50](https://linear.app/exo-red/issue/EXO-50) is the append-only handoff, not a production approval. + +| Stage | Plan / draft | Gate | +|---|---|---| +| DT64-0 | charter / THIS PR | protect ClassView presence vs predicate truth; NFR-OP-2 open | +| DT64-1 | [#1794](https://github.com/AdaWorldAPI/lance-graph/pull/1794) | 64 typed candidate mappings, sourced/candidate/blocked differentiated | +| DT64-2 | [#1795](https://github.com/AdaWorldAPI/lance-graph/pull/1795) | IAM/Odoo/SAP/Exchange cross-system identity joins require source attestations; licence source absent | +| DT64-3 | [#1796](https://github.com/AdaWorldAPI/lance-graph/pull/1796) | forward/inverse/predicate SPO projection parity and K3/Bag falsifiers; no mandated DR³ physical cube | +| DT64-4 | [#1797](https://github.com/AdaWorldAPI/lance-graph/pull/1797) | dependency support and hypothesis/time receipts; EXO-148 missing durable IDs | +| DT64-5 | [#1798](https://github.com/AdaWorldAPI/lance-graph/pull/1798) | D-NAM/EXO-152 native method route, ONNX as leaf, computed result ≠ source fact | + +**Shared Q0 execution seam (docs only, #1799):** [DT64 → borrowed Quack](../plans/d-dt64-q0-borrowed-quack-binding-seam-v1.md). One attested semantic binding, source-owner immutable borrow, separate compiled recipe. First fixture: eight IAM/Exchange/SAP predicates, scalar/direct/Quack and optional DR64² comparison, three directed queries, mandatory #1792 1,032-vs-31 stale Keep refusal/recompute. No invented runtime, 64³ allocation, new execution authority or numerical method code. D-NAM/EXO-152 owns SourceParity/CertifiedMath certificates; DT64 only references handles. No tests yet. + +**Hard blockers:** [EXO-46](https://linear.app/exo-red/issue/EXO-46) production focus admission, [#1792](https://github.com/AdaWorldAPI/lance-graph/pull/1792) escaped-Keep authority and physical snapshot, NFR-OP-2 axis selection, source-specific negative observation/ACL, EXO-148, missing Entra license and Odoo method source verification. Direct bitmask first; no claimed holographic global reconstruction until independent oracle. + ## D-TFLP — TFLite models on the native polyfill: int8 codes as Palette256 (2026-10-25) **Status: PROPOSAL, DOCS ONLY.** Plan: [d-tflp-tflite-palette-polyfill-capstone-v1.md](../plans/d-tflp-tflite-palette-polyfill-capstone-v1.md). Ledger: [2026-10-25-d-tflp-0-tflite-palette-polyfill.md](entries/2026-10-25-d-tflp-0-tflite-palette-polyfill.md). Specializes D-NAM-2 (#1780) and D-NAM-PZL (#1784); no executor, tensor IR or `Rel` variant. @@ -3117,3 +3134,8 @@ Plan path: `.claude/plans/polyglot-container-query-membrane-v1.md`. Research gro | D-HXP-6 | W4 — the flow channel: promotion yield vs challenge/skill (`mul::FlowState`, `#[repr(u8)]`, D-CSV-13b) | Queued | PASS yield peaks in the middle escape bucket (0 % / ~50 % / 85 % = Boredom / Flow / Anxiety). Two-sided kills: yield monotone in escape → the flow model is wrong; yield flat → `FlowState` carries no information here and must not be cited as a mechanism | | D-HXP-7 | **EWA concentration gate** — replaces the struck W0 signal gate (§10). `ewa_sandwich` + `pillar_5plus_bound`, zero-dep in the contract | Queued | PASS PSD ≥ 0.999 AND measured CV ≤ 1.75 × bound at **n ≥ 10** (bound 0.7483 at n=5 → 0.5715 at n=12). **KILL** CV exceeds slack at n ≤ 5. BETWEEN: the largest holding `n` becomes W3's measured path budget. **Anti-vacuity mandatory** — the unstructured fixture must FAIL at low n, else this gate is struck like its predecessor. Disable: plain additive accumulation must go red at n ≥ 10 | | D-HXP-8 | **Board games as the Raumgewinn falsifier** (operator, 2026-09-15: *"tiktaktoe gobbang, go … falsifiable"*) — cells as units, the six rails as neighbours (Hex exact; Go 4 of 6; tic-tac-toe / Gobang 8 directions), positions evaluated by HDR popcount stacking through `TierFloors::stack_early_exit`, winner by `head2head::SupportSpread`; plan §12 | In progress — arm 1 (tic-tac-toe) RUN 2026-09-15: **F0 DEGENERATE**, not a KILL (every cell's rails reach all 8 others → the full stack is the board census, distinct values `1.000`; F1 tie-aware `0.5797` = baseline is the census signature). F0 fixture-validity gate added (plan §12a); next readable arm: Gobang 15×15 / Go 9×9 / Hex ≥ 7×7 (board diameter > 2 × deepest ring; Hex 5×5 fails). Meter note: signed tiers break the early exit (10.13 %), `TECH_DEBT` 2026-09-15 | F1 agreement with the solved value (tic-tac-toe: top move value-preserving ≥ 95 % of 765 positions, shuffled-rail null for chance; Go end positions: stacked territory == flood-fill scoring, an equality); F2 early exit changes NO verdict and exposes fewer tiers (fraction measured); **F3 mandatory degree-1 ablation must DROP F1** — flat = the task did not exercise the six (E-Q8) and the probe proves nothing. KILL: F1 at chance on tic-tac-toe, or F3 flat | + + +### DT64-QB cross-session first seam (2026-10-26) + +**Coordination result, DOCS ONLY:** [borrowed Quack binding design](../plans/d-dt64-q0-borrowed-quack-binding-seam-v1.md) narrows DT64-0..5: first read-only, source-attested binding with original DTO identity, schema/catalogue version, actual owner + physical snapshot, local-focus/codebook witnesses, permission/completeness, borrowed input lanes and *separate reusable compiled recipe*. DT64 does not evaluate business predicates or native numerics; Quack/RelAlg/R2IL/mask-risc execute; ndarray does numeric kernels; D-NAM/EXO-152 owns numeric method certificates. Not one of ClassView FieldMask, DR address, 64 predicate slots or Palette256 numeric code is interchangeable. **Eight candidates** = catalogue 08/11/12/13/14/17/18/32 from dir-sim/Exchange/SAP (unary kept unary); compare scalar oracle ↔ Quack ↔ optional DR64². #1792 **MERGED** proves in-borrow stability and falsifies escaped Keep (1,032 old vs 31 fresh); complete mutation/source-snapshot reuse witness still **OPEN**. No code, physical DR³, runtime, source write or permission admission. diff --git a/.claude/board/entries/2026-10-26-dt64-holographic-interface.md b/.claude/board/entries/2026-10-26-dt64-holographic-interface.md new file mode 100644 index 000000000..10e223540 --- /dev/null +++ b/.claude/board/entries/2026-10-26-dt64-holographic-interface.md @@ -0,0 +1,60 @@ +# D-DT64-0 — DT64 64-slot versioned predicate adapter, inverted DR projections and staged PRs + +**Date:** 2026-10-26. **Status:** DOCS / DRAFT, no production adapter, schema ABI, method, test or runtime implementation. **Source:** `../../plans/d-dt64-holographic-predicate-capstone-v1.md`. + +**User request:** detailed technical mapping of IAM, Entra/Exchange, Odoo and SAP DTOs into a proposed 64-predicate DT64 semantic interface; directed/holographic DR access, edge×edge, Thought-Git hypothesis/time, ONNX numeric lowerings; stage documentation PRs; link the open contracts in EXO-50. + +## Cross-session Q0 coordination, same six-PR architecture + +[Borrowed DT64 → Quack binding seam](../../plans/d-dt64-q0-borrowed-quack-binding-seam-v1.md) added on #1799, DOCS ONLY. A source-attested binding consists of typed source/predicate identity, schema+catalogue version, actual owner/source snapshot, global/local witness, relevant codebook generation, scope/completeness, `&source`-borrowed input lanes, and separate reusable Quack recipe. DT64 does not execute; Quack/relalg/R2IL/mask-risc do; ndarray does numeric kernels; D-NAM/EXO-152 owns prepared numerical certificates and explicit SourceParity vs CertifiedMath. **Eight grounded IAM/Exchange/SAP predicates** are the first minimal lab fixture; Odoo cross-system join is not implied. The #1792 1,032-vs-31 changed-property stale-mask counterexample is required. Optional DR64² only after cost proof; no DR64³ runtime. Q0 is a coordination amendment under DT64-0, **not** an additional implementation stage or a CC instruction. + +## Draft sequence with exact GitHub receipts + +| stage | PR | deliverable and status | +|---|---|---| +| DT64-0 | [#1799](https://github.com/AdaWorldAPI/lance-graph/pull/1799), this branch | charter, dependency and question register, .claude board integration; docs only | +| DT64-1 | [#1794](https://github.com/AdaWorldAPI/lance-graph/pull/1794) | 64 typed predicate catalogue including 8 IAM/ODoo/SAP scenarios; docs only | +| DT64-2 | [#1795](https://github.com/AdaWorldAPI/lance-graph/pull/1795) | source snapshots, identity namespace & join witnesses, IAM/Odoo/SAP mapping and negative test specs; docs only | +| DT64-3 | [#1796](https://github.com/AdaWorldAPI/lance-graph/pull/1796) | three directed SPO query orientations, K3/Bag/Distinct, DR focus and falsifier ladder; docs only | +| DT64-4 | [#1797](https://github.com/AdaWorldAPI/lance-graph/pull/1797) | edge dependency, Thought-Git hypothesis/time, replay receipts and retractions; docs only | +| DT64-5 | [#1798](https://github.com/AdaWorldAPI/lance-graph/pull/1798) | native behavioral recipes, Odoo/SAP/IAM computations, numerical time series and ONNX leaf semantics; docs only | + +**All plans on independent branches from main** (NOT implementation). Merge/admission order is logical, but each PR must be re-reviewed and rebased after predecessors; no hidden stacked commits. No tests claimed run. PRs from other sessions are not modified. + +## Key source evidence already present + +- IAM: `dir-sim` direct/nested group and `actors.rs` effective-role evidence, `cloud.rs` EXO mailbox match/awaiting/mismatch states. Effective role `ClassView × DR` lab in [2026-10-21-classview-dr-iam.md](2026-10-21-classview-dr-iam.md), ~13–19 ns once per class resolved (lab). +- SAP: `lance-graph-sap` has 23 stable CATS fields, 16 HASH and 8 BAPI ordinal profiles; direct mask preferred for a 23-field projection (EXO-122 / D-QR-SAP). +- Odoo: curated blueprint [odoo-blueprint-inventory-v1](../../knowledge/odoo-blueprint-inventory-v1.md), `L14-HR-BASE` extracts employee/user/partner/company/manager and hr.version rules; live adapter and method execution not proven. +- Quack: current borrowed lanes and mask-risc native ops; #1792 attests borrow-scope but forbids assuming a detached `Keep` has a valid witness. +- DR: existing DR64²/DR256² Boolean registered relations; physical DR³ axis NFR-OP-2 still open, no magical zero-copy global cube. + +## Unclosed receipts and coordination owners + +| open | owner / authority | implication | +|---|---|---| +| 64 predicate ordinal/semantics registry | DT64/ontology, proposed | FieldMask presence is not predicate truth | +| NFR-OP-2 third DR axis | DR physical owner | 64×64×64 is logical capacity, not ABI | +| EXO-46 focus preparation | D-RMAP | cross-table identity joins never by numeric ordinal alone | +| #1792 escaped-mask/source snapshot | mailbox/source and Lance reader | recompute/refuse until attestation | +| License SKU/service-plan DTO | Entra/identity source owner | cannot infer license from EXO mailbox | +| Odoo `res.users`/SAP PERNR/AD GUID joins | source adapter owners | no UPN/email or integer equality claim | +| EXO-148 DurableRef/ThoughtCommitId | D-RST / D-TGB | no durable Thought-Git replay claims | +| EXO-152 native methods/ONNX | D-NAM owner | no new tensor runtime, versioned method receipts | +| source explicit negative/ACL completeness | auth/data authority | missing != FALSE and no scope widening | +| "holographic" reconstruction test | D-HOLO/DR | invert access without claiming compressed global recovery | + +**Falsifier principle:** an independent scalar oracle plus disable control must bind before any correctness or speed claim. Costed: cold identity mapping, focus seal, masks/index bytes, hot folding, output, witness. If direct/CSR wins a narrow mapping, KEEP_DIRECT. Separate Boolean relationships, numerical model output, and unverifiable hypotheses. + +**Agent handoff:** [Source-first CC brief](../../prompts/d-dt64-source-first-claude-code-handoff.md) (read-only first; no code authorization). + +**Handoff:** [EXO-50](https://linear.app/exo-red/issue/EXO-50/agent-message-bus-gpt-xgrok-ccsession-id) append-only [coordination message](https://linear.app/exo-red/issue/EXO-50) posted as `GPT:gpt-ada-01/D-DT64-1799-20261026` with all six PR receipts; acknowledgement requested. [EXO-121](https://linear.app/exo-red/issue/EXO-121), [EXO-122](https://linear.app/exo-red/issue/EXO-122), [EXO-123](https://linear.app/exo-red/issue/EXO-123), [EXO-126](https://linear.app/exo-red/issue/EXO-126), [EXO-127](https://linear.app/exo-red/issue/EXO-127), [EXO-151](https://linear.app/exo-red/issue/EXO-151), [EXO-152](https://linear.app/exo-red/issue/EXO-152). + + +## DT64-QB — parallel Quack/algebra coordination correction + +**Source:** [D-DT64-QB-0](../../plans/d-dt64-q0-borrowed-quack-binding-seam-v1.md). This is the first execution contract, **NOT** a new runtime or authorized implementation. DT64 = semantic binding-store adapter; Quack/RelAlg/R2IL/mask-risc = relational evaluation; ndarray = native numerics; D-NAM/EXO-152 = prepared numerical-method semantics and certificates. The eight IAM/Exchange/SAP candidate predicates are catalogue slots **08, 11, 12, 13, 14, 17, 18, 32**. Unary group/mailbox classifications do not acquire invented inverse edges; directional projections apply to typed binary predicates only. + +**Admission:** typed source object + predicate; schema/catalogue revisions; owner + ACTUAL physical source snapshot; sealed global/local focus; optional codebook generation; permission and completeness authority; live borrowed lanes; independently reusable compiled recipe identity. `ClassView FieldMask`, DR coordinate, predicate slot and Palette256 numeric code remain distinct. Borrow-scoped run needs no redundant ownership guard; detached Keep requires source-attested dependency or recomputation/refusal; #1792 old 1,032 vs fresh 31 remains falsifier. #1792 itself is MERGED, but source attestation and escaped reuse remain OPEN. + +**First independently authorized candidate:** S0 source census, then S1 eight-predicate borrowed adapter against independent scalar oracle, S2 directed SPO views and optional DR64² comparative route, S3 recipe rebind and stale Keep refusal. No DR³ mandatory, no source data replication, no ONNX, no writes. Later DT64-4/5 are independent research successors, not blockers. This correction changes no code/test claims. diff --git a/.claude/board/entries/README.md b/.claude/board/entries/README.md index f8029be9c..bf9e10502 100644 --- a/.claude/board/entries/README.md +++ b/.claude/board/entries/README.md @@ -25,10 +25,11 @@ index row, (3) no duplicate entry id. Checks 1 and 2 are deliberately opposite directions; the stranding this convention prevents shows up in exactly one of them, never both. -482 entries, 2026-08-06 .. 2026-10-26. +483 entries, 2026-08-06 .. 2026-10-26. | date | entry id | finding | file | |---|---|---|---| +| 2026-10-26 | `D-DT64-0` | | [2026-10-26-dt64-holographic-interface.md](2026-10-26-dt64-holographic-interface.md) | | 2026-10-26 | `D-DR64C-A` | | [2026-10-26-dr64-cubed-amendment.md](2026-10-26-dr64-cubed-amendment.md) | | 2026-10-26 | `D-DR256-WHERE` | | [2026-10-26-dr256-where-capstone.md](2026-10-26-dr256-where-capstone.md) | | 2026-10-26 | `D-DR256-OD` | | [2026-10-26-dr256-on-demand-l1.md](2026-10-26-dr256-on-demand-l1.md) | diff --git a/.claude/plans/d-dt64-holographic-predicate-capstone-v1.md b/.claude/plans/d-dt64-holographic-predicate-capstone-v1.md new file mode 100644 index 000000000..00a545d48 --- /dev/null +++ b/.claude/plans/d-dt64-holographic-predicate-capstone-v1.md @@ -0,0 +1,121 @@ +# D-DT64-0: Versioned DTO Predicate Adapter, 64-slot registry and holographic relational access + +**Date:** 2026-10-26. **Status:** DESIGN / docs only. **Decision:** user requests detailed staged PR plans, mappings, falsifiers and EXO-50/.claude coordination. **NOT a production ABI approval.** +**Owner:** DT64 predicate mapping and evidence contract; coordinate existing source owners via EXO-50 before any code. +**References:** [D-QR-CAP / EXO-121](https://linear.app/exo-red/issue/EXO-121), [D-QR-IAM / EXO-123](https://linear.app/exo-red/issue/EXO-123), [D-QR-SAP / EXO-122](https://linear.app/exo-red/issue/EXO-122), [D-QSP / EXO-126](https://linear.app/exo-red/issue/EXO-126), [D-DRMC / EXO-127](https://linear.app/exo-red/issue/EXO-127), [EXO-46](https://linear.app/exo-red/issue/EXO-46), [EXO-148](https://linear.app/exo-red/issue/EXO-148), [EXO-151](https://linear.app/exo-red/issue/EXO-151), [EXO-152](https://linear.app/exo-red/issue/EXO-152), [EXO-50](https://linear.app/exo-red/issue/EXO-50); [#1792](https://github.com/AdaWorldAPI/lance-graph/pull/1792). + +## Coordination lock: first common DT64 ↔ Quack seam + +[**D-DT64-Q0 borrowed binding seam**](d-dt64-q0-borrowed-quack-binding-seam-v1.md) records the 2026-10-26 cross-session architecture agreement and supersedes any broader reading of the first executable stage in this charter. It is **coordination, not a new CC instruction**. One source-attested semantic binding contains typed source-object/predicate IDs, schema/catalogue version, source owner and actual pinned snapshot, focus witness, optional codebook generation, permission/completeness scope, **borrowed native input lanes** and a link to an independently reusable compiled recipe. This plan introduces **no production Rust struct/ABI**. + +- **DT64 owns semantics and binding**, not evaluation, method execution, ONNX, or a physical tensor. +- **Quack/RelAlg/R2IL/mask-risc own relational execution**, ndarray numerical kernels; **D-NAM/EXO-152 owns prepared numerical method identity/certificates**. SourceParity, CertifiedMath, calibration and implementation fingerprint do not inhabit DT64 predicate bits. +- **First landing is narrow:** eight sourced IAM/Exchange/SAP predicate candidates, owner-borrowed algebra, directed (s,p)→o / (p,o)→s / (s,o)→p access, independent scalar oracle and optional measured DR64². Odoo remains an explicitly documented later source-mapping extension, not a forced prerequisite for the first exact fixture. +- **#1792's 1,032 vs 31 stale Keep** falsifier remains mandatory. The compiled recipe may outlive a borrow; a detached Keep cannot be reused across source changes without a complete dependency witness, so recompute/refuse. +- **No DR64³ construction, new runtime, generalized replica or production writes** follow from the Q0 seam. + +## Thesis and precise terminology + +DT64 = **DTO Tensor 64**, a versioned *semantic adapter plate*: register up to 64 separately typed Boolean predicate mappings in a stable ordered catalogue. Source DTOs from IAM/AD/Entra/Exchange, Odoo and SAP bind into witnessed canonical identities, typed predicates and borrowed lanes. Quack / relalg / R2IL / mask-risc / ndarray operate over admitted native data. DT64 is **not** a replacement database, copied global entity table, new executor, or inference from similar field names. + +The proposed `R_v[s,p,o]` is a Boolean relation **only after** source+owner identity, coordinate map, codebook generation, presence, permission and frame consistency are proven. Predicate `p` is a typed semantics tag, not an Odoo field number, ClassId, palette index, thought slot, or universal property-id assertion. The 64-slot registry is a *logical* bound for a pilot, with 0..63 stable ordinals by version; it does **not** itself decide DR64³ axis semantics (NFR-OP-2 open). Per-predicate domain/range and ordering are witnessed; numerically equal local ordinals do not imply identical entities. Inversion is an operation with direction/type, not silent graph edge reversal. + +`ClassView::FieldMask` means structural **field presence** (contract/src/class_view.rs). Never repurpose its bits as graph predicate truth. Predicate truth requires its own relation(s), separate existence/known-ness/authorization. Metadata remains above SoA. `contract/src/property.rs::PropertySpec` is an AriGraph SPO property classification, not an existing 64-slot DT64 registry. + +## Logical capacity and materialization + +64 subjects × 64 targets × 64 predicates = 262,144 Boolean cells = 32 KiB if dense 1 bit/cell. One 64×64 predicate tile = 512 B; DR256² = 8 KiB; DR256³ dense = 2 MiB. These exclude masks for knownness, validity, provenance, evidence, codebooks, indexes, relations and witnesses. DR64³ physical dense/sparse/tiled realization remains unratified; never eagerly allocate a cube to answer an 8- or 23-field question. NFR-OP-2 decides what the third axis is. Gate DR view shape against [d-dr3-holo-onnx-s3a-s3c-v1.md](d-dr3-holo-onnx-s3a-s3c-v1.md) and its supersession by D-NFC. + +## Architectural flow + +``` +AD/Entra/Exchange Odoo SAP CATS / business + | | | + source DTOs and immutable snapshots, each with its OWN source + version identity + \______________|_____________________/ + v + cold DTO admission -> ClassView field presence -> typed source field/relationship resolver + v + DT64 Predicate Registry (versioned descriptor, 64 slots, owner + domain/range + evidence) + v + legal global-identity ↔ local-focus binding (EXO-46 admission; no value-steered gather) + v + borrowed mask/lanes / DR64² or DR256² when justified / logical DR³ projection + v + Quack + relalg + R2IL + mask-risc + ndarray -> Count/Exists/Keep/verified relations + | + projected directed SPO, uncertainty and negative provenance NEVER erased + v + optional: edge×edge composition; Thought-Git hypothesis/time; ONNX numeric leaf +``` + +### Integrity axes, never collapsed +- **Frame:** (source-id, dataset/table/snapshot version, schema and binding generation, immutable source/owner seal). A QueryReference is a temporal policy, not a physical checkout (#1792). +- **Focus:** witnessed global→local coordinate mapping, generation, window, typed domain/range. No value-derived cross-table positional gather outside a separately admitted prepare membrane (EXO-46). +- **Scope:** tenant, authorization policy, actor, source permissions; predicate visibility can differ from presence and truth. +- **Predicate interpretation:** 64-entry catalogue identity/version, signature/arity, derived versus observed, operator/semiring semantics; codebook-generation gate. +- **Epistemic observation:** TRUE / FALSE-with-complete-authority / UNKNOWN / NOT-OBSERVED / REFUSED, plus duplicate/bag multiplicity where applicable. Neither null nor absence is false. +- **Time:** valid time, observation time, source revision, persistence/landing and thought-hypothesis time remain different. +- **Law vs data:** D-DRMC compiled recipe reusable under fresh witnessed operands; detached Keep masks are not reusable by cycle stamp alone (#1792). + +## Six independent documentation draft PRs (separate branches from main, no hidden stacked commits) + +| Gate | Stage | Detailed deliverable | Exit criterion | Hard dependency | +|---|---|---|---|---| +| DT64-0 | This charter & board | scope, precedence, references, 64-slot logical hypothesis, non-goals | source-grounded docs | none | +| DT64-1 | Catalogue and source crosswalk | 64 registered candidate predicates with source DTO fields, types, authority, knownness and negative fixtures | 64 fully classified slots, core 8 exact oracle candidates | DT64-0 review | +| DT64-2 | Source DTO admission | AD/Entra/Exchange + Odoo + SAP identity reconciliation, role/mailbox/license/cross-tenant contrasts | cross-source fixtures fail closed, no writes | DT64-1 | +| DT64-3 | Relational inversion and DR focus | directed SPO projections, Boolean 64×64, conditional 64³, OR-AND vs bag, borrowed lanes, cost | scalar/Cypher or existing dir-sim/Quack parity, negative controls bind | DT64-2; EXO-46 for production | +| DT64-4 | Edge×edge / Thought-Git × time × hypothesis | versioned dependency derivations, replay receipts, evidence/conflicts, proper temporal guards | replay determinism, retract one support, no implicit truth promotion | DT64-3; EXO-148 unblocked for durability | +| DT64-5 | ONNX / deterministic DTO behavior | compile typed predicates and arithmetic into native method bindings; ONNX as external leaf, no new runtime | explicit exact/approx verdict, no false method equivalence, differential oracle | DT64-3; EXO-152 | + +**Documentation PR creation is not stage implementation or authorization.** Implementation after a separately accepted falsifier gate, with each stage rebased on merged main. + +## Primary open decisions (named owners, no manufactured closure) + +1. **DT64-OP-1:** Does 64 designate predicate catalogue ceiling, per-tenant registry, per-focus availability, or a versioned palette? Proposed: versioned registry, stable order; operator to ratify. *Owner*: DT64/ontology. +2. **DT64-OP-2:** Are third-axis cells predicate ordinals, relation ordinals, or property palette planes? This is already NFR-OP-2; do not preempt. *Owner*: DR physical ABI. +3. **DT64-OP-3:** Cross-system identity reconciliation: proven source key joins only, no email/UPN/PERNR equality assumption; define opaque signed mapping witness and collision protocol. *Owner*: IAM / Odoo / SAP source adapters. +4. **DT64-OP-4:** Negative authority, permission-scope and completeness witnesses for FALSE versus UNKNOWN. *Owner*: auth/identity. +5. **DT64-OP-5:** Escaped Keep and cross-source snapshot consistency (#1792): not resolved by a MailboxSoA cycle/gen counter; mutable public fields. *Owner*: source/mailbox and physical Lance owner. +6. **DT64-OP-6:** Direct field mask vs 512 B relation tile vs 32 KiB cube; measure full prepare+hot+terminal cost, no forced materialization. *Owner*: D-QR/D-DRF. +7. **DT64-OP-7:** ThoughtCommitId/DurableRef still absent (EXO-148). No assertion of replay/persisted identity without that authority. +8. **DT64-OP-8:** Odoo model extraction completeness and ACL, SAP CATS source ≠ generic SAP IAM; never invent a native SAP entitlement DTO without a source anchor. +9. **DT64-OP-9:** Exactly what makes local relational access 'holographic': demonstrate lossless directional reconstruction from sufficiently witnessed local projection, characterize incomplete focus; no claim of physical optical holography or general compressed recovery. +10. **DT64-OP-10:** ONNX/time series numerics vs exact Boolean relations, NULL, signedness, codebook validity and quantization; law admission separate from data provenance (EXO-152). + +## Global kill tests +- Identical local index, different globally identified principal: refuse. +- Unread group/tenant scope versus explicit negative: UNKNOWN not FALSE. +- Direct vs nested group, security versus distribution: not a single indiscriminate MEMBER_OF closure. +- Cloud mailbox: match/ambiguous/awaiting backsync not coerced to HAS_MAILBOX TRUE. +- Odoo `res.users` vs `hr.employee` via unverified partner/email: refuse. +- SAP client+PERNR vs AD GUID coincidentally equal integers: refuse. +- Two supporting role chains: retract one and effective role remains TRUE. +- Same recipe, changed source, changed codebook, changed scope, same revision number from another source: refuse detached intermediate. +- 64×64×64 tiny synthetic projection whose directed inverse swaps Subject and Object must not pass. +- 8 properties, 23 fields: direct mask beats cube overhead; KEEP_DIRECT, not forced DR³. +- ONNX/MLIR changes dtype/axis/rounding or output semantics: separate method identity or REFUSE. + +## Evidence and non-goals + +Existing: IAM `dir-rmap-probe/tests/classview_dr.rs` compiled role closure and speed (lab), SAP `lance-graph-sap/src/{schema,bind,edge}.rs` 23 fields and ordered hash/BAPI, Odoo extracted blueprint corpus, DR logic/Quack lab, #1792 borrow-vs-escaped refusal. Missing: DT64 registry implementation, Odoo method fold, SAP↔IAM↔Odoo trusted identity join, general DR³ physical layout, cross-frame binding store, cross-source snapshot attestation and proof checker. + +No live SAP/Odoo/AD/Entra connectivity, provisioning, license changes, account mutation, BAPI writes, rollout, authorization shortcut, runtime graph engine, ONNX interpreter, new FrameStore, or automatic claim that every DT64 bit is a fact. + +## Agent handoff + +Source-first review and proposed falsifier protocol: [d-dt64-source-first-claude-code-handoff.md](../prompts/d-dt64-source-first-claude-code-handoff.md). No implementation or production authorization is conferred by this prompt. + + +## DT64-QB coordination precedence: narrow source-attested borrowed binding (2026-10-26) + +**Controlling first executable seam:** [D-DT64-QB-0](d-dt64-q0-borrowed-quack-binding-seam-v1.md). This section narrows the six broad docs-only stages above: DT64 is a *versioned semantic binding-store adapter*, not a new executor, method evaluator, numerical certificate owner, source data replica or mandatory physical tensor. Quack/RelAlg/R2IL/mask-risc execute deterministic relational operations; ndarray executes native numerical kernels; D-NAM/EXO-152 owns admitted numerical methods and SourceParity/CertifiedMath certificates. DT64 references those methods, never implements their execution or embeds Palette256 numeric codes into 64 semantic predicate slots. + +**One conceptual source-attested binding:** typed source-object and predicate ID; source schema and DT64 catalogue version; owner + actual immutable physical snapshot; typed global/local coordinate witness; codebook generation if present; independent permission and read-completeness scope; borrowed input lanes with source lifetime; reference to separately reusable compiled mathematical recipe. ClassView field-presence masks, local DR ordinals, semantic predicate slots and numerical Palette256 codes remain separate. Nominal mailbox owner is provenance, not ACL. `QueryReference::at` horizon is not a physical dataset checkout. + +**First executable proof, only if separately authorized:** eight source-grounded IAM/Exchange/SAP predicates, catalogue candidates 08 direct membership, 11 security group, 12 mail-enabled group, 13 group-role grant, 14 effective role, 17 remote-mailbox recipient, 18 confirmed cloud mailbox and 32 CATS entry→scoped PERNR. Preserve unary classifications as unary; test directional `(s,p)→o`, `(p,o)→s`, `(s,o)→p` on binary predicates only. One source-shaped synthetic fixture, one independently authored scalar oracle, one live immutable borrowed Quack evaluation, optional *cost-justified* DR64² Boolean relation view. No license truth without real Entra source. No fabricated Odoo/AD/SAP principal equivalence. + +**#1792 source-boundary gate:** now MERGED, but does not provide escaped-selection attestation. In-borrow Quack runs without redundant mutation checks; reusable recipe can be rebound against fresh source; detached `Keep` cannot reuse by caller cycle or recipe hash. The 1,032-old / 31-fresh predicate selection counterexample must refuse/recompute on source mutation. Source public fields, reset+same-cycle ABA and distinct owners with equal stamps make a lone generation/cycle insufficient. Physical source snapshot and complete mutation witness remain OPEN. + +**Dependency correction:** NFR-OP-2 DR³ physical third axis, EXO-148 durable Thought-Git ID types, Odoo method, ONNX/TFLite leaf, numerical code-space and physical 64³ cube are **not blockers for the first eight-binding Quack lab**. Retain them as independently gated successors. No production implementation, ABI change, cache, writer/WAL, connector access or merge is authorized by this amendment. Coordination uses EXO-50 append-only comments, not shared mutable messages. diff --git a/.claude/plans/d-dt64-q0-borrowed-quack-binding-seam-v1.md b/.claude/plans/d-dt64-q0-borrowed-quack-binding-seam-v1.md new file mode 100644 index 000000000..d60dbbf43 --- /dev/null +++ b/.claude/plans/d-dt64-q0-borrowed-quack-binding-seam-v1.md @@ -0,0 +1,115 @@ +# D-DT64-Q0: Source-attested semantic binding → borrowed Quack execution + +**2026-10-26. Status:** INTER-SESSION ARCHITECTURE COORDINATION / DOCS ONLY. **Authority:** DT64-0 [#1799](https://github.com/AdaWorldAPI/lance-graph/pull/1799), DT64-1..5 [#1794](https://github.com/AdaWorldAPI/lance-graph/pull/1794)–[#1798](https://github.com/AdaWorldAPI/lance-graph/pull/1798), Quack/DR #1792 Part E. **Not:** a Claude Code instruction, a new production ABI, new solver, new runtime, an approved implementation or a merge decision. + +## One-sentence contract + +**DT64 attests *what* a DTO field or source relationship means, who owns it, which source snapshot and authorized focus it belongs to, and which borrowed native operands are currently valid. Quack / RelAlg / R2IL / mask-risc execute the *admitted algebra*. ndarray executes numerical kernels. D-NAM owns numerical method admission and prepared certificates.** + +The binding is an *interface seam*, not a second copy of business data and not the persistent Binding Store generalized in old plans. Do not invent a FrameStore, tensor physical allocation, predicate evaluator, Odoo executor, ONNX interpreter or new RelAlg AST. + +## First common interface, decomposed to avoid fake ownership + +This is **contract vocabulary**, not a proposed Rust public struct. Each identity and policy term must point to an existing truthful owner or an explicitly OPEN integration gap. Most values are checked cold at bind/prepare, not in the SIMD hot path. + +| Component | Source of authority / owner | First proof or refusal | +|---|---|---| +| typed source-object identity | actual namespace+tenant/client+opaque stable source key | two SAP clients both PERNR 42 never alias; AD GUID != Odoo integer | +| typed predicate identity | DT64 catalogue id/version/slot, domain/range/direction | slot != ClassView FieldMask, DR coordinate or Palette256 code | +| source schema and catalogue versions | source schema digest/field ordinal plus separately versioned DT64 descriptor | moved field ordinal, changed meaning or catalogue generation refuses | +| source owner and physical snapshot | owning source/reader; explicit opened physical version where persistence crosses boundary | `QueryReference::at` is a temporal horizon, not a dataset checkout (#1792) | +| global↔local coordinate witness | D-RMAP/EXO-46 source-attested preparation membrane; typed identity | equal local ordinal from other source refuses | +| codebook generation | real owner of local ordinal/codebook if relevant, NOT numeric equality | changed codebook refuses; D-NFR S15 still OPEN | +| permission / completeness scope | source ACL/policy/tenant, observation authority | unread or forbidden differs from explicit false; group-role policy completeness | +| borrowed input lanes | original immutable `&source` and existing `LaneRef` / `Planes<'_>` / strided views | no source mutation while borrowed; no hidden `to_vec` data replica | +| separately reusable compiled recipe | Quack/R2IL/D-DRMC prepared law bound to typed schema and supported math semantics | recipe reusable on a NEW valid source binding; old detached mask is not | +| result demand and validity | Quack `Count/Exists/Keep`, typed output, receipt and freshness | `Keep` cannot escape and be reused without complete dependency witness | + +**Implementation rule:** Do not silently "fill" missing source attestations with a caller-supplied generation, sample fixtures, `mailbox_owner() == 0`, or the apparently matching codebook integer. The source provides authoritative snapshot/owner identity; DT64 records and validates bindings without becoming the issuer of physical data identity. + +**Borrow scope:** For an in-process owner with ordinary safe Rust `&self` borrowed lanes and no mutating interior alias, a Quack kernel running while those borrows remain live needs **no redundant per-operation mutation check**. Preserve all input borrows and their source bind identities until the result's immediate consumption; a borrow does not prove external authorization or cross-source snapshot consistency. After the borrow ends, a detached `Vec` `Keep` is only a stale candidate, not an attested intermediate. #1792 falsifies reuse: stale R mask 1,032 selected rows vs fresh R mask 31 after changing a predicate property. Until dependency provenance is complete, recompute under fresh borrow or REFUSE. A compiled *recipe* can be retained; it is not a source-data cache. + +## First executable proof, not a new execution engine + +One read-only source-shaped fixture with **eight sourced predicates**, named independently of the 64-slot proposed registry: + +1. `MEMBER_OF_DIRECT` (AD member or dir-sim membership) +2. `SECURITY_GROUP` (SID-based, dir-sim group property) +3. `MAIL_ENABLED_GROUP` (SMTP-address group property) +4. `GROUP_GRANTS_ROLE` (dir-sim GroupRoles, witnessed grant policy) +5. `EFFECTIVE_ROLE` (dir-sim actors::role_evidence; multiple chain support) +6. `HAS_REMOTE_MAILBOX` (dir-sim recipient type) +7. `HAS_EXO_MAILBOX` (CloudMailboxes unique linked read, NOT licence) +8. `CATS_ENTRY_EMPLOYEE` (SAP CATS FIELDS[5] employee_number, namespaced SAP client/PERNR, NOT automatic AD GUID join) + +First executable slice may include the IAM/Exchange subset and the SAP field as **two independently borrowed, source-scoped views**; it does not assume a real AD↔SAP identity relation. Odoo mapping is planned DT64-2 but not a prerequisite to this minimal algebra proof. All fixtures synthetic/source-shaped, with independently authored original-source scalar oracle and no live account modifications. + +### Phase Q0. Source and lane census, read-only + +Inspect `contract::class_view::FieldMask`, `MailboxSoaView`/`SoaEnvelope` and #1792 E.1–E.9; existing `Quack` `LaneRef`, `Planes<'_>` and demand terminals; dir-sim `ad.rs`, `groups.rs`, `actors.rs`, `cloud.rs`; SAP `schema.rs` and `bind.rs`. Verify which *current* U32/U64/strided lanes can be borrowed and which u16/f32 carriers need an explicitly accounted temporary copy or a separately approved type addition. No invented zero-copy assertion. + +### Phase Q1. Semantic descriptor and binding acceptance + +Build a **lab-only** typed mapping table using source-owned identity, schema/catalogue, permission and source snapshot. Distinguish field **presence**, relation **knownness/validity**, actual **truth** and authorization. Cold-bind a Quack program to the admissible borrowed operands. No new hot-path dispatch, no general-purpose persistent data store, no custom predicate evaluator. If external sources do not expose a pinning contract, mark the fixture as lab owner-borrowed, not production attested. + +### Phase Q2. Three directed query orientations + +Compare the original source semantics, a separately implemented scalar typed-triple oracle, and existing Quack/relalg algebra: +- `(subject, predicate) → objects` +- `(predicate, object) → subjects` +- `(subject, object) → predicates` + +Do not generate the inverse `(object, predicate, subject)` as a new fact. Keep per-predicate typed domain/range and distinguish `direct` versus `derived` group closure. Unknown/permission-denied is not Boolean false. + +### Phase Q3. Optional DR64² economics + +Where repeated queries genuinely need 64×64 source-target relations under one witnessed focus, compare direct borrowed lane + Quack against 512 B DR64² single-predicate bit tile, and baseline CSR/direct walk. Account **prepare + identity map + tile + source read/prefetch + query + output + provenance**. The DR64³ 32 KiB logical cube is **not** a prerequisite or an implementation authorization; NFR-OP-2 remains OPEN. Choose KEEP_DIRECT if construction cost dominates. + +### Phase Q4. Mandatory negative controls and receipts + +| Falsifier | Required result | +|---|---| +| P2 property mutation, old `Keep` retained: 1,032 vs 31 | fresh bind recomputes or explicit REFUSE, NEVER silently stale | +| same source stamp, distinct source identity | refuse foreign alias | +| same ordinal, different codebook generation | refuse or rebuild | +| scope or ACL changed | no unauthorized data leak or old negative reuse | +| direct group vs nested, security SID vs mail-enabled | typed predicates differ | +| role grant with two independent support paths | removing one still yields role | +| EXO cloud identity ambiguous / AwaitingBacksync | no unjustified mailbox "confirmed" | +| missing licence assignment DTO | REFUSE, not inference from mailbox | +| SAP PERNR same digits as Odoo id or AD surrogate | no cross-system join absent identity witness | +| missing field versus known complete negative | UNKNOWN/NOT-OBSERVED vs FALSE | +| swapped `ClassView FieldMask` and DT64 predicate slot | reject type/semantics | +| forward versus reversed triple | oracle discrepancy must bind | +| source snapshot and `QueryReference::at` only | refuse falsely pinned physical reader | + +For each, record independent oracle, actual changed outcome, and **one disable/mutation that reliably makes the test red**. Record inert controls as NOT BINDING. No recorded test result until executed. No claim that a proof capsule can self-certify. + +## Boundaries and stage ownership + +| Artifact or behavior | Owner | +|---|---| +| 64 semantic slot descriptor/cold DTO normalization | DT64-1 / #1794 | +| source identity/read/ACL/completeness/snapshot | DT64-2 / #1795 and owning systems | +| directed algebra, optional DR64² physical view | Quack/relalg owners + DT64-3 / #1796 | +| time, edge dependencies and hypothesis history | existing Thought-Git owner, DT64-4 / #1797 only later | +| numerical method, calibration, fingerprint and certificate | D-NAM/EXO-152, ndarray and numerical audits; DT64-5 / #1798 **consumer only** | +| ordinary compile-time borrow guarantee and stale escaped mask evidence | #1755 and #1792 | +| preparatory global↔local identity admission | EXO-46, open for production | +| actual DR³ third-axis ABI | NFR-OP-2, open | +| durable Thought-Git IDs and authenticated replays | EXO-148, open | + +Numerical method handles may reference **code-space identity, SourceParity vs CertifiedMath, calibration, prepared numerical certificate and source-specific implementation fingerprint**. The 64 DT64 predicate slots do not encode these quantities, and DT64 must never certify TFLM or ONNX correctness. + +## First landing acceptance decision + +**Only a lab/probe proposal**, not code authorization: +- precise current source and lane census; one minimal binding seam identified or explicitly blocked; +- eight candidate predicates grounded; actually admitted subset stated (no false claims for an incomplete source); +- same borrowed input data evaluated through direct source, independent scalar oracle, existing Quack; optional DR64² measured; +- forward/inverse/predicate projections with exact typed and negative controls; +- stale `Keep` 1,032-vs-31 refusal/recompute; +- prepare cost measured; no prohibited hot-path allocation or new runtime. +- conclusion ADOPT / KEEP_DIRECT / DEFER / REJECT backed by measured gate and source receipts. + +**Coordinated governing statement:** DT64 describes what is bound. Quack executes the admitted algebra. A separately prepared numerical certificate determines whether an implementation satisfies an explicitly chosen numeric contract. diff --git a/.claude/plans/d-dt64-quack-borrowed-binding-seam-v1.md b/.claude/plans/d-dt64-quack-borrowed-binding-seam-v1.md new file mode 100644 index 000000000..b6585761f --- /dev/null +++ b/.claude/plans/d-dt64-quack-borrowed-binding-seam-v1.md @@ -0,0 +1,15 @@ +# D-DT64-QB: Compatibility pointer and typed-predicate clarifications + +**Status:** NON-AUTHORITATIVE ADDENDUM / docs only, 2026-10-26. + +**Controlling source:** [D-DT64-Q0: source-attested binding → borrowed Quack execution](d-dt64-q0-borrowed-quack-binding-seam-v1.md). This pointer remains for previously posted EXO-50 and PR review links. Do not maintain a competing source-binding contract here. Changes to the common interface belong in the Q0 document. + +## Clarifications for the eight first-lab catalogue candidates + +The proposed DT64-1 slot labels are: 08 `MEMBER_OF_DIRECT`, 11 `SECURITY_GROUP`, 12 `MAIL_ENABLED_GROUP`, 13 `GROUP_GRANTS_ROLE`, 14 `EFFECTIVE_ROLE`, 17 `HAS_REMOTE_MAILBOX`, 18 `HAS_EXO_MAILBOX`, 32 `CATS_ENTRY_EMPLOYEE`. Numbers are NOT ratified production ABI. + +Slots **11, 12 and 17 are unary classifications**, and must remain unary WHERE/filter predicates. Never manufacture a source→Boolean-object edge for their sake. Three directional `(s,p)→o`, `(p,o)→s`, `(s,o)→p` projections apply to **admitted typed binary relations**, not untyped arbitrary slots. + +The owner-backed immutable in-memory borrow establishes the read window for a resident source; it does NOT imply a specific Lance dataset checkout. A persisted source requires an actual pinned physical reader separately from temporal `QueryReference::at`, and permission/coverage witnesses remain independent of both. + +No code or runtime change is authorized by this note. For source and test gates see the authoritative Q0 document. diff --git a/.claude/prompts/d-dt64-source-first-claude-code-handoff.md b/.claude/prompts/d-dt64-source-first-claude-code-handoff.md new file mode 100644 index 000000000..16cc52f77 --- /dev/null +++ b/.claude/prompts/d-dt64-source-first-claude-code-handoff.md @@ -0,0 +1,48 @@ +# CC handoff — DT64: versioned DTO semantics, relational projection and staged labs + +**Operator scope:** Design the 64-slot DT64 (DTO Tensor 64) adapter and staged PR map. Six docs-only independent draft PRs were created; **do not assume implementation authorized**. + +## Read in this order +1. [#1799](https://github.com/AdaWorldAPI/lance-graph/pull/1799) `.claude/plans/d-dt64-holographic-predicate-capstone-v1.md` and board entry. +2. [#1794](https://github.com/AdaWorldAPI/lance-graph/pull/1794) 64-entry candidate catalogue, classified observed/derived/meta/proposed; no implicit source truth. +3. [#1795](https://github.com/AdaWorldAPI/lance-graph/pull/1795) AD/Entra/Exchange, Odoo and SAP source DTO binding receipts. +4. [#1796](https://github.com/AdaWorldAPI/lance-graph/pull/1796) direct/inverse/SPO predicate query geometry, K3/Bag/Boolean oracles, focus cost. +5. [#1797](https://github.com/AdaWorldAPI/lance-graph/pull/1797) edge×edge support, Thought-Git hypotheses and valid/observed time. +6. [#1798](https://github.com/AdaWorldAPI/lance-graph/pull/1798) native mathematical lowering and ONNX/TFLite leaf / time series. +7. Existing governing docs: `crates/lance-graph-contract/src/class_view.rs` FieldMask presence only, `dir-sim/{ad,actors,cloud,groups}.rs`, `lance-graph-sap/{schema,bind,edge}.rs`, Odoo L14/L12, D-DR3 supersession D-NFC, D-QSP/EXO-126, D-DRMC/EXO-127, #1792 Part E borrowed vs escaped reuse, EXO-46 counted global→focus gate, EXO-148 durable IDs. + +## Task now + +Review six plans for contradictions with **current** source, record each corrected anchor and its owner, then propose the smallest independent fixture based on eight *actually sourced* predicates: direct membership, security group, mail-enabled group, group role grant, effective role, remote mailbox, cloud mailbox, and SAP CATS employee assignment. **Do not** claim license assignment without Entra source DTO or equivalence of SAP PERNR to AD GUID/Odoo employee. + +The lab plan should specify: +- original typed source rows and independent scalar output for `(s,p)->o`, `(p,o)->s`, `(s,o)->p`; +- sealed dataset/source and borrowed input lifetime; +- explicit present/NULL/unread/negative/permission-distinct outcomes; +- complete typed global identity ↔ local focus witness, never equal-number join; +- reversible query access versus claimed holographic information distribution; +- per-arm total cold/prepare/bind/fold/output/provenance cost; +- adversarial cases and independently binding disable controls. + +Return source evidence, falsifier list, blockers, and a D-ide stage decision: ADOPT / KEEP_DIRECT / DEFER / REJECT. A measured 64×64 direct mask may be the right outcome, even if the conceptual 64³ cube is elegant. + +## Decisions not delegated to CC + +NFR-OP-2 physical third axis; whether the predicate registry has 64 immutable public ABI slots; EXO-46 production global→focus admission; whether to encapsulate MailboxSoA public fields or publish source epochs (#1792); source-negative authority and identity crosswalk trust; live SAP/Odoo/AD access; Thought-Git durable `DurableRef`/`ThoughtCommitId` (EXO-148); operator authorization for all production changes. Treat guesses as OPEN, never as decisions. + +No new runtime, interpreter, planner, relalg variant, implicit proof checker, wrapper cache, source writes, auth bypass, licence assignment or LLM guessed metadata. Reuse existing owners and oracles. + +## Coordination + +Read [EXO-50](https://linear.app/exo-red/issue/EXO-50) inbox messages before implementation; post **new** comment using mandatory message envelope and full actual CC session ID. Reference PRs by exact number and stage. Do not edit another agent's message; do not claim the inbox comment is approval. + +Done means plans have an accurate status/evidence matrix, no cross-repo source claims have drifted, and all independently measurable risks have a falsifier. Nothing ships until code PRs are separately approved, tested and merged. + + +## Cross-session Quack handoff: narrower first gate (2026-10-26) + +**Read first:** `.claude/plans/d-dt64-q0-borrowed-quack-binding-seam-v1.md`. This is the controlling description for the FIRST executable lab. DT64 must supply semantic source object/predicate identity, schema+catalogue versions, source owner/physical snapshot identity, global/local coordinate witness, codebook generation as applicable, permission+completeness scope, a live borrowed lane and independently reusable compiled recipe reference. Quack/RelAlg/R2IL/mask-risc execute; ndarray numerical kernels and D-NAM method certificates remain separate. No mandatory tensor/DR³ or new runtime. + +Use catalogue slots **08,11,12,13,14,17,18,32** as candidate eight-predicate fixtures, with sourced dir-sim and SAP references; **11,12,17 are unary classifications**, not fabricated object edges. Three SPO query orientations are tested on genuinely binary relations only. Independent scalar source oracle plus existing dir-sim/SAP tests, distinct UNKNOWN/NULL/FALSE/DENIED, and full bind+prepare+fold+output cost. The P2 **1,032-old vs 31-fresh** stale- Keep counterexample and same-cycle/reset/public-field mutations from #1792 must prevent escaped reuse. Borrowed recipes may outlive source *as recipes*, not as cached masks. No production adapter implementation without a separate operator decision. + +**Post-merge status correction:** #1792 merged to main; its source owner escaped-result authority remains OPEN. Local ClassView FieldMask bit, 64 semantic predicate slot, DR coordinate and Palette256 code are different domains. Stage DT64-QB-S0 census → S1 borrowed-binding lab → S2 directional algebra and optional DR64² cost test → S3 recipe rebind/stale Keep refusal → S4 adoption decision. Do not gate this proof on the proposed Thought-Git or ONNX work.