2.2 KiB
§176i — WHAT A STATIC PRE-GATE CHECK CAN AND CANNOT PROVE (P31 S52, wave Q)
tools/pregate_check.py validates a slate in 0.7s instead of a 5-minute rebuild, and wave Q
was the first slate all session to reach the gate already reporting clean. It then failed the
build twice. Both failures are outside what any text-only check can see, and knowing that
boundary is the point of this entry — a tool whose limits are unknown gets trusted past them.
What it proves (all five checks are properties of the substituted text): typedef used above its definition · type never defined · duplicate typedef · one symbol declared two incompatible ways · definition contradicting a visible prototype.
What it CANNOT prove, with the wave-Q evidence:
- LINK-time undefined references. Wave Q died on
undefined reference `.L80050F24'. That label lives insidegfx2D_BG0_OBJ_698(0x80050EA4) and another function's.sbranches to it. Converting a function to C DELETES the local labels its neighbours jump to. No amount of reading the.creveals this; it is a property of the whole link. This one IS statically checkable, just not from the text: scan every other.sfor label references landing inside the candidate's[addr, addr+4·nins)range and refuse those candidates. Worth building — it is the split-file/jump-table class in a new costume. - BYTE mismatches. With the link fixed the binary BUILT and the SHA differed, i.e. a draft
that
match_onecalls MATCH is wrong in a way only the whole-binary gate sees (§174 law 1c).reloc_identityhad already named six suspects — includingfunc_80034C24storing toD_80078F20where the target referencescdReq_sectorHdrBuf+0xE0— which is exactly the division of labour to rely on: the text checker for shape, the reloc oracle for identity, the gate for truth.
Corollary — a clean pre-gate is a licence to build, not a prediction of success. It removes the failure modes that are cheap to remove. Budget one gate attempt for the ones that are not, and when the binary builds but the hash differs, BISECT: it costs wall-clock and zero tokens, which is the right trade whenever agent budget is the scarce resource.