D058 - A check guards every symbol it calls
Status: decided Date: 2026-09-26
The harness skips a check whose own table-row symbol is null. A check
body that calls any other platform symbol marks it with
OBS_REQUIRE(&sym, ...) and tests its address first.
obscene-tool guards compares the symbols each body calls
with the ones it guards and fails on the difference; it runs in the
gate.
Why: every platform declaration is weak, so an unresolved second symbol is a jump to zero that loses the rest of the run. An unguarded second call also makes the announced symbol a lie about which call died. A rule only written down was broken in dozens of places.
Rejected: trusting reviewers to remember - demonstrably did not hold.