From 7086b8ed4649a234c0d0510fcdff5bb32205cfd6 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 25 Aug 2026 17:10:16 +0000 Subject: [PATCH] plan(r2il-contract): carry W0's verdict into the wave table itself The follow-on status lived only in PR #1028's body, so a session reading the plan alone -- the likeliest path -- would have seen W2 with its original gate and walked straight into the blocked axis. Section 0 of this same document argues against exactly that kind of drift, so the status belongs in the register that claims to hold status. W2 is marked blocked-by-OGAR-mint-decision, with the change of kind spelled out: the gate is no longer 'W0 decides how the space axis is carved' but 'the custom axis must not enter the mint in this carving at all'. The three undecided repair options are named, fixed spaces 0-3 are noted as unaffected, and container concepts that never touch the space axis are explicitly not blocked, so the cone does not stop more traffic than it should. W1 is marked may-proceed with the one condition under which it inherits the block. --- .claude/plans/r2il-machine-semantic-contract-v1.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.claude/plans/r2il-machine-semantic-contract-v1.md b/.claude/plans/r2il-machine-semantic-contract-v1.md index 788905afb..141679b7e 100644 --- a/.claude/plans/r2il-machine-semantic-contract-v1.md +++ b/.claude/plans/r2il-machine-semantic-contract-v1.md @@ -208,8 +208,8 @@ per workspace rule (grindwork → Sonnet; accumulation/orchestration/gates | wave | deliverable | falsifier / kill condition | |---|---|---| | **W0** | ~~`Custom(n)` census~~ **RUN 2026-08-25 — see the ⊘ note in §3.** Census: 0 custom spaces in 94,536 rows / 4 binaries (latent). Mechanism falsified in code: the lo-u16 is a rank in an unnamed table; two arches collide byte-identically | **VERDICT: fixed spaces 0–3 stay; the custom axis is BLOCKED from the `0xC4` mint as carved.** The kill condition fired on a third possibility the row did not anticipate — neither "content" nor "reading", but a reading relative to a table absent from the address | -| **W1** | the R2IL V4 tenant spec: ClassView carving of the 12 bytes for Op / Varnode-ref / macro-ref rows, written against `le-contract.md` §3 | field-isolation matrix test (I-LEGACY-API-FEATURE-GATED): write each field, assert all others unchanged. Any aliasing ⇒ re-carve | -| **W2** | the `0xC4 BinaryLifting` mint (ruff PR3 arc, O5) — container concepts only, gated on W0's verdict for the space axis | mint request names concepts; a concept that encodes per-binary content is rejected by W0's rule | +| **W1** | *(status 2026-08-25: **MAY PROCEED**, independently of W0's verdict — insofar as its carving work does not depend on the custom-space decision. Where it does touch that axis, it inherits W2's block.)* the R2IL V4 tenant spec: ClassView carving of the 12 bytes for Op / Varnode-ref / macro-ref rows, written against `le-contract.md` §3 | field-isolation matrix test (I-LEGACY-API-FEATURE-GATED): write each field, assert all others unchanged. Any aliasing ⇒ re-carve | +| **W2** | ⛔ **BLOCKED-BY-OGAR-MINT-DECISION (W0 ran 2026-08-25).** The gate is no longer *"W0 decides how the space axis is carved"* — W0's verdict is that the **custom axis must not enter the mint in its current carving at all** (the lo-u16 is a rank inside a table the classid never names; two arches collide byte-identically). Fixed spaces 0–3 are unaffected and stay. **Do not resume W2 on the space axis** until OGAR rules on one of the three named-but-undecided options (arch in the address / raw SLEIGH identity / custom space outside the classid). Container concepts that do not touch the space axis are not blocked by this. | the original row's falsifier stands for the concept half; for the space half the block is the verdict, not a test to re-run. Entry: `E-W0-THE-SPACE-ORDINAL-IS-A-RANK-RELATIVE-TO-A-TABLE-THE-CLASSID-NEVER-NAMES-1` | | **W3** | palette wiring: macro-id byte → `{Learned,Explore}Palette[id]` → R2IL×BPE microcode, `ogar-loco` routing | B4-equivalent byte-exact round-trip through the palette; admission stays MUL's/the triangle's, NEVER the wiring's | | **W4** | `r2sleigh` seam: `r2sleigh-lift` emits INTO the tenant (R1 — no private graph then serialize). libsla STAYS — it is the oracle | parity: lift the same binary via today's path and via the tenant; byte-equal FlatFact streams. libsla removal is LAST (see below), never first | | **W5** | `lance-graph-java` facade: `PcodeOp`/`Instruction`/`Varnode` as lazy views over handles + masks | the mask-native gates (GraphHopTest allowlist, allocation gates) extended to the new views; `getPcode()` pays materialization ONLY when called — measured, not asserted |