I wrote a smoke test whose only job was to catch a missing environment variable. It substituted a default when the variable was absent, so it could not detect the one defect it existed to catch.
I wrote a build smoke test whose entire purpose was to catch a missing environment variable, the one whose absence breaks the build. An independent review read it and found that when the variable was absent, the script quietly substituted a sensible default. So it proved the build worked with an injected value, and could not possibly detect the single defect it existed to catch. A green result from it meant nothing at all.
That is why sign-off has to be adversarial, and separate from the thing being signed off. Proofy captures a running app, reads the acceptance criteria straight off the task rather than from whatever the builder claims it did, and grades each criterion as pass, fail or unclear with a vision model. Failures can be filed back as fix tasks instead of sitting in a report nobody reopens.
It is properly paranoid about its own evidence. Blank, tiny, corrupt and wrong-sized screenshots are rejected as invalid, so the existence of a file is never itself the proof. A receipt claiming a pass while pointing at a missing artefact is downgraded rather than accepted. Verification fails with named, specific reasons such as missing, stale, wrong commit or wrong host, instead of letting a caller treat an absent file as a green light.
It also has no idea which model graded anything, because that routing is delegated. I think that is the right boundary. A tool that certifies work should know everything about how to check evidence and nothing about who supplied it. My smoke test failed precisely because it was allowed to grade itself, and every rule above is just a refusal to let that happen twice.