Two failures your CI reports as the opposite of what happened
An exit code cannot tell PASS from SILENT_FAILURE — both return 0. ProveDone runs your command, then reads what it actually left on disk.
[O] out/ep12/final.mp4 [X] out/ep12/img ← 12 vs usual 45 (dropped below 50% of baseline) ──────────────────────────────────────────── exit 0 | 1841.2s | SILENT_FAILURE
Nobody configured 45. It learned it from the runs that passed.
dist/assets/* counts tooBUILD FAILED at a perfectly normal sizedist/*.js, because that is how builds name thingsnode init.mjs . write gates/build.json write gates/test.json
It reads your package.json, Dockerfile and layout. Every guessed value is tagged
with a _note so you know exactly what to confirm.
Gate build.json is not valid: - expect[0]: unknown key "minBtyes" Refusing to run. A gate you cannot trust is worse than no gate.
node demo/try-it.mjs, two seconds, no dependencies, nothing installed.
Five ways your pipeline lies to you →
No dependencies. Node 18+. MIT. 28-case self-check included —
run it on your machine before you trust a single verdict.
30-day refund. No form, no questions.