f4b1f59b85
T0's defect was proven three ways (the patch rejects, the guard tests fail, the transform emits an extra nop). This adds the end-to-end one, and its arithmetic closes exactly. Gating the CURRENT 611-region registry with the SUPERSEDED transform: rebuilt_bytes=1886260 original_bytes=1886208 -> 52 bytes LONG rebuilt_sha1=24c4c2a9c99cc7f5daf88c0a30107bda2d16340f original_sha1=e173426c157384ebf1b6caf8c6fea18a85a14af9 result=DIFF 52 bytes is 13 instructions, and 13 was derived INDEPENDENTLY from the original payload: the 15 maspsx=epilogue regions split 2 shapes A / 13 shapes B, classified by asking whether the word before the `jr $31` is a nop (A) or a real instruction (B), with the frame release after the jump in both cases. Each shape-B region gets one extra nop, so 4 x 13 = 52. A count taken from the bytes and a count taken from the failing gate AGREE. That is what makes this a measurement rather than an argument, and it is why the T0 record does not rest on a single line of tool output. ALSO RECORDED, because it is the trap this phase's own documentation warns about: my demonstration command piped the gate through `tail` and then printed `$?`, so the `>>> gate exit=0` line in that log is MEANINGLESS -- `$status` is a fish variable and the pipeline masked the gate's real status. `result=DIFF` is the authoritative field and the byte arithmetic is the independent check. Workflow section 6's rule is "use the gate's EXIT CODE as the gate"; I broke it while quoting it. Standing note for every future gate call: capture the exit code directly, never through a pipeline.