From 813fb2a60036691a1163fcf8812e10ddaa65a9fe Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 18 Jul 2026 19:21:12 +0000 Subject: [PATCH] =?UTF-8?q?docs(plan):=20correct=20D-TRI-1=20classid=20spe?= =?UTF-8?q?c=20=E2=80=94=20cognitive=20task=20types=20are=20already=20froz?= =?UTF-8?q?en=20atoms?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The #719 spec proposed a new Cognition 0x03 ConceptDomain with a cognitive_ CODEBOOK block. That duplicated types that already exist: the cognitive task types (inference/deduction/induction/abduction/ counterfactual/extrapolation/syllogism/synthesis/fan-out) are global frozen atoms in holograph::dntree — epistemic verbs 72-95 (INFERS=74, DEDUCES=82, INDUCES=83, ABDUCES=84, PREDICTS=89, HYPOTHESIZES=81) and frameworks 0x80-0x8F (COUNTERFACTUAL=0x84, ABDUCTION=0x85, CAUSALITY=0x83); syllogism is the shipped NARS syllogize() op; synthesis/fan-out are orchestration ops. Corrections: - §2 rewritten: reference the frozen atoms, never mint a Cognition domain; byte 0x03 stays reserved (RESERVE-DON'T-RECLAIM). A thinking/task row carries classid=its domain, task-type=a frozen atom index in a lane, thinking-lane materialisation=a read-mode property (ValueSchema::Thinking). - §2a added: persona/play-style modeling is per-consumer opt-in + its own mint (chess play-style nice-to-have; business consumers not conform). - §0c: cognitive_* and cognitive_board classid rows removed; only chess 0x06 remains a concept mint; BoardAggregates@188 is a value tenant only. - §0/§4/§5/§6/§7: Cognition origination removed; community-id does not mint (S1 retracted by #722); one open knob left (BoardAggregates width). No bytes were ever minted (the spec was a proposal), so this is a pre-mint correction with zero on-chain reclaim. Records E-COGNITIVE-ATOMS-ALREADY-FROZEN (EPIPHANIES prepend) and updates the D-TRI-1 STATUS_BOARD row. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01Awg6TXocHcwTtc6eGsHcdD --- .claude/board/EPIPHANIES.md | 11 + .claude/board/STATUS_BOARD.md | 2 +- .claude/plans/dtri1-classid-mint-spec-v1.md | 257 ++++++++++++-------- 3 files changed, 171 insertions(+), 99 deletions(-) diff --git a/.claude/board/EPIPHANIES.md b/.claude/board/EPIPHANIES.md index 9c983711d..023df2e99 100644 --- a/.claude/board/EPIPHANIES.md +++ b/.claude/board/EPIPHANIES.md @@ -19,6 +19,17 @@ - **What was wrong.** The probe collapsed typed structure — every relation is its own context:role plane — into one weight-summed adjacency, partitioned the blob, and reported a scalar agreement as a decision. Structure ≠ similarity; the `(8:8)`/ClassView substrate exists to enforce exactly that, and the probe violated it *after* the rule had been stated. The "DISTINCT → community-id earns the mint" verdict was retracted; the whole probe line is now removed rather than iterated. - **Stands on its own (unaffected):** the context:role traversal-tissue doctrine (`E-CONTEXT-ROLE-TISSUE-1`), the jc-scientific / empirical boundary (`E-EMPIRICAL-VS-SCIENTIFIC-JC-1`), the G0 harness (#716, no jc). The community≡basin identity (`E-GRAPHRAG-DGR3B-1`) is an UNRUN hypothesis again — there is no valid probe for it in-tree. - **Rule (operator, reinforced):** no empirical probe of mine sits next to or dev-depends on jc. A community/basin agreement, if ever measured, is decomposed per typed plane and does not borrow jc's adjacency. +## 2026-07-18 — E-COGNITIVE-ATOMS-ALREADY-FROZEN — the cognitive task types (inference/deduction/induction/abduction/counterfactual/extrapolation/syllogism/synthesis/fan-out) are ALREADY global frozen atoms in `holograph::dntree` — the #719 "Cognition `0x03` ConceptDomain" was a rediscovery-tax error; corrected, byte `0x03` stays reserved, and the only real concept mint in the D-TRI-1 batch is chess `0x06` + +**Status:** CORRECTED (spec `.claude/plans/dtri1-classid-mint-spec-v1.md` §2/§2a rewritten this commit; no bytes were ever minted — the #719 spec was a proposal, so this is a pre-mint correction with zero on-chain reclaim). Operator-taught 2026-07-18. + +- **The error:** #719 §2 proposed a new `ConceptDomain::Cognition` at byte `0x03` with a `cognitive_` CODEBOOK block (`cognitive_inference 0x0304`, `cognitive_deduction 0x0305`, …). That duplicated types that **already exist**. +- **Operator ruling (verbatim):** *"Cognitive atoms and induction abduction synthesis inference deduction extrapolation syllogism are global part of the frozen. They were part of the previous lance-graph PR of the other session if you read them."* +- **Where they actually live (`crates/holograph/src/dntree.rs`, verified this session):** Epistemic verbs 72–95 — `INFERS=74`, `HYPOTHESIZES=81`, `DEDUCES=82`, `INDUCES=83`, `ABDUCES=84`, `PREDICTS=89`, `EXPECTS=90`; frameworks 0x80–0x8F — `NARS=0x80`, `CAUSALITY=0x83`, `COUNTERFACTUAL=0x84`, `ABDUCTION=0x85`. Syllogism = the shipped NARS `syllogize()` op (`lance-graph-osint` `p5_syllogize`); synthesis + fan-out = orchestration/compose ops, not single atoms. +- **The corrected model:** a thinking/task row carries **classid = its domain** (chess `0x06`, OSINT `0x07`, …), **task-type = a frozen atom index** in a row lane (`MetaColumn`/triangle), and **thinking-lane materialisation = a read-mode property** (routes to `ValueSchema::Thinking`, §5). No new domain expresses "this is a task." Byte `0x03` stays **unassigned/reserved** (RESERVE-DON'T-RECLAIM — not claimed as a side effect of the correction). +- **Persona corollary (operator, same ruling):** persona/play-style modeling is **per-consumer opt-in + its own mint**, never a global spine concept. Chess play-style = nice-to-have (a chess consumer may opt in); business consumers (smb-office/woa/medcare) = **NOT business-logic-conform** — no persona lanes on their thinking rows. Matches `I-VSA-IDENTITIES` Layer-2 (persona is a consumer role catalogue, not substrate). +- **Batch shrinks to one concept mint:** with Cognition removed AND community-id not minting (S1 retracted by #722), the D-TRI-1 batch is **chess `0x06`** (concept) + **BoardAggregates@188** (value tenant, no classid) + the graphrag `D-GR-5` doc-seam classid (other session's). +- **Process lesson:** the workspace rule "proposing a type that already exists is a 30-turn rediscovery tax — grep the frozen tables first" applies to CODEBOOK concepts as much as to Rust types. `dntree.rs` is the frozen-atom registry; consult it before proposing any cognitive/verb concept. Cross-ref `E-D-TRI-2-MINT-BLOCKED-1` (named the pre-existing `D-TSC-2` "OGAR cognition-domain mint" — now retired as an error), #719 (the spec corrected), #722 (S1 retraction). ## 2026-07-17 — E-CONTEXT-ROLE-TISSUE-1 — operator ruling: `part_of:is_a` ≡ **context:role**, one polymorphic `6×(8:8)` register with TWO orientations — VERTICAL (stacked exactness = HHTL family identity, q2-FMA-helix-attested) and HORIZONTAL (6-context / episodic-witness `basin:role`, eventual) — reused with classid+appid+ClassView/WideFieldMask as the CONNECTING-TISSUE TRAVERSAL for screens, documents, time series, and AriGraph diff --git a/.claude/board/STATUS_BOARD.md b/.claude/board/STATUS_BOARD.md index db1efda15..670b5d30e 100644 --- a/.claude/board/STATUS_BOARD.md +++ b/.claude/board/STATUS_BOARD.md @@ -22,7 +22,7 @@ Plan: `.claude/plans/triangle-tenants-gestalt-separation-v1.md`. Design shipped; | D-id | Title | Repo | Status | Evidence | |---|---|---|---|---| -| D-TRI-1 | Triangle tenant spec (Frozen/Learned/Explore, 12 slots x palette256) through envelope-auditor T1-T6, behind the batched mint | lance-graph | **VALUE-TENANT HALF MERGED (#717, main 74d16f92)** — 3 lanes `ValueTenant::{FrozenStyle=10,LearnedStyle=11,ExploreStyle=12}` U8×12 at row_offset 152/164/176; `Full`-only; zero ENVELOPE_LAYOUT_VERSION bump; `NodeRow::{style_lane,set_style_lane,triangle_for}`; auditor LAYOUT-CLEAN; Codex P2 fixed. **classid half = SPEC READY** (`dtri1-classid-mint-spec-v1.md`): chess `0x06` + Cognition `0x03` tasks + BoardAggregates@188 byte-precise, **gated on the other session's S1 (community-id) + the doc-W4 batched-mint council** (never solo). Open knobs: Cognition byte 0x03, BoardAggregates width. | plan §1/§5/§6, `dtri1-classid-mint-spec-v1.md` | +| D-TRI-1 | Triangle tenant spec (Frozen/Learned/Explore, 12 slots x palette256) through envelope-auditor T1-T6, behind the batched mint | lance-graph | **VALUE-TENANT HALF MERGED (#717, main 74d16f92)** — 3 lanes `ValueTenant::{FrozenStyle=10,LearnedStyle=11,ExploreStyle=12}` U8×12 at row_offset 152/164/176; `Full`-only; zero ENVELOPE_LAYOUT_VERSION bump; `NodeRow::{style_lane,set_style_lane,triangle_for}`; auditor LAYOUT-CLEAN; Codex P2 fixed. **classid half = SPEC READY, CORRECTED 2026-07-18** (`dtri1-classid-mint-spec-v1.md`; `E-COGNITIVE-ATOMS-ALREADY-FROZEN`): the **only real concept mint is chess `0x06`**; the proposed "Cognition `0x03` domain" was a rediscovery error (cognitive task types are already frozen atoms in `holograph::dntree` — INFERS=74/DEDUCES=82/INDUCES=83/ABDUCES=84/COUNTERFACTUAL=0x84/syllogize()), byte `0x03` stays reserved. BoardAggregates@188 = value tenant (no classid). Persona = per-consumer opt-in mint (chess-yes / business-no), not this batch. **Gated on the doc-W4 batched-mint council** (never solo); community-id does NOT mint (S1 retracted by #722). One open knob: BoardAggregates width. | plan §1/§2/§2a/§5/§6, `dtri1-classid-mint-spec-v1.md` | | D-TRI-2 | 12-family vs 12-step reading agreement: jc battery (ICC, Pearson/Spearman, Cronbach alpha) over real shader cycles; collapse only on measured identity | lance-graph | Queued | plan §4, §6 | | D-TRI-3 | Nail->hammer dispatch probe: object resonance -> atom retrieval vs inverted baseline; no inverted read path exists structurally | lance-graph | Queued | plan §3, §6 | | D-TRI-4 | Chess<->thinking transfer measurement (validity + reliability) — the quarantine-lift gate | lance-graph + stockfish-rs | Queued | plan §5, §6 | diff --git a/.claude/plans/dtri1-classid-mint-spec-v1.md b/.claude/plans/dtri1-classid-mint-spec-v1.md index 5a9abfabf..e5e309a78 100644 --- a/.claude/plans/dtri1-classid-mint-spec-v1.md +++ b/.claude/plans/dtri1-classid-mint-spec-v1.md @@ -1,16 +1,27 @@ # D-TRI-1 classid-half — batched OGAR mint spec — v1 -> **Status:** SPEC (ratifiable), 2026-07-17. The value-tenant half of -> D-TRI-1 shipped (#717, autopoiesis triangle). This doc specs the -> **classid half** — the remaining batched mint — to the **handoff -> boundary**. It is byte-precise **except two open ratification knobs** -> (§0: the Cognition domain byte `0x03`, and the BoardAggregates lane -> width) — so mechanical council execution is **conditional on ratifying -> those two decisions**; everything else (chess `0x06`, the concept -> layouts, the read-mode contract, the execution sequence) is -> execution-ready. **No bytes land with this doc.** Every id below is a -> PROPOSAL for council/operator ratification (RESERVE-DON'T-RECLAIM = -> permanent once minted). +> **Status:** SPEC (ratifiable), 2026-07-17; **corrected 2026-07-18** +> (`E-COGNITIVE-ATOMS-ALREADY-FROZEN`). The value-tenant half of D-TRI-1 +> shipped (#717, autopoiesis triangle). This doc specs the **classid +> half** — the remaining batched mint — to the **handoff boundary**. +> +> **CORRECTION (2026-07-18):** the original v1 proposed a **Cognition +> `0x03` ConceptDomain** for cognitive task types (inference / deduction / +> induction / abduction / synthesis / extrapolation / syllogism / fan-out). +> That was a **rediscovery-tax error** — those are **already global frozen +> atoms** in `holograph::dntree` (epistemic verbs 72–95: INFERS=74, +> DEDUCES=82, INDUCES=83, ABDUCES=84, …; frameworks 0x80–0x8F: +> COUNTERFACTUAL=0x84, ABDUCTION=0x85, CAUSALITY=0x83; NARS `syllogize()` +> is a shipped operation). §2 is rewritten to **reference** those atoms, +> never mint them. The **only real concept mint** left in this batch is +> **chess `0x06`**; BoardAggregates is a **value tenant** (§3), not a +> concept domain. +> +> One knob remains open for the operator/council: the **BoardAggregates +> lane width** (§3). Everything else (chess `0x06`, the read-mode +> contract, the execution sequence) is execution-ready. **No bytes land +> with this doc.** Every id below is a PROPOSAL for council/operator +> ratification (RESERVE-DON'T-RECLAIM = permanent once minted). > **Plan:** `triangle-tenants-gestalt-separation-v1.md` §5 (mint discipline). > **Index:** `.claude/board/INTEGRATION_PLANS.md` (prepended same commit). @@ -23,21 +34,24 @@ probe** (`P-COMMUNITY-BASIN-AGREE`) are the other session's. Per the 2026-07-17 synergy demarcation (S5 = one mint train): - **Prepped to the boundary (this doc):** the byte-precise mint spec for - MY inputs — chess `0x06`, the Cognition task domain, BoardAggregates. + MY inputs — **chess `0x06`** (the only concept mint) + **BoardAggregates** + (a value tenant, §3). Cognitive task types are NOT minted — they are + existing frozen atoms (§2). - **Gate (other session, before execution):** **S1** decides whether a `community-id` discriminant joins the batch. If S1 measures *identity* (`part_of:is_a ≡ Leiden ≡ episodic basin`, the operator's ruling), - community-id NEVER mints and the batch is exactly the three groups - below + the graphrag `D-GR-5` doc-seam classid. If S1 measures - *distinct*, one more concept row folds in. + community-id NEVER mints and the batch is exactly chess `0x06` + + BoardAggregates + the graphrag `D-GR-5` doc-seam classid. If S1 measures + *distinct*, one more concept row folds in. (S1 was subsequently retracted + by #722 — structure≠similarity — so community-id does not mint; see §6.) - **Execution (council, never solo):** OGAR originates → lance-graph mirrors with parity tests → read-modes land. One PR pair, audited by `baton-handoff-auditor` at the OGAR↔lance-graph seam. -**Two knobs still open for the operator/council** (flagged, not -assumed): (a) the **Cognition domain byte** — `0x03` proposed (next free; -Unassigned spans `0x03`–`0x06`, `0x10`+), the operator named this the one -they may want to set; (b) the **BoardAggregates lane width** (§3). +**One knob still open for the operator/council** (flagged, not assumed): +the **BoardAggregates lane width** (§3). (The former Cognition-domain-byte +knob is **removed** — see the correction header; cognitive task types are +frozen atoms, not a domain to mint.) --- @@ -55,19 +69,28 @@ classid or a read-mode.** | concept (u16) | classid (`canon<<16 \| 0x0000`) | read-mode `{tail, value_schema, edge_codec}` | |---|---|---| -| `cognitive_task` `0x0308` | `0x0308_0000` | `{V3, Thinking (§5), CoarseOnly}` — the generic task row | -| `cognitive_fanout`…`cognitive_syllogism` `0x0301..0x0307` | `0x0301_0000`..`0x0307_0000` | `{V3, Thinking, CoarseOnly}` — the 7 task-type rows | | `chess_episode` `0x0601` | `0x0601_0000` | `{V3, Compressed (Fingerprint+residues: FEN print + move edges), CoarseOnly}` — quarantined corpus | | `chess_candidate`/`iteration`/`event` `0x0602..0x0604` | `0x0602_0000`..`0x0604_0000` | `{V3, Compressed, CoarseOnly}` | -| **board row** `cognitive_board` `0x0309` (proposed) | `0x0309_0000` | `{V3, Board (Cognitive ∪ BoardAggregates lane @188), CoarseOnly}` | -**BoardAggregates is two things** (CodeRabbit): a value **tenant** (the -lane @ row_offset 188, §3) AND a **board-row classid** whose schema -materializes that lane. The board concept (`cognitive_board 0x0309`) is -proposed in the Cognition domain; the council confirms the slot. Its -read-mode MUST NOT fall through to `ReadMode::DEFAULT` (Addendum-12a T3). -The `appid 0x0000` choice and the chess `Compressed`/board `Board` schemas -are proposals for council ratification (added to the §0 knob list). +**No `cognitive_*` classid rows** (correction 2026-07-18). Cognitive task +types are frozen atoms (§2), not concepts — a thinking-row does NOT carry a +`cognitive_` classid. The task-TYPE is an **atom index** stored in a +row lane (`MetaColumn` / triangle lane), and the row's **classid is its +domain** (chess `0x06`, OSINT `0x07`, …). Whether that row materialises the +triangle lanes is a **read-mode property** — a domain class carrying +thinking lanes routes to `ValueSchema::Thinking` (§5), entity classes keep +`Cognitive`. No new domain is needed to express "this row is a thinking +task." + +**BoardAggregates is a value tenant, not a classid** (correction +2026-07-18). The lane @ row_offset 188 (§3) lands as an additive +`ValueTenant` — exactly the recipe #717 shipped for the triangle. The +earlier "board-row `cognitive_board 0x0309`" proposal lived in the deleted +Cognition domain and is **de-scoped**: a board-materialising read-mode +attaches to an existing mailbox/kanban class when one is wired, not to a +newly-minted Cognition concept. Only the chess block above is a real +concept mint this batch; `appid 0x0000` (canon-only, no per-app skin) and +the chess `Compressed` schema are the proposals for council ratification. ## §1 Chess domain `0x06` (operator-ruled exact byte) @@ -94,46 +117,71 @@ pull via `contract::ogar_codebook::canonical_concept_id`, never a local copy. --- -## §2 Cognition task domain `0x03` (proposed byte; operator knob) +## §2 Cognitive task types — ALREADY FROZEN ATOMS (do NOT mint a domain) -Operator ruling: *"Tasks like fan-out counterfactual synthesis inference -deduction extrapolation syllogism etc are canonical."* These are cognitive -**task TYPES** — canonical OGAR concepts (domain content like "Queen's -gambit" is NOT). They are the Tasks-SoA task-row classids' concepts. +> **Correction 2026-07-18 (`E-COGNITIVE-ATOMS-ALREADY-FROZEN`).** The v1 +> draft proposed a `Cognition 0x03` `ConceptDomain` with a `cognitive_` +> CODEBOOK block. **DELETED.** Operator ruling: *"Cognitive atoms and +> induction abduction synthesis inference deduction extrapolation syllogism +> are global part of the frozen. They were part of the previous lance-graph +> PR of the other session if you read them."* They exist today in +> `crates/holograph/src/dntree.rs` as frozen atoms — minting a parallel +> `0x03` concept domain would be the exact 30-turn rediscovery tax the +> workspace rules warn against (LATEST_STATE § "Proposing a type that +> already exists"). -**`ogar-vocab` `ConceptDomain`:** add `Cognition` variant; -`canonical_concept_domain`: `0x03 => ConceptDomain::Cognition` (**pending -operator confirm of the byte**). +**Where each task type already lives** (frozen — reference by index, never +re-mint): -**CODEBOOK block:** - -| concept | id | verb | +| task type | frozen atom | home in `dntree.rs` | |---|---|---| -| _(reserved)_ | `0x0300` | **Cognition domain root — `CC==0x00`, NOT a CODEBOOK entry** (`ogar_codebook.rs:4-6` convention: `CC==0x00` is the domain root; `canonical_concept_domain` returns the tag). Every promoted concept starts at `0x??01`. | -| `cognitive_fanout` | `0x0301` | fan-out | -| `cognitive_counterfactual` | `0x0302` | counterfactual | -| `cognitive_synthesis` | `0x0303` | synthesis | -| `cognitive_inference` | `0x0304` | inference | -| `cognitive_deduction` | `0x0305` | deduction | -| `cognitive_extrapolation` | `0x0306` | extrapolation | -| `cognitive_syllogism` | `0x0307` | syllogism | -| `cognitive_task` | `0x0308` | the generic Tasks-SoA task-row concept (an explicit slot, never the reserved root) | - -**Codebook-root convention (Codex P2 on #719, applied):** slot `CC==0x00` -is the reserved domain root in every `0xDDCC` block — never a concept. The -chess block (§1) already starts at `0x0601`; this Cognition block now does -too (`0x0301`), with the generic task-row concept at `0x0308`. The council -must NOT emit a `0x??00` CODEBOOK row for any domain. - -**Note on the noun/verb axis:** these are verb-shaped, but they enter the -codebook as concept **nouns** (`cognitive_`) — the OGAR codebook is -a concept registry keyed by `u16`; the verb catalogue (rung-2 144-verb -atoms, `persona-vs-rung-ladder.md`) is a SEPARATE storyline and is NOT -what this mint touches. The task-row classid resolves to the SoA row -(topic/angle/thinking/planner columns), not to a verb atom. Open item: if -the council wants the tasks aligned to the 144-verb rung-2 atoms instead -of standalone concepts, that's a design fork to settle before mint (record -on the board, do not guess). +| inference | `DnVerb::INFERS` = **74** | Epistemic verbs (72–95) | +| deduction | `DnVerb::DEDUCES` = **82** | Epistemic verbs | +| induction | `DnVerb::INDUCES` = **83** | Epistemic verbs | +| abduction | `DnVerb::ABDUCES` = **84** (verb) / `Framework::ABDUCTION` = **0x85** | Epistemic verbs / frameworks 0x80–0x8F | +| extrapolation | `DnVerb::PREDICTS` = **89** / `EXPECTS` = **90** | Epistemic verbs | +| hypothesis | `DnVerb::HYPOTHESIZES` = **81** | Epistemic verbs | +| counterfactual | `Framework::COUNTERFACTUAL` = **0x84** (+ `CausalEdge64` counterfactual inference type) | frameworks 0x80–0x8F | +| synthesis | an **orchestration/compose op** (bundle/merge across sources) — not a single atom; the OrchestrationBridge composition path | — | +| syllogism | a **shipped NARS operation** — `syllogize()` (`lance-graph-osint` `p5_syllogize`) | NARS = 0x80 framework | +| fan-out | an **orchestration op** (parallel dispatch), not a concept | — | + +**Consequence for the Tasks-SoA row.** A thinking/task row does NOT carry a +`cognitive_` classid. It carries: +- **classid = its domain** (chess `0x06`, OSINT `0x07`, ProjectMgmt `0x01`, + …) — the row is *about* something in a domain; +- **task-type = a frozen atom index** stored in a row lane (`MetaColumn` / + the triangle lanes from #717) — read the atom, not a classid; +- **thinking-lane materialisation = a read-mode property** — a domain class + that carries thinking lanes routes to `ValueSchema::Thinking` (§5); the + atom index rides those lanes. No new domain expresses "this is a task." + +**No `ConceptDomain::Cognition`, no `canonical_concept_domain` `0x03` arm, +no `cognitive_*` CODEBOOK block.** Byte `0x03` stays **unassigned/reserved** +(RESERVE-DON'T-RECLAIM — do not claim it as a side effect of this +correction). The verb catalogue (rung-2 144-verb atoms, +`persona-vs-rung-ladder.md`) is the storyline these atoms belong to; this +batch references it, never re-mints it. + +## §2a Persona modeling — per-consumer opt-in + its own mint (operator ruling 2026-07-18) + +Operator ruling: *"persona modeling when framed with chess is probably fine +but should require per consumer opt-in and minting. For chess related play +style is probably nice to have; for smb woa etc persona modeling is not +business logic conform."* + +- **Persona / play-style is NOT part of this batch and NOT a global mint.** + It is a **per-consumer opt-in** capability with its **own** mint, decided + by that consumer. +- **Chess:** play-style persona is a **nice-to-have** (a chess-consumer may + opt in and mint its own persona concept for `D-TRI-4/5` play-style + transfer). Not required for the chess `0x06` corpus mint (§1). +- **Business consumers (smb-office, woa, medcare, …):** persona modeling is + **NOT business-logic-conform** — do NOT wire persona lanes into their + thinking rows. Their rows stay strictly domain + task-atom; no persona. +- This keeps persona off the shared spine (per `I-VSA-IDENTITIES` Layer-2: + persona is a role catalogue a consumer opts into, not a substrate concept) + and out of the D-TRI-1 batch entirely. --- @@ -146,34 +194,40 @@ contiguous offset **188** (operator ruling put the triangle first). It is zero-version-bump discipline as the triangle, gated by `v3-envelope-auditor`). -**Width — the open knob (§0b).** Addendum-12a left it "waits on the mint." +**Width — the open knob (§0).** Addendum-12a left it "waits on the mint." Per-mailbox board aggregates (kanban column counts, WIP, cycle stats) fit a compact fixed lane; **propose `U8 × 8`** (`[188,196)`) — 8 KanbanColumn counters as saturating u8, matching the KanbanColumn DAG width. Ends at -196 ≤ 480. Council/W2a-owner confirms the field set before mint. Its -classid + `BUILTIN_READ_MODES` board-row entry ride this batch (fall- -through to `ReadMode::DEFAULT` is FORBIDDEN — Addendum-12a T-gate). +196 ≤ 480. Council/W2a-owner confirms the field set before mint. This lane +lands as a pure **additive `ValueTenant`** (like the triangle in #717) — +**no new board-row classid** rides this batch (the former `cognitive_board +0x0309` proposal lived in the now-deleted Cognition domain and is +de-scoped, §0c). When a board-materialising read-mode is later wired, it +attaches to an existing mailbox/kanban class — and, per Addendum-12a T3, +must NOT fall through to `ReadMode::DEFAULT`. --- ## §4 Execution sequence (council, post-S1 — never solo) -1. **OGAR originates** (`ogar-vocab/src/lib.rs`): add the `Chess` + - `Cognition` `ConceptDomain` variants, the `canonical_concept_domain` - arms (`0x06`, `0x03`), the CODEBOOK blocks (§1, §2), and `class_ids` - module constants. One OGAR PR. +1. **OGAR originates** (`ogar-vocab/src/lib.rs`): add the **`Chess`** + `ConceptDomain` variant, the `canonical_concept_domain` arm (`0x06`), + the chess CODEBOOK block (§1), and `class_ids` module constants. One + OGAR PR. **No `Cognition` variant, no `0x03` arm** (§2 — frozen atoms). 2. **lance-graph mirrors** (`lance-graph-contract::ogar_codebook`): - wire-compatible copy of the same variants + arms + ids, with the + wire-compatible copy of the `Chess` variant + arm + ids, with the two-sided **parity tests** (the drift fuse — `canonical_concept_domain` - agreement, id-uniqueness, `0x06→Chess`/`0x03→Cognition` pins). + agreement, id-uniqueness, `0x06→Chess` pin). 3. **Read-modes** (`canonical_node::BUILTIN_READ_MODES`): a - `ReadMode` entry for the chess-episode classids, the Tasks-SoA task-row - classid, and the BoardAggregates board classid — each with its - `{tail_variant, value_schema, edge_codec}`. **No new classid falls - through to `ReadMode::DEFAULT=Full`** (T3 gate). + `ReadMode` entry for the four chess-episode classids + (`0x0601..0x0604`), each with its `{tail_variant, value_schema, + edge_codec}`. **No new classid falls through to + `ReadMode::DEFAULT=Full`** (T3 gate). (No cognitive/board classid — §2, + §3.) 4. **BoardAggregates tenant** (`canonical_node`): `ValueTenant::BoardAggregates = 13` @ row_offset 188, added to `Full`, field-isolation matrix test — - the same recipe #717 shipped for the triangle. + the same recipe #717 shipped for the triangle. Value-tenant only; no + classid. 5. **Auditors:** `v3-envelope-auditor` (the BoardAggregates layout), `baton-handoff-auditor` (the OGAR↔lance-graph mirror seam), `firewall-warden` (no PII, no model id). @@ -197,11 +251,15 @@ mask = the `Cognitive` hot set **∪** the three triangle lanes — the `tenant_bytes()` = Cognitive's 66 + 3×12 = **102 B** (≤ 480, layout- preserving, zero `ENVELOPE_LAYOUT_VERSION` bump). -**Routing requirement (mandatory):** EVERY thinking/task classid — every -`cognitive_*` classid in §0c, and any future thinking-row class — resolves -to `Thinking` in `BUILTIN_READ_MODES`, **NEVER** to `Cognitive`. Entity -classes (OSINT/PROJECT/ERP/Commerce) keep plain `Cognitive` (no triangle). -This is the concrete form of `TD-TRI-1-P4` obligation #2. +**Routing requirement (mandatory):** a domain class that carries thinking +lanes (its rows hold task-atom + triangle lanes) resolves to `Thinking` in +`BUILTIN_READ_MODES`, **NEVER** to `Cognitive`. Entity classes +(OSINT/PROJECT/ERP/Commerce) that do NOT carry thinking lanes keep plain +`Cognitive` (no triangle). This is the concrete form of `TD-TRI-1-P4` +obligation #2. (There is no separate `cognitive_*` classid — the task-TYPE +is a frozen atom index in the row, §2; the routing discriminant is whether +the class carries thinking lanes, resolved per-class in `BUILTIN_READ_MODES`, +not a dedicated cognitive domain.) **Persist-side test (mandatory):** a round-trip test that populates the triangle lanes on a `Thinking`-schema row, bakes it through the @@ -209,18 +267,20 @@ triangle lanes on a `Thinking`-schema row, bakes it through the not dropped) — the exact failure obligation #2 names (a `Cognitive`-resolving thinking row would drop them). -Lands **with** this batch (the Tasks-SoA task classid routes to `Thinking`), -not before — a schema with no classid routing to it would be dead until the -mint. Gated by `v3-envelope-auditor`. +Lands when a thinking-lane-carrying class first routes to it (chess `0x06` +thinking rows are the first candidate, once P4 wires the lanes) — a schema +with no class routing to it would be dead, so it is NOT minted ahead of its +first consumer. Gated by `v3-envelope-auditor`. --- ## §6 Coordination seams (with the graphrag arc — record, don't duplicate) -- **S5 mint train:** this batch = {chess `0x06`, Cognition `0x03` + - Tasks-SoA, BoardAggregates@188} + graphrag `D-GR-5` doc-seam classid - (+ community-id iff S1 says distinct). One OGAR mint. The other session - owns D-GR-5 + community-id; this doc owns the three groups above. +- **S5 mint train:** this batch = {chess `0x06`, BoardAggregates@188 + (value tenant, no classid)} + graphrag `D-GR-5` doc-seam classid. + Cognition `0x03` is **removed** (frozen atoms, §2); community-id does + NOT mint (S1 retracted by #722). One OGAR mint. The other session owns + D-GR-5; this doc owns chess `0x06` + BoardAggregates. - **S3 atom-0 / label-0:** #717 locked palette256 atom/index 0 = null. If a graphrag community label (dense u32 from 0) is ever persisted into a palette256 lane, it must be `label+1` (0 = unassigned). Same family as @@ -232,9 +292,10 @@ mint. Gated by `v3-envelope-auditor`. ## §7 What this spec deliberately does NOT do -No byte minted (proposals only); no S1 run (theirs); no solo mint (the -council convenes the batch); no verb-catalogue touch (rung-2 144 verbs are -a separate storyline); no quarantine lift (chess `0x06` ≠ chess↔thinking -merge — `D-TRI-4` still gates that). The two open knobs (Cognition byte -`0x03`, BoardAggregates width `U8×8`) are flagged for ratification, not -assumed. +No byte minted (proposals only); no Cognition domain (frozen atoms, §2); +no persona mint (per-consumer opt-in, §2a); no solo mint (the council +convenes the batch); no verb-catalogue touch (rung-2 144 verbs are a +separate storyline — the atoms §2 references, never re-mints); no +quarantine lift (chess `0x06` ≠ chess↔thinking merge — `D-TRI-4` still +gates that). The one open knob (BoardAggregates width `U8×8`) is flagged +for ratification, not assumed.