Skip to content

Commit b4ce015

Browse files
committed
docs(contract): strip consumer-provenance label-bleed from execute_compute_dag/execute_defaults doc-comments (5+3 council R5)
A 5+3 council flagged that the ZERO-DEP contract's recipe-sequencing primitives were branded "the ActionDef value executor" and carried one consumer's provenance ("the medcare transpile arc's lane-3a increment", "the sono Recal_* family", "RecipeCentroid::Default harvest") in their doc-comments — which every consumer of the contract inherits. They are generic sequencing primitives, NOT an ActionDef-body interpreter (that is OGAR's ACTIONDEF-VALUE-DISPATCH-PROPOSAL.md concern). - execute_compute_dag / execute_defaults doc-comments reworded to describe the primitive generically (topological-order / fire-if-absent sequencing over ComputeEdge / positions) + a scope-note drawing the ActionDef-interpreter boundary explicitly. Code unchanged; 48 class_view tests green. - ClassView::default_targets + test section comments de-branded likewise. - E-LAYER-CONFUSION-OGAR-VS-SPINE-1 (EPIPHANIES) + AGENT_LOG entry record the council run and the load-bearing result: #690's execute_defaults IS correctly placed (OGAR consumes lance_graph_contract::ClassView) — NOT reverted. - Filed #692 for the highest residual: contract::action re-declares OGAR IR names with no shape-parity fuse. Incidental: cargo fmt fixed a pre-existing fmt-dirty legacy_outliers.rs (same as the thinking_styles/style_family reflow in #690). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 parent 4fbf42e commit b4ce015

4 files changed

Lines changed: 45 additions & 25 deletions

File tree

‎.claude/board/AGENT_LOG.md‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
## 2026-07-14 — 5+3 council: OGAR-vs-lance-graph layer-confusion audit + contract doc-label cleanup
2+
- **Deliverable:** doc-comment label-bleed removed from `contract::class_view::{execute_compute_dag, execute_defaults}` (were branded "the ActionDef value executor" + carried MedCare/sono provenance in the zero-dep contract). E-LAYER-CONFUSION-OGAR-VS-SPINE-1 prepended. New issue #692 (contract::action shape-parity fuse gap).
3+
- **Council:** 5 falsification savants (Sonnet ×4 / Opus ×1) + 3 brutal reviewers (Sonnet). Grades: 3 WRONG, 1 UNSOUND, 1 WRONG-not-catastrophic. Reviewers raised 2 BLOCK + 6 FIX against the orchestrator's own remediation (all accepted). #690 placement verified CORRECT (not reverted).
4+
- **Board:** EPIPHANIES prepended; companion corrections in MedCare-rs (E-MEDCARE-30, PR #211), a2ui-rs (CROSS-SESSION-SEAMS retracted-in-part), OGAR #208.
5+
16
## 2026-07-12 — chess-arc-spine-evidence-carve — E-THINKING-SPINE-CHESS-EVIDENCE-1 + temporal-markov plan addendum
27

38
- **Deliverable:** `.claude/plans/temporal-markov-and-style-classes-v1.md` addendum (6 graded mappings of the chess arc onto Track A/B) + `EPIPHANIES.md` `E-THINKING-SPINE-CHESS-EVIDENCE-1` pointer entry.

‎.claude/board/EPIPHANIES.md‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,13 @@
1+
## 2026-07-14 — E-LAYER-CONFUSION-OGAR-VS-SPINE-1 — a session-wide OGAR-vs-lance-graph layer conflation, caught by a 5+3 council; contract doc-comment label-bleed cleaned
2+
3+
**Status:** FINDING (5+3 council, source-receipted; MedCare-rs E-MEDCARE-30 carries the full grades).
4+
5+
A cross-arc session conflated **OGAR** (the V3 assembler substrate — owns `Class`/`ActionDef` IR, the live active-record graph) with **lance-graph** (the query/storage spine + the zero-dep contract). It filed a Klickwege live-edge ingest issue at lance-graph (#691) when the landing is OGAR's job (Lance persistence is the substrate's own *calcification*, never an ingest API — "nobody runs the compiler on the hard disk"). #691 closed → OGAR #208.
6+
7+
A 5+3 falsification council then audited the session's downstream claims. Load-bearing result for THIS repo: **#690's `execute_defaults` is CORRECTLY placed** — OGAR's `ogar-class-view` *consumes* `lance_graph_contract::class_view::ClassView` (`ogar-class-view/lib.rs:62,364`); the primitives are pure sequencing (delegate all value semantics to a consumer closure, import no `ActionDef`). It is NOT OGAR-Core reimplementation and NOT the same fault as #691. **What WAS wrong (this commit fixes it):** the `execute_compute_dag`/`execute_defaults` doc-comments branded them "the ActionDef value executor" and baked one consumer's provenance ("the medcare transpile arc's lane-3a increment", "the sono `Recal_*` family") into the ZERO-DEP contract that every consumer inherits — label-bleed. They are generic sequencing primitives, not an `ActionDef`-body interpreter (that is OGAR's `ACTIONDEF-VALUE-DISPATCH-PROPOSAL.md`). Doc-comments reworded to describe the primitive generically + scope-note the ActionDef-interpreter boundary. **Highest residual (filed #692, not fixed here):** `contract::action::{ActionDef,ActionInvocation,ActionState}` re-declare OGAR IR names with no shape-parity fuse while the sibling codebook mirror has one.
8+
9+
**Meta-lesson:** confident architectural claims written fast off spot-reads are the Lie-Detector failure signature; the fix is the council BEFORE a claim enters canon. Cross-refs: MedCare-rs E-MEDCARE-30, OGAR #208, lance-graph #692, a2ui-rs CROSS-SESSION-SEAMS.md (retracted-in-part).
10+
111
## 2026-07-14 — E-RUNG-CONTENT-LADDER-1 — the rung-content ladder ruled; persona-36 demarcated as a separate storyline (corrects E-STYLE-FAMILY-VS-RUNBOOK-1's "runbook" label)
212

313
**Status:** RULED (operator, 2026-07-14). Canonical text: `.claude/v3/knowledge/persona-vs-rung-ladder.md` (linked from CLAUDE.md § V3 SUBSTRATE).

‎crates/lance-graph-contract/src/class_view.rs‎

Lines changed: 26 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -789,18 +789,21 @@ impl<E: std::error::Error + 'static> std::error::Error for ExecuteComputeError<E
789789
}
790790
}
791791

792-
/// Execute a class's **recompute DAG** over a consumer-owned store — the
793-
/// ORDER half of the ActionDef value executor (the medcare transpile arc's
794-
/// lane-3a increment 1).
792+
/// Execute a class's **recompute DAG** over a consumer-owned store — a
793+
/// pure *sequencing* primitive over [`ComputeEdge`] positions.
795794
///
796-
/// Split of responsibilities (commitment: thinking lives upstream, values
797-
/// live with the row owner): this function owns *sequencing* — targets run
798-
/// in a valid topological order ([`compute_dag_topo_order`]) so every
799-
/// precedent is recomputed before its dependents — while `compute_target`
800-
/// owns *value semantics*: it recomputes field position `t` on `store`
801-
/// (e.g. a hand-ported score formula; the sono `Recal_*` family is the
802-
/// first parity witness). Leaves are never passed to `compute_target` —
803-
/// they are the already-present inputs.
795+
/// This owns ORDERING ONLY, never value semantics: targets run in a valid
796+
/// topological order ([`compute_dag_topo_order`]) so every precedent is
797+
/// recomputed before its dependents, while the caller-supplied
798+
/// `compute_target` closure owns the actual recompute of field position `t`
799+
/// on `store` (e.g. a hand-ported formula on the consumer side). Leaves are
800+
/// never passed to `compute_target` — they are the already-present inputs.
801+
///
802+
/// Scope note: this is the topological-order half only. It is NOT an
803+
/// `ActionDef`-body interpreter — it takes no `ActionDef`, reads no
804+
/// `kausal`/`EnterEffect`; a value-reproducing interpreter over a populated
805+
/// `ActionDef` is a separate (OGAR-owned) concern. Consumers pair this
806+
/// ordering with their own value closure.
804807
///
805808
/// Returns the executed order (the same positions
806809
/// [`compute_dag_topo_order`] yields).
@@ -823,13 +826,12 @@ pub fn execute_compute_dag<S, E>(
823826
Ok(order)
824827
}
825828

826-
/// Execute a class's **default targets** over a consumer-owned store — the
827-
/// Default-recipe half of the ActionDef value executor (the medcare transpile
828-
/// arc's lane-3a increment 2, following the Compute half above).
829+
/// Execute a class's **default targets** over a consumer-owned store — a
830+
/// presence-gated *fire-if-absent* sequencing primitive (the write-if-blank
831+
/// shape, `this.Name ??= "unknown"`), sibling to [`execute_compute_dag`].
829832
///
830-
/// A *Default* recipe is write-if-blank (`this.Name ??= "unknown"` — the
831-
/// `RecipeCentroid::Default` centroid): the value fires ONLY where the field
832-
/// is not already populated. Same split of responsibilities as
833+
/// Fires each target ONLY where the field is not already populated. Same
834+
/// split of responsibilities as
833835
/// [`execute_compute_dag`]: this function owns the *fire/skip decision*
834836
/// (presence-gated, slice order), while `apply_default` owns *value
835837
/// semantics* — it writes field position `t`'s default onto `store` (a
@@ -1155,11 +1157,11 @@ pub trait ClassView {
11551157
}
11561158

11571159
/// The class's **default targets** — the field positions carrying a
1158-
/// write-if-blank default (the `RecipeCentroid::Default` harvest:
1159-
/// `this.Name ??= …`, the C# lazy-init `if (field == null) field = new …`
1160-
/// idiom), in declaration order. The manifest [`execute_defaults`]
1161-
/// consumes — same layering as [`compute_dag`](ClassView::compute_dag):
1162-
/// resolution metadata above the SoA, stores nothing on the row.
1160+
/// write-if-blank default (`this.Name ??= …`; the lazy-init
1161+
/// `if (field == null) field = new …` idiom), in declaration order. The
1162+
/// manifest [`execute_defaults`] consumes — same layering as
1163+
/// [`compute_dag`](ClassView::compute_dag): resolution metadata above the
1164+
/// SoA, stores nothing on the row.
11631165
///
11641166
/// Default `&[]` — the zero-fallback: an unconfigured class has no
11651167
/// defaulted fields. An implementor returns a generated `const &[u8]`;
@@ -1451,7 +1453,7 @@ mod tests {
14511453

14521454
// ── screen-graph jump connector (navigates_to Klickweg) ──────────────────
14531455

1454-
// ── execute_compute_dag (lane-3a increment 1: the ORDER half) ────────────
1456+
// ── execute_compute_dag (topological-order sequencing primitive) ─────────
14551457

14561458
/// Chain f0→f1→f2 executes in dependency order and the consumer closure
14571459
/// sees precedents already recomputed (value semantics stay consumer-side).
@@ -1531,7 +1533,7 @@ mod tests {
15311533
assert_eq!(row, [1]);
15321534
}
15331535

1534-
// ── execute_defaults (lane-3a increment 2: the Default-recipe half) ──────
1536+
// ── execute_defaults (presence-gated fire-if-absent primitive) ───────────
15351537

15361538
/// An empty presence mask fires every target, in SLICE order (declaration
15371539
/// order — defaults have no dependency order to reorder by).

‎crates/lance-graph-contract/src/legacy_outliers.rs‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,10 @@ const fn u24_le(a: u8, b: u8, c: u8) -> u32 {
5151
/// the same no-silent-truncation guard `NodeGuid::new` uses for its u24 groups.
5252
#[inline]
5353
fn put_u24_le(dst: &mut [u8], v: u32) {
54-
debug_assert!(v <= 0x00FF_FFFF, "legacy outlier u24 field must fit 24 bits");
54+
debug_assert!(
55+
v <= 0x00FF_FFFF,
56+
"legacy outlier u24 field must fit 24 bits"
57+
);
5558
dst[0] = (v & 0xFF) as u8;
5659
dst[1] = ((v >> 8) & 0xFF) as u8;
5760
dst[2] = ((v >> 16) & 0xFF) as u8;

0 commit comments

Comments
 (0)