Commit c1ff2bf
committed
plan(odoo-savant-reasoners-v2): reshape Reasoner trait → typed composition over CausalEdge64 + Tactic + role_keys (E-SAVANT-COMPOSITION-1)
v1 (shipped PR #420 with a "MED on dispatch shape" caveat) review resolved:
the Reasoner trait surface fails CLAUDE.md "P-1 The Click" + "P0 AGI-as-glove"
litmus tests verbatim:
1. "new capability lands as a new column, not a new layer"
→ the Reasoner trait IS a new layer
2. "free function on a carrier's state = reject"
→ build_conclusion(savant, ctx) is the named anti-pattern
3. "wrap the axes in a new struct = breaks the SIMD sweep"
→ SavantConclusion + SavantSuggestion duplicate CausalEdge64
v2 routes the canonical path through the agnostic substrate that already exists:
- CausalEdge64 (zero-dep crates/causal-edge, v2 layout — the savant's decision
IS the emitted edge: SPO palette + NARS truth + Pearl 2³ + inference mantissa)
- Tactic trait + 34 kernels (PR #411 — "the Elixir-like recipe layer that later
fronts the real fingerprint substrate via cognitive-shader-driver with no
change to the 34 call sites")
- 33-TSV atom layer (PR #411 contract::atoms::CANONICAL_ATOMS)
- Role-key catalogues (I-VSA-IDENTITIES names callcenter/role_keys.rs as future
Layer-2 home)
Deliverables (Queued):
- D-ODOO-SAV-5a: SavantPattern + TacticInvocation + EdgeEmissionSpec +
AtomTouchMask primitives in lance-graph-contract (Group D)
- D-ODOO-SAV-5b: callcenter/role_keys.rs with 25 disjoint Vsa16kF32 slices
+ lookup-by-OdooSavant + slice manifest (Group E)
- D-ODOO-SAV-5c: 25 typed SavantPattern consts drawn from
.claude/odoo/savants/<N>.md slot 1/4 + .claude/odoo/L*.md (Group F)
- D-ODOO-SAV-5d: #[deprecated] + legacy-reasoner feature gate + migration
pointers on v1 Reasoner surface, per I-LEGACY-API-FEATURE-GATED (Group G)
- D-ODOO-SAV-5e: end-to-end test (FiscalPositionResolver SavantPattern →
expected CausalEdge64 row, SPO + NARS + v2 signed mantissa)
Execution: 5a + 5b parallel (additive, zero churn) → 5c after both → 5d after
5c (migration pointers name real targets) → 5e throughout. woa-rs consumer
migration OUT OF SCOPE but UNBLOCKED by 5d.
Board hygiene per CLAUDE.md: plan file + INTEGRATION_PLANS PREPEND +
STATUS_BOARD section + EPIPHANIES E-SAVANT-COMPOSITION-1 all in this commit.
v1 surface (Reasoner trait, 4 *Reasoner impls, SavantConclusion,
SavantSuggestion, build_conclusion) stays compiling under the legacy-reasoner
feature with #[deprecated] migration pointers until woa-rs migrates its
Reasoner::reason() call sites to SavantPattern resolution. Removal in a
follow-up PR after the migration.
https://claude.ai/code/session_017gZ6sPRXYPj5n7uJ7NBtRv1 parent a21d577 commit c1ff2bf
4 files changed
Lines changed: 257 additions & 0 deletions
File tree
- .claude
- board
- plans
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
1 | 14 | | |
2 | 15 | | |
3 | 16 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
1 | 20 | | |
2 | 21 | | |
3 | 22 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
530 | 530 | | |
531 | 531 | | |
532 | 532 | | |
| 533 | + | |
| 534 | + | |
| 535 | + | |
| 536 | + | |
| 537 | + | |
| 538 | + | |
| 539 | + | |
| 540 | + | |
| 541 | + | |
| 542 | + | |
| 543 | + | |
| 544 | + | |
| 545 | + | |
| 546 | + | |
533 | 547 | | |
534 | 548 | | |
535 | 549 | | |
| |||
0 commit comments