Skip to content

Commit ea52aea

Browse files
committed
docs(board): REVIEW VERDICT of #440 odoo-classes-bitmask-render — HOLD, 3 P0 errors + D-CLS-3 vaporware
5-savant council + 3-brutal review (plan's own §2 + user requested) BEFORE agent spawn. Doctrine sound (classes.md verbatim) but factual errors vs source: (1) 381 OdooEntity consts not 66 (64 curated + 317 EXT_*); (2) class_id already exists (soa_view.rs:61, N1 hook #437) — D-CLS-5 would collide; (3) canonical DolceCategory has 6 variants not 4 (AbstractObject/Region/ Other, no 'Abstract') — D-CLS-1 From-test won't compile. D-CLS-3 vaporware: aerial mine()s rules not clusters entities — downgrade to deterministic group-by-on-structural-hash. Iron-rule YIELDS-WITH-AP: presence!=facet-code wall holds; AP2 — FieldPositionTable must freeze append-only (not recompute from union). Shippable-once-ratified: D-CLS-2(fix count)/4/5(after reconcile). 4 OD gates still blocking. No agent spawns until P0 fixed + OD ratified. https://claude.ai/code/session_01R9AWgFa65uPnLyS2my2d2R
1 parent 743bb83 commit ea52aea

1 file changed

Lines changed: 18 additions & 0 deletions

File tree

.claude/board/EPIPHANIES.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,21 @@
1+
## 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
2+
3+
**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.
4+
5+
**P0 ERRORS (verified against source, file:line):**
6+
1. **Entity count is 381, NOT 66.** 64 curated consts in `odoo_blueprint/l{1..15}.rs` + **317 `EXT_*`** in `odoo_blueprint/extracted/` (compiled: `mod.rs:77 pub mod extracted;`). D-CLS-6 adds `class_id` to the SHARED `OdooEntity` struct → ALL 381 back-fill, not 66. D-CLS-2/9 "iterate the 66" is ~6× off — either scope to curated-64 explicitly (defensible: extracted/mod.rs:5 "additive, curated stays canonical") OR own all 381. Decide; don't silently ignore 317.
7+
2. **`class_id` ALREADY EXISTS** — `lance-graph-contract/src/soa_view.rs:61` `fn class_id(&self)->&[u16]` + `class_id_at` (the N1 hook shipped #437, aliases entity_type u16). D-CLS-3/5's new `ClassId(u16)` newtype COLLIDES in the same crate. Must RECONCILE with the existing accessor (newtype wrapping the same u16, or extend the accessor), not mint a second.
8+
3. **Canonical `DolceCategory` has 6 variants, NOT 4** — `cognition/entity.rs:87`: Endurant/Perdurant/**AbstractObject**/Quality/**Region**/**Other**. NO variant named `Abstract`. D-CLS-1's From-test (plan:105 "preserves Endurant/Perdurant/Quality/Abstract") references a non-existent variant → won't compile. Also `entity.rs:88` has a live `// Stage 2 expands this enum` TODO = actively-edited (AP1 collision). The OD-DOLCE-CANONICAL default-lean must map all 6 (incl Region/Other/AbstractObject) + callcenter `Abstract`→`AbstractObject` + `Unknown`→`Other`.
9+
10+
**P1 VAPORWARE:** D-CLS-3 "Aerial+ structural-hash → 10-15 shape-families" — aerial only exposes `mine()->Vec<CandidateRule>` (association rules, antecedent→consequent), NO entity-clustering/group-by entry point (`aerial/mod.rs:69`; grep cluster/group_by/shape_family = zero code). "Point Aerial+ at Odoo to cluster entities" CANNOT be done with the cited crate. Downgrade D-CLS-3 to a deterministic **group-by-on-structural-hash** (the plan's own risk-register fallback) — that's real and matches classes.md:43 ("group-by-on-structural-hash OR Aerial+").
11+
12+
**IRON-RULE (council, YIELDS-WITH-AP):** No iron rule violated. (a) presence≠facet-code wall HOLDS — `FieldMask(u64)` presence-of-field is correctly distinct from faiss-homology facet-u64 (CAM closed-range codes); keep the wall explicit in D-CLS-7 doc (never AND-ed/superposed). (b) **AP2 landmine:** D-CLS-5/7 FieldPositionTable must **freeze append-only on first emit**, NOT recompute the bit positions from the field-union each build (a re-audit reordering members → bit N changes meaning → old masks misread; N3 + I-LEGACY-API-FEATURE-GATED). Add a golden position-stability test. (c) u16 ClassId fine — discriminator stays OUTSIDE the CAM content-hash layer (never hashed-as-content/superposed). (d) zero-dep boundary sound (arm-discovery local-newtype+TryFrom, no contract dep).
13+
14+
**SHIPPABLE-ONCE-RATIFIED (brutal cut):** D-CLS-2 (signatures, read-only — FIX count to 381 or scope-to-64), D-CLS-4 (render-crate skeleton, isolated), D-CLS-5 (ClassId — ONLY after reconciling soa_view::class_id). PREMATURE until P0 fixed: D-CLS-1 (6≠4 variant map), D-CLS-3 (vaporware→group-by), D-CLS-6/7/8/9 (inherit the 381 + ClassId-dup).
15+
16+
**The 4 OD gates remain blocking (surfaced to user this turn):** OD-DOLCE-CANONICAL (now: map 6 variants), OD-CLASSID-WIDTH (u16 lean OK), OD-CLASSID-VS-ENTITYKIND (coexist lean OK), OD-TEMPLATE-ENGINE (askama lean OK). No agent spawns until ratified.
17+
18+
**Cross-ref:** #440 (the plan); `odoo-classes-bitmask-render-v1.md` §2 (OD gates) / §4 (D-CLS deliverables); `soa_view.rs:61` (existing class_id); `cognition/entity.rs:87` (6-variant DolceCategory); `aerial/mod.rs:69` (mine, not cluster); classes.md:43/50/65 (discovered-taxonomy / presence-not-semantics / N3); iron-rule AP2; the post-#438 4-savant council (#440 `4f381a8`).
119
## 2026-05-30 — SHIPPED-in-PR: M1 keystone — `Tactic::requires() -> ThoughtMask` (the latent checklist made data; reliability = coverage, extraction not construction)
220

321
**Status:** SHIPPED-in-PR #439 (D-MBX-A6-P3-M1). The panel-recalibrated keystone of reliability-checklist-arc-v1, built autonomously.

0 commit comments

Comments
 (0)