Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .claude/board/STATUS_BOARD.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ Plan: `.claude/plans/2026-10-06-global-sudoku-replayable-orchestration-v1.md`. O
| **D-GSO-3** | P3: global ontology agreement/disagreement probe (mammal fixture) | Shipped (#1350) | `cognitive-shader-driver/examples/ontology_agreement_probe.rs`: `NiblePath` hierarchy + `ontology_warrant::Quorum`/`SourceVerdict` folded per observation into local (self + siblings), up (ancestors), down (descendants); binary-entropy tension; all four cells + unknown reached; 6 tests, 5 disable runs red |
| **D-GSO-4** | P4: entropy × topology routing probe | Shipped (#1351) | `cognitive-shader-driver/examples/entropy_topology_probe.rs` = F-ECG-1 and F-ECG-2 at probe level (F-ECG-3 open: no real corpus carries topology bits yet): bits 59..60 read through `BandDeclarations::project_truth` (topology lens, asserted provenance), known-share census as competence, `SettlementSignals::cell`, §4b walker route; equal measured entropy (0.8167 bits) → Crystal vs Glass; 6 tests, 4 disable runs red |
| **D-GSO-5** | P5: first recipe quartet over existing primitives | Shipped (#1355) | `cognitive-shader-driver/examples/recipe_quartet_probe.rs`: four `match`-arm recipes over `Quorum::observe`, `Quad8::fold_product`, `Morton8x8` + `PalettePerturbation::hop`, `GadamerRevision::revise` (verdict left `NotRun`: removing the new roots is tautological, so the counterfactual moves to P7); a thread-local counting allocator shows zero allocations per recipe (no instruction vector); `ProbeRecipe` is its own type, not a shipped `recipes` ID; ordinal meanings not canonized; no Pearl projection (P7) and no selector (P6); 7 tests, 6 disable runs red |
| **D-GSO-6** | P6: deterministic, versioned recipe selector | Shipped (#1358); `new_encounter` wired to revision output: Shipped (#1362) | `cognitive-shader-driver/examples/recipe_selector_probe.rs`: `SelectorPolicy::select(state)` is a pure `const fn` over a declared 4-fact `EpistemicState`; V1 = §11 order (fold, bound, local, revise), rests only on the settled state; V2 swaps two steps (differs on 2 of 16 states); a recorded `Selection` (policy + state) replays under its own policy; every cycle rests in one step per open condition and replays identically; the version covers selection only, not recipe implementations (§13 digest open); 5 tests, 5 disable runs red. Follow-up: `new_encounter` is derived from the world (encounter roots \ horizon roots) and the `Revision` recipe writes `GadamerRevision`'s `delta.resulting`; dropping that write never rests; `unresolved_tension` cannot drive `local_disagreement` (never cleared); the other three facts are still stand-ins; 12 tests, 5 disable runs red |
| **D-GSO-6** | P6: deterministic, versioned recipe selector | Shipped (#1358, #1362); `local_disagreement` wired + rootless-revision fix: In PR | `cognitive-shader-driver/examples/recipe_selector_probe.rs`: `SelectorPolicy::select(state)` is a pure `const fn` over a declared 4-fact `EpistemicState`; V1 = §11 order (fold, bound, local, revise), rests only on the settled state; V2 swaps two steps (differs on 2 of 16 states); a recorded `Selection` (policy + state) replays under its own policy; every cycle rests in one step per open condition and replays identically; the version covers selection only, not recipe implementations (§13 digest open); 5 tests, 5 disable runs red. Follow-up: `new_encounter` is derived from the world (revising would still change a horizon mask; equals `revise` changing it on a 2-bit universe; rootless revisions included) and the `Revision` recipe writes `GadamerRevision`'s `delta.resulting`; dropping that write never rests; `unresolved_tension` cannot drive `local_disagreement` (never cleared); the other three facts are still stand-ins; 14 tests, 10 disable runs red. Follow-up 2: `local_disagreement` = `unresolved_tension \ interrogated`, where `interrogated` is the coverage `MooreInterrogation` writes (tension itself never cleared); a revision adding a new contradiction reopens it; dropping the interrogation write never rests; `observations_pending` and `frontier_bounded` remain stand-ins; 17 tests, 15 disable runs red |
| **D-GSO-7** | P7: reasoning-band earning and downgrade | Shipped (#1360) | `cognitive-shader-driver/examples/reasoning_band_probe.rs`: `ReasoningBand` (bits 61..63) read only via `band_reading::project_band`; earned one rung per executed passing proof under the shipped Pearl `CausalMask` (SO majority → Association, PO intervention trial passed → Causal, SPO removal attack passed → Counterfactual), outcomes executed from trial data and never supplied, no skipping, `NotRun` never raises; failed test, contradicting `Quorum` (minority caps at Association, majority drops to Surface) and `simpsons_paradox_risk` lower it; replay gives the same edge bits; unreadable provenance / undeclared / band-absent refuse; ladder and thresholds are policy pins; 7 tests, 10 disable runs red |
| **D-GSO-8** | P8: seal boundary | In PR | `lance-graph-planner/examples/seal_boundary_probe.rs`: internal events change only working rows; a declared `Boundary` event freezes the changed rows with the shipped `DetachedCycleBatch::freeze` into a local ledger (no `WalSink`); an unchanged boundary writes nothing; replaying the persisted events from each prior seal reproduces the next seal exactly (frame, landings, image, hash); wrong base, dropped event and swapped order each change the seal; tie limit handled by plan option 1: the key is the event's own durable unique `seq`, a tied batch is refused, and a test shows on the real `freeze` that tied keys make the seal arrival-dependent; 6 tests, 5 disable runs red |

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# 2026-10-06 — Selector follow-up 2: local disagreement wired as uncovered tension

Deliverable line: the D-GSO-6 selector (follow-up to #1362).

## MEASURED

`crates/cognitive-shader-driver/examples/recipe_selector_probe.rs`, 17
tests, 15 disable runs red. Builds on #1362. Also carries the rootless-
revision fix from codex review of #1362, which merged before it was pushed:
`new_encounter` holds while revising would still change a horizon mask
(equal to "revise changes those masks" on all 65 536 worlds of a 2-bit
universe).

- `local_disagreement` is read from the world as
`unresolved_tension \ interrogated`. `interrogated` is the coverage the
`MooreInterrogation` recipe writes (by union); nothing else writes it.
- Interrogation clears the fact and leaves the tension unchanged.
- A revision that adds a contradiction reopens the fact: from a settled
state the fusion world runs `[Revision, MooreInterrogation]` and rests.
A contradiction already covered does not reopen it; one on a new bit does.
- Dropping the interrogation's write never rests, as dropping revision's
write never rests.
- Every wired cycle rests within 5 steps and replays to the same path and
final world.

Disable runs, each red: raw tension read without coverage; interrogation a
no-op; supplied flag used instead of the derived one; interrogation clearing
the tension; the drop flag ignored.

## FINDING

- **With both facts derived, a cycle is no longer one step per condition.**
Revision can reopen local disagreement, so V1 runs `Revision` then
`MooreInterrogation` where the stand-in transitions ran them once each in
§11 order.

## OPEN

- `interrogated` is probe-local. `InterpretiveHorizon` has no coverage
field; where coverage lives durably is undecided.
- The Moore recipe's fold (Palette hop over `Register128`, D-GSO-5 R2) is not
linked to claim bits; only its coverage is wired. What an interrogation
concludes about a tension bit is not modelled.
- `observations_pending` and `frontier_bounded` remain stand-ins.
19 changes: 12 additions & 7 deletions .claude/board/entries/2026-10-06-selector-revision-wired.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,25 +2,30 @@

## MEASURED

`crates/cognitive-shader-driver/examples/recipe_selector_probe.rs`, now 12
tests (7 new), 5 disable runs red. Builds on D-GSO-6 (#1358) and the Round 6
`crates/cognitive-shader-driver/examples/recipe_selector_probe.rs`, now 14
tests (9 new), 10 disable runs red. Builds on D-GSO-6 (#1358) and the Round 6
cycle (#1359).

- `new_encounter` is no longer supplied. It is read from the world: the
encounter's independent roots minus the horizon's. That equals
`GadamerRevision`'s `new_independent_roots` with the horizon as ancestry.
- `new_encounter` is no longer supplied. It is read from the world: revising
would still change a mask of the horizon (projected claims, a root, an
inherited root, or a contradiction not yet in the tension). On all 65 536
worlds of a 2-bit universe it equals whether `revise` changes those masks.
- A first version tested new roots only and dropped rootless revisions
(codex review): a contradiction that withdraws a claim without a new root
(`ContradictionPreserved`) was never applied. Now it is applied once.
- The `Revision` recipe runs `GadamerRevision::revise`; only
`delta.resulting` reaches the next state.
- After one real revision the cycle rests (roots `0b101 → 0b111`). With the
write dropped it selects `Revision` every step and never rests.
- An echo (no new root) selects nothing. A held claim gaining its first
- An echo (same projection, roots held, no contradiction) selects nothing. A held claim gaining its first
root (`IndependentConfirmation`) selects `Revision` once.
- Every (policy, stand-in state) start replays to the same path and the
same final horizon.

Disable runs, each red: derived fact forced true; derived fact ignored in
favour of the supplied flag; revise result discarded; roots compared
against projected claims instead of roots; the bypass flag ignored. The
against projected claims instead of roots; the bypass flag ignored; each of
the four mask clauses dropped; the roots-only predicate restored. The
roots-vs-claims disable was green until the held-claim case was added.

## FINDING
Expand Down
3 changes: 2 additions & 1 deletion .claude/board/entries/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,14 @@ index row, (3) no duplicate entry id. Checks 1 and 2 are deliberately
opposite directions; the stranding this convention prevents shows up in
exactly one of them, never both.

227 entries, 2026-08-06 .. 2026-10-06.
228 entries, 2026-08-06 .. 2026-10-06.

| date | entry id | finding | file |
|---|---|---|---|
| 2026-10-06 | `v3-v4-dual-reading-round3` | | [2026-10-06-v3-v4-dual-reading-round3.md](2026-10-06-v3-v4-dual-reading-round3.md) |
| 2026-10-06 | `spofc-do-learn-as-compile-round6` | | [2026-10-06-spofc-do-learn-as-compile-round6.md](2026-10-06-spofc-do-learn-as-compile-round6.md) |
| 2026-10-06 | `D-GSO-6` | | [2026-10-06-selector-revision-wired.md](2026-10-06-selector-revision-wired.md) |
| 2026-10-06 | `selector-local-disagreement-wired` | | [2026-10-06-selector-local-disagreement-wired.md](2026-10-06-selector-local-disagreement-wired.md) |
| 2026-10-06 | `quack-r2il-one-evaluator-round4` | | [2026-10-06-quack-r2il-one-evaluator-round4.md](2026-10-06-quack-r2il-one-evaluator-round4.md) |
| 2026-10-06 | `D-MORTON-0` | | [2026-10-06-morton8x8-checked-address.md](2026-10-06-morton8x8-checked-address.md) |
| 2026-10-06 | `diff-plateau-as-expression-round5` | | [2026-10-06-diff-plateau-as-expression-round5.md](2026-10-06-diff-plateau-as-expression-round5.md) |
Expand Down
Loading
Loading