Go to file
Levi Neuwirth 28cd991502
P13-S27 amendment 2: a touch table and an absence rule are one allowlist
The independent review of amendment 1 returned four findings, every one of
them in amendment 1's own text rather than in the implementation it ruled
on. Sweeping each finding's other sites turned up a fifth the review did
not reach. Five findings, four blocking.

1. Touch row 15 stages crates/epiphany-textproj/src/lib.rs while two other
   clauses call that exact file deliberately absent and make gate 4 fail if
   it is staged. The staged tree therefore failed the contract as amended,
   and the execution report called gate 4 clean because it checked staging
   against §2's table and not against the absence rule below it.

   That file is where COMPANION_VERSION lives (:72), so its absence WAS the
   mechanical guard on the ruling's "COMPANION_VERSION stays 0.14.0". Row 15
   removed the guard silently. Fixed by splitting the absence sentence into
   the two unrelated rules it conflated, and by adding gate 4a, which
   compares the constant's value instead. Running it demonstrates why: the
   constant moved from line 70 to 72, so any diff-keyed check reports a
   change that did not happen.

   Rule A is also now explicit that it covers ONE of M7's three edit sites.
   serialize.rs and project.rs are staged under row 9, and absence cannot
   test a file that is supposed to be present.

2. "Direct construction at all 23 sites" is 39. The 23 is exactly touch row
   2's count of in-crate open sites in bundle.rs -- one file, one
   constructor -- restated as a cross-crate total over three. Corrected, and
   converted into a derivation from §0.4's surface so it can be rechecked
   without hand-counting.

3. Row 13's "92 converted sites" is 60 open + 32 create: the
   two-constructor figure, missing create_versioned's 3, inside the very
   amendment added to close that omission. The count is deleted rather than
   corrected -- the row needs "two crates", and any figure >= 1 makes the
   re-export unavoidable. Complete pre-S27 surface is 95.

4. Found by the sweep, not the review: §7 item 5 still had the report
   reconcile against open 60 + create 32. A report obeying it literally
   would re-derive the incomplete surface and call it a match. Also marks
   those figures pre-S27, since S27's own tests move the tree to 66/33.

5. "Touch rows 13 and 14" for the helper roots; they are 14 and 15.

Three of the five are count defects inside an amendment whose own subject
was a count defect, and two reproduce the exact omission it was written to
close. So amendment 2 deletes one count and derives the rest rather than
restating them more carefully; restating carefully is what rounds 1-7 tried.

Gate 4's earlier clean result is withdrawn -- measured against half of §2.
Gates 4, 4a and rules A/B re-run and pass. Gates 1-3 stand: the staged tree
is byte-identical to the one they ran against. Implementation still staged,
still not accepted; amendment 2 needs its own independent pass.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ps1szk2mSfgp4Cz21eVH9x
2026-08-09 13:25:52 +02:00
.github/workflows Editor T2 W3: the goldens become conformance gate [9/9] 2026-07-23 17:20:14 -04:00
crates Pin 3b's projection refusal was asymmetric: close the reachable half 2026-08-07 13:06:40 -04:00
spec P13-S27 amendment 2: a touch table and an absence rule are one allowlist 2026-08-09 13:25:52 +02:00
spikes/editor-toolkit Packet 2B: both candidates consume the frozen text apparatus 2026-07-30 21:42:05 -04:00
.gitignore Schema major 1 Phase F: ratify engrave I8/I9/I10 + process trail 2026-07-06 17:40:38 -04:00
CLAUDE.md CLAUDE.md: the entry point an agent actually reads 2026-08-07 13:40:48 -04:00
CONFORMANCE.md Editor T2 W3: the goldens become conformance gate [9/9] 2026-07-23 17:20:14 -04:00
Cargo.lock Editor T4-pre W2: the glyph outlines become a shared typed seam 2026-07-24 18:54:30 -04:00
Cargo.toml T4 round 0: iced is eliminated, and the probe that cleared it proved nothing 2026-07-28 19:01:51 -04:00