Go to file
Levi Neuwirth 565b0f8f79 Round 2 recipe: the precommitted stand-in, oracles, and differential
Packet 2A's governing artifact, under CONTRACT_EDITOR_T4_SPIKE pin 13 —
written and reviewed before any candidate can consume it, because a
tolerance chosen after seeing a candidate's output is not a tolerance.

Ruling A permits "geometry/scene equivalence plus a bounded visual
differential under a controlled backend, NOT pixel equality". That phrase
had never been given a number. Section 10 gives it four rules; section 11
lists the mutations that must kill, and every one is now executed by a
binary that exits non-zero when a required kill does not happen.

Three things here were corrected by measurement, not by review:

* The em size. Revision 1 pinned 64 px, which puts Pagella's stems at
  5.4 device px — inside D1's structural blind spot of 2*EDGE_BAND_PX+1 = 5
  px. D1 would have reported `pass` on every stem in the fixture set. The em
  size is now derived FROM the blind spot: 128 px, stems 10.8 px.
* M4. Assigned to D4 by analogy with a dropped glyph; executing it showed
  the analogy is false. An `ff` ligature and two `f` glyphs carry nearly the
  same ink (0.07% of image mass, 1.20% in-region against a 2% tolerance), so
  a mass rule is the wrong instrument for a shape substitution. D1 sees it
  at 221 px outside the band. D4 keeps its threshold: tightening it to 1.20%
  would leave 1.3x over M10's measured 0.785%, and a threshold that close to
  a known-good AA variant is not a tolerance. D1 and D4 are complementary
  and neither is sufficient.
* The origin. The 1/1024 invariant caught this recipe's own stated constant:
  1.6 * 1024 = 1638.4 is not representable. Now 1638/1024.

Section 8 pins the check-5 accessibility oracle per platform rather than in
one toolkit's vocabulary — naming only AccessKit would have favoured C1, and
a criterion that encodes one candidate's stack is not a criterion.

Section 1.2 records the 2026-07-29 ruling: check 3 is NOT RUN (no
Arabic-capable face; pin 9), F-D is a separate Supplementary row that must
not upgrade it, and eligibility is unaffected because check 3 is not
disqualifying.

Section 12 routes six findings back to the W3 amendment, three of them found
by building against 3E rather than by reading it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RSX4zSLgKvtiXaPjnMqLGz
2026-07-29 18:39:52 -04:00
.github/workflows Editor T2 W3: the goldens become conformance gate [9/9] 2026-07-23 17:20:14 -04:00
crates G3a undo repair: the tombstone branch was reachable all along 2026-07-29 18:21:45 -04:00
spec G3a undo repair: the tombstone branch was reachable all along 2026-07-29 18:21:45 -04:00
spikes/editor-toolkit Round 2 recipe: the precommitted stand-in, oracles, and differential 2026-07-29 18:39:52 -04:00
.gitignore Schema major 1 Phase F: ratify engrave I8/I9/I10 + process trail 2026-07-06 17:40:38 -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