From c21cfd0dc7474f0459ee86a8655b00ad52af549d Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 31 Oct 2026 21:14:50 +0000 Subject: [PATCH] =?UTF-8?q?D-DT64-7=20=C2=A71d:=20record=20decisions=20O7-?= =?UTF-8?q?O10=20and=20the=20execution=20order?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit O7 concern ranges, O8 host composition, O9 full-classid basis for behaviour lenses, O10 consumer-supplied ClassView with a basis witness; then L4, L1, L5, L2/L3 as separate PRs. STATUS_BOARD rows follow. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01XAqKMNZqKXSaeb9g2ypywF --- .claude/board/STATUS_BOARD.md | 14 ++++++---- ...-7-behaviour-addressing-registration-v1.md | 26 ++++++++++++++++--- 2 files changed, 31 insertions(+), 9 deletions(-) diff --git a/.claude/board/STATUS_BOARD.md b/.claude/board/STATUS_BOARD.md index f8d09a9f0..a7dbc06e2 100644 --- a/.claude/board/STATUS_BOARD.md +++ b/.claude/board/STATUS_BOARD.md @@ -1,16 +1,20 @@ ## D-DT64-7 — behaviour addressing and registration: Frozen, Learned, Explore over one classid (2026-10-31) -Plan: `.claude/plans/d-dt64-7-behaviour-addressing-registration-v1.md`. Docs only. Frozen = compile time, at `0xFFFF :: 0xF###`, registered by DT64 as delegate for `lance-graph-ogar` without `ogar-vocab` (concern by range: relalg `F0__`, XLOG `F1__`, ONNX `F2__`, TFLite `F3__`, proposed); Learned = registered in the `BindStore` at `Domain::AppId :: 0xF###`; Explore = not registered. Right side = ClassView / `WideFieldMask` selection. +Plan: `.claude/plans/d-dt64-7-behaviour-addressing-registration-v1.md`. Docs only. Frozen = compile time, at `0xFFFF :: 0xF###`, registered by DT64 as delegate for `lance-graph-ogar` without `ogar-vocab` (concern by range: relalg `F0__`, XLOG `F1__`, ONNX `F2__`, TF family incl. TFLite `F3__`, SQL-specific `F4__`, Gremlin-specific `F5__`; DECIDED O7); Learned = registered in the `BindStore` at `Domain::AppId :: 0xF###`; Explore = not registered. Right side = ClassView / `WideFieldMask` selection. O7–O10 DECIDED (plan §1d): host composition, full-classid basis for behaviour lenses, consumer-supplied `ClassView` with a basis witness. | D-id | Deliverable | Status | Gate | |---|---|---|---| -| D-DT64-7-0 | plan and board rows | In PR | docs review | +| D-DT64-7-0 | plan and board rows | Shipped (#1898, #1900) | docs review | | D-DT64-7-1 | `classid_canon_compat(0x0000_F123) == 0x0000` falsifier (F5, legacy ids only), with the twin `0xFFFF_F000 → 0xFFFF` | Queued | none | -| D-DT64-7-2 | `BindStore` withdrawal with constraints C1–C8, behind an activation | Queued | O8 | -| D-DT64-7-3 | compile-time Frozen polyfill table at `0xFFFF :: 0xF000`, registered by DT64, parity test against `R2ILVocabulary`; `ogar-loco` / `ogar-r2il` optional in `lance-graph-r2il` | Queued | O7 | -| D-DT64-7-4 | DT64 `CapabilityAuthority` for concept `0xFFFF` + the composing authority | Queued | O2 (OGAR owner), O8 | +| D-DT64-7-2 | `BindStore` withdrawal with constraints C1–C8, behind an activation | Queued | after L2/L3 | +| D-DT64-7-3 | compile-time Frozen polyfill table at `0xFFFF :: 0xF000`, registered by DT64, parity test against `R2ILVocabulary`; `ogar-loco` / `ogar-r2il` optional in `lance-graph-r2il` | In part: positional lens shipped (#1899); OGAR still on the path | — | +| D-DT64-7-4 | DT64 `CapabilityAuthority` for concept `0xFFFF` + host-side composing authority (O8) | Queued | O2 (OGAR owner) | | D-DT64-7-6 | polyglot alias views (C, Rust, Java, SQL) over one Frozen algebra: words bound by position, names as per-language `ClassView` labels; `prepare`/`run` timed in ns | Queued | D-DT64-7-3, O7 | | D-DT64-7-7 | semantic union census of operator sets (ONNX, TF, TFLite, GGML, Burn IR, R2IL, XLOG) after aliasing; decides the `0xF0__` layout and the tensor ranges | Queued | counts recounted from source | +| D-DT64-7-L4 | production alias views (R2IL, SQL, Quack) from `POLYFILL` | In progress | — | +| D-DT64-7-L1 | full-classid basis for behaviour lenses (contract `ClassView` accessor) | Queued | after L4 | +| D-DT64-7-L5 | consumer `ClassView` + immutable basis witness at registration | Queued | after L1 | +| D-DT64-7-L2 | host composition of DT64 and OGAR authorities + views, with activation checks (L3) | Queued | after L5 | | D-DT64-7-5 | the versioned global → local selection table (D-LITHO Q5) | Queued | O5 (DR/DT owner) | ## D-MIST-NATIVE — Mistaber's Kripke holdings over the DR64 relation register (2026-10-30) diff --git a/.claude/plans/d-dt64-7-behaviour-addressing-registration-v1.md b/.claude/plans/d-dt64-7-behaviour-addressing-registration-v1.md index 918579b7e..7ae1c3c18 100644 --- a/.claude/plans/d-dt64-7-behaviour-addressing-registration-v1.md +++ b/.claude/plans/d-dt64-7-behaviour-addressing-registration-v1.md @@ -96,6 +96,24 @@ WORKING-MODEL items (not started; each names the decision it needs): | L4 | Ship the polyfill lens's language alias views (R2IL, SQL, Quack) as a library surface derived from the `POLYFILL` table (#1899), instead of test-only views. | — | | L5 | How a consumer codebook hands its labels over: the consumer implements `ClassView` itself (as `CatsSchema` does), or the authority returns label rows with the activation. The second changes `Activation`; the first needs no contract change. | O10 | +### 1d. Decisions O7–O10 (operator, 2026-10-31, after #1898–#1900 merged) + +| # | decision | +|---|---| +| O7 | **Concern ranges.** `F0__` shared relational algebra (relalg / mask-risc polyfill); `F1__` XLOG-exclusive semantics, only after promotion; `F2__` ONNX; `F3__` the TensorFlow family including TFLite (shared concern, not necessarily shared lenses: equal names do not imply equal semantics); `F4__` genuine SQL-specific semantics (for example `NULL`); `F5__` genuine Gremlin-specific semantics; `F6__ ..= FF__` reserved. SQL and Gremlin use the shared algebra wherever semantics are exactly equal; `F4__`/`F5__` gain words only for a measured gap. Aliases never mint duplicate operators. No implementation commitment for unmeasured operator families. | +| O8 | **Composition in the host.** DT64 owns the `0xFFFF` authority. It is composed with OGAR's authority in the host / application assembly layer, never by a dependency from `lance-graph-ogar` to `lance-graph-dt64`. The routing policy is one tested piece, not reimplemented per consumer. | +| O9 | **Full-classid basis for behaviour lenses.** A behaviour lens's field basis resolves by the full `u32` classid, through a backward-compatible, lens-specific `ClassView` accessor. Data-class lookup and the `0xC401` R2IL reading keep their current resolution. An unknown behaviour lens fails closed; it never inherits the concept's data-field basis. `AlgebraRef.word`, `WideFieldMask` and the 256-position limit are not widened. 256 is the limit per lens, not per concern. | +| O10 | **The consumer supplies its own `ClassView`** from its codebook. No label arrays are added to `Activation`. Activation alone does not establish label provenance: registration associates the authorized owner and activation with a versioned schema/basis witness, and refuses a missing activation, a mismatching basis, a stale revision and unauthorized ownership. An arbitrary caller-supplied view is not trusted silently. | + +**Execution order** (each a separate PR; each step test-first, with a disable run and a backward-compatibility twin): + +1. **L4:** production alias views (R2IL, SQL, Quack) derived from the existing `POLYFILL` table. No parallel opcode table, no change to the `0xC401` path. +2. **L1:** two behaviour lenses with the same left half, different right halves and different bases resolve independently; a consumer data class and a behaviour lens sharing a left half do not cross-read. The red-first case: `0xFFFF_F000` with 17 fields and `0xFFFF_F200` with a different count must not both read `fields(0xFFFF)`. +3. **L5:** the smallest consumer-`ClassView` and immutable basis-witness seam; `Activation` unchanged. +4. **L2/L3:** host composition and explicit activation checks; DT64 and OGAR stay independent. + +Preserved throughout: the `0xC401` name-bound reading, the `FnIndex` opcode contract, positional polyfill semantics, refusal on wrong aliases, and the existing integration tests. Not introduced: a new runtime, a second authoritative registry, premature removal of the OGAR dependency, automatic XLOG promotion, a shared data-field/algebra-field namespace. + --- ## 2. The classid, both sides @@ -196,10 +214,10 @@ Each constraint is a test that fires plus a twin that stays silent, on non-trivi | O4 | Right-side `0xF###` selection: does one value name one stored selection over the existing 256-position basis, or one position in a wider basis (which widens `WideFieldMask` and `AlgebraRef.word` past `u8`)? D7' points to the first. | operator | | O5 | D-LITHO Q5: which lance-graph table versions the global → local selection, and its row shape (WORKING-MODEL: versions = frame revisions, one row per local position, read through a ClassView, selected by a `WideFieldMask`; it also holds the stored selections of D7'). | DR/DT owner | | O6 | Whether `recursive::trace` (#1896) stays as a semi-naive test oracle or is removed; either way it is documented as not the traceroute. | operator | -| O7 | The concern ranges inside `0xF###` (§1a table): confirm the digit-per-concern split and the order. Per §1b, languages that only rename the shared algebra become alias views; which of SQL, Gremlin and XLOG keep a range? Does full TensorFlow share TFLite's range, or take its own? | operator | -| O9 | Behaviour-lens basis key (L1): keep the left-half key (256 words per left side; a large operator set takes several left sides), or key behaviour lenses by the full classid (a contract `ClassView` change). | operator | -| O10 | Label handover from a consumer codebook (L5): the consumer's own `impl ClassView`, or label rows returned by the authority with the activation. | operator | -| O8 | Where the composing authority (and the composed `ClassView`, L2) lives: in `lance-graph-ogar` (which then depends on `lance-graph-dt64`), or in the binary that holds both authorities. | operator | +| O7 | The concern ranges inside `0xF###` (§1a table): confirm the digit-per-concern split and the order. Per §1b, languages that only rename the shared algebra become alias views; which of SQL, Gremlin and XLOG keep a range? Does full TensorFlow share TFLite's range, or take its own? | **DECIDED §1d** | +| O9 | Behaviour-lens basis key (L1): keep the left-half key (256 words per left side; a large operator set takes several left sides), or key behaviour lenses by the full classid (a contract `ClassView` change). | **DECIDED §1d** | +| O10 | Label handover from a consumer codebook (L5): the consumer's own `impl ClassView`, or label rows returned by the authority with the activation. | **DECIDED §1d** | +| O8 | Where the composing authority (and the composed `ClassView`, L2) lives: in `lance-graph-ogar` (which then depends on `lance-graph-dt64`), or in the binary that holds both authorities. | **DECIDED §1d** | ---