Skip to content

Commit b31464d

Browse files
committed
docs(board): OD-gates RATIFIED for #440 — DOLCE-from-cache (dissolves 6v4), ClassId u16 reuse-existing, kind+class_id both DTO-views, askama
Spec-owner ratification. Two answers reframe not just answer: OD-DOLCE dissolved (DOLCE is a resolved attribute of the OGIT class in the ontology cache, not a canonical contract enum to pick among 4 -> the 6-vs-4 P0-3 mismatch evaporates; 4 enums become cache consumers). OD-CLASSID-VS-ENTITYKIND dissolved (meta-DTO resolves both kind+class_id as views over the row; Odoo becomes a custom view). OD-CLASSID-WIDTH u16 reuse soa_view::class_id (not a 2nd newtype). OD-TEMPLATE askama. Unifying: meta-DTO resolves, doesn't store (classes.md:39). All 4 gates resolved; still gated on P0 fixes (381 entities, group-by not aerial-cluster, AP2 position-freeze) before Wave-1 spawn. https://claude.ai/code/session_01R9AWgFa65uPnLyS2my2d2R
1 parent ea52aea commit b31464d

1 file changed

Lines changed: 14 additions & 0 deletions

File tree

.claude/board/EPIPHANIES.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,17 @@
1+
## 2026-05-31 — OD-GATES RATIFIED (spec owner) for odoo-classes-bitmask-render-v1 (#440): DOLCE-from-cache (dissolves the 6-vs-4), ClassId u16 reuse-existing, kind+class_id both DTO-views, askama
2+
3+
**Status:** RATIFICATION (spec owner = user, 2026-05-31). Unblocks the plan's Wave-0 pre-conditions, WITH the review-verdict P0 corrections folded in. Two answers reframe the plan, not just answer it.
4+
5+
- **OD-TEMPLATE-ENGINE → askama** (compile-time, classes.md:72 lean). Per-class `.html.j2` compiled into the new excluded render crate. RATIFIED as-planned.
6+
- **OD-CLASSID-WIDTH → ClassId(u16), REUSE the existing accessor.** Wrap/align `lance-graph-contract::soa_view::class_id() -> &[u16]` (N1 hook, #437) — do NOT mint a colliding 2nd newtype (the brutal-tester P0-2). Discriminator stays OUTSIDE the CAM content-hash layer (I-VSA-IDENTITIES; never hashed-as-content). RATIFIED with the reconciliation constraint.
7+
- **OD-DOLCE-CANONICAL → DISSOLVED: "use the ontology cache."** The spec owner's ruling reframes it: DolceCategory is NOT a new canonical contract enum to pick among 4 — it is a **resolved attribute of the OGIT class in the ontology cache** (`OntologyRegistry` MappingRow). The 6-vs-4 variant mismatch (the brutal-tester P0-3) EVAPORATES: there is no enum beauty contest; the cache resolves class_id → DOLCE category as one more field. The 4 duplicate enums become CONSUMERS of the cache's answer, not competitors. D-CLS-1 changes from "pick canonical + 4-way From-map" to "the cache is the source; the local enums read from it." (Honors classes.md:39 "the meta-DTO resolves; it does not store" + classes.md:2 "CAM, not ANN" identity-resolution.)
8+
- **OD-CLASSID-VS-ENTITYKIND → DISSOLVED: "it's a DTO; Odoo becomes a custom view."** The spec owner's ruling: class_id and kind are NOT competing discriminators to reconcile — the **meta-DTO RESOLVES both as views over the same row**. Odoo's `kind {Model,Transient,Abstract}` is just one more projected field; class_id is another. So they COEXIST not by compromise but because neither is special — both are DTO-resolved views (classes.md thesis: "Odoo becomes a custom view"). No replace-vs-coexist tradeoff; the DTO subsumes the question.
9+
10+
**Unifying principle (both rulings):** the meta-DTO RESOLVES (logic), it does not STORE (state) — classes.md:39. DOLCE-from-cache and kind-as-view are the same move: resolve attributes over the row via the ontology cache, don't bake competing canonical enums/discriminators into the bytes.
11+
12+
**Wave-0 status:** all 4 OD gates resolved. Still BLOCKING on the review-verdict P0 fixes BEFORE agent spawn: (P0-1) 381 entities not 66 — scope decision; (P0-2) reuse soa_view::class_id (now ratified); (P0-3) DOLCE-from-cache (now dissolves it); (P1) D-CLS-3 → deterministic group-by-on-structural-hash not aerial-cluster (aerial mines rules); (AP2) FieldPositionTable freeze-append-only-on-first-emit. With these folded in, Wave-1 (D-CLS-2 audit / D-CLS-4 render skeleton / D-CLS-5 ClassId-reuse) is spawnable.
13+
14+
**Cross-ref:** #440 plan §2 (OD gates) + §4 (D-CLS); the 2026-05-31 REVIEW VERDICT (P0 errors); `soa_view.rs:61` (existing class_id, reuse); `lance-graph-ontology/registry.rs` (OntologyRegistry = the DOLCE-resolving cache); classes.md:39 (resolve-not-store) / :13 (one class_id keys three things).
115
## 2026-05-31 — REVIEW VERDICT (council+brutal) of odoo-classes-bitmask-render-v1 (#440): HOLD — 3 P0 factual errors + 1 vaporware deliverable; plan must NOT spawn agents as-written
216

317
**Status:** FINDING / plan-correction (5-savant-council + 3-brutal review the plan's §2 + user requested, 2026-05-31). The merged plan #440 is sound in DOCTRINE (classes.md §"Jinja=classes+presence bitmask" verbatim) but has load-bearing factual errors vs on-disk source. Corrections required before Wave-1 spawn. Plan file is append-only governance — these corrections are dated board entries, NOT edits to the plan.

0 commit comments

Comments
 (0)