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
29 changes: 29 additions & 0 deletions .claude/board/INTEGRATION_PLANS.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,32 @@
## 2026-09-03 — `probe-r2il-live-regfile-v1` (PROBE, GREEN 2026-08-26) — BACKFILLED INDEX ENTRY

`.claude/plans/probe-r2il-live-regfile-v1.md`. The executable falsifier for
`r2il-machine-semantic-contract-v1` §7.8: a real 6502 routine, lifted to R2IL by
Ghidra's own SLEIGH spec and executed through `r2conc::SlabState` with machine
state bound to borrowed slabs, must produce architectural state identical to an
independently-written reference **on every field except `V`**. GREEN, 18/18,
seven disable runs red-then-green. `D-PRLR-1..5` minted in the same commit.

The `V` exclusion is the probe's own FINDING, not a weakening (§6a): Ghidra's
6502 `ADC` assigns the unsigned carry to the signed-overflow flag, so on
`255 × 255` both sides compute `0xFE01` and agree on every other field while
Ghidra leaves `V=1` and a real 6502 leaves `V=0`. The exclusion is itself tested
two-sided (falsifier D7 — it must diverge on some pairs and agree on others), and
the product is compared in full on every pair. Calling the result plain
"byte-identical" — as the first version of this entry did — overstates what the
18 checks establish.

Two results worth finding from the index rather than by reading 286 lines. **The
facet binding is a projection, not a byte-identity** — SLEIGH lays the 6502 out
across 55 bytes because each status flag is its own byte register, while the
semantic register file is 7; §7.8's V4 binding survives, restated correctly.
And **r2sleigh's CI has never run** (`total_count: 0`, ever), so every green here
is local — the same "a gate that never runs is not a gate" lesson tesseract-rs
recorded, found by checking rather than by being bitten.

Its parent plan was indexed 2026-09-03 (#1155); this probe was the second
instance of the same untracked-plan defect, counted in #1156's census.

## 2026-09-03 — `r2il-machine-semantic-contract-v1` (PLAN, 2026-08-25) — BACKFILLED INDEX ENTRY

`.claude/plans/r2il-machine-semantic-contract-v1.md`. Answers *"wie soll die
Expand Down
32 changes: 32 additions & 0 deletions .claude/board/STATUS_BOARD.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,35 @@
## probe-r2il-live-regfile-v1 (D-ids minted 2026-09-03; the plan shipped 2026-08-26)

`.claude/plans/probe-r2il-live-regfile-v1.md`. The falsifier for the EXECUTABLE
HALF of `r2il-machine-semantic-contract-v1` §7.8's V4 space binding: it validates
the lift-and-execute path against borrowed slabs. It does **NOT** exercise a
projection from SLEIGH's layout into a 12-byte V3 facet register — it measures
the two layouts and concludes one is needed. **The projection is unbuilt and
unvalidated**; reading this row as "the V4 binding is covered" is the misreading
it is worded to prevent. Untracked since it landed and carrying no D-ids — one of
the 53 counted in
`ISS-PLAN-TRACKING-IS-UNENFORCED` (#1156), and the second instance of the same
defect as its parent plan (#1155). Ids are minted against sections that already
exist; no scope is added.

| D-id | deliverable | status |
|---|---|---|
> **⚠ The mint is BOARD-ONLY, and that does not close #1156's root cause.**
> `D-PRLR-1..5` exist in this file; `grep -c "D-PRLR" .claude/plans/probe-r2il-live-regfile-v1.md`
> → **0**. `supersession_index.py` counts D-ids by scanning `.claude/plans/*.md`,
> so a board-only mint is invisible to its coverage column. #1156 named the root
> cause as *"a plan without a D-id is unaddressable"* — this PR makes the plan
> addressable FROM the board, it does not put ids in the plan. Same for
> `D-R2IL-1..5` (#1155). Writing the ids into the two plans is the real close and
> is deliberately not done here: it edits plan bodies, which both of those PRs
> declared out of scope.

| D-PRLR-1 | §2 the three-leg validity answer: side A's semantics are Ghidra's own SLEIGH spec (not ours), side B written in enforced isolation, side C arithmetic ground truth external to both | **Shipped 2026-08-26** — the design that makes the differential meaningful rather than self-confirming |
| D-PRLR-2 | §3/§7 the probe itself: a real 6502 routine lifted to R2IL and executed through `r2conc::SlabState` against an independent reference, all fields except `V` (see §6a — the `V` divergence is the probe's own finding, and the exclusion is falsifier-D7 two-sided) | **GREEN 2026-08-26** — 18/18, **seven disable runs red-then-green**. Code: r2sleigh `crates/r2conc/tests/{live_regfile,mos6502_oracle}.rs`, feature `probe-6502` |
| D-PRLR-3 | §6 the measured facts (each row naming what produced it, none predicted) | **Measured** — 6502 memory is `SpaceId::Ram` not `Custom(n)`; SLEIGH's register space spans **55 bytes** because each status flag is its own byte register, while the semantic register file is **7 bytes** |
| D-PRLR-4 | §6's consequence for §7.8: the facet binding MUST be a **PROJECTION** of the register file, never a byte-identity with SLEIGH's layout | **Constraint measured + pinned two-sided; the projection itself is NOT built and NOT validated** — `the_sleigh_register_space_is_sparse_so_the_facet_binding_is_a_projection` fails if SLEIGH ever packs the 6502 into 12 bytes, forcing a re-measure instead of letting a stale note stand |
| D-PRLR-5 | §9 the gate finding: **r2sleigh's CI has never run** — `--all-features` would execute this probe, but the repo reports `total_count: 0` workflow runs, ever (the workflow targets an unregistered self-hosted runner) | **OPEN, not fixed** — every green in §6/§7 is a LOCAL run, and the same holds for the `r2conc` crate merged in r2sleigh PR #5. Switching to a hosted runner is an operator infra call (the job compiles SLEIGH specs for every architecture), deliberately not a drive-by |

## r2il-machine-semantic-contract-v1 (BACKFILLED 2026-09-03 — the plan shipped 2026-08-25 with NO board tracking)

`.claude/plans/r2il-machine-semantic-contract-v1.md` (1427 lines). Untracked
Expand Down