The day the gate learned to say INCOMPLETE
Most gates have two answers: pass, or fail. Veylqorix has a third, and it is the most important one. The quality gate exits 0 for PASS, 1 for FAIL, and 2 for INCOMPLETE — the state where coverage was degraded: a scanner errored, a mandatory check was skipped, or a required binary was missing.
0 PASS no blocking findings 1 FAIL blocking findings present 2 INCOMPLETE coverage degraded — never treated as green
Policy the agent cannot game
The gate is driven by a committed policy file. Blocking severities, secret-blocking, test-failure-blocking, and — the key one — blockOnScannerError and blockOnSkippedCheck: the policy explicitly says a broken scanner counts against you, not for you. Exceptions are deliberately unfriendly to gaming: each requires a documented reason, the count is capped by maxExceptions, they can expire, and every gate decision records which exceptions were honored.
{
"blockOnSeverity": ["CRITICAL", "HIGH"],
"blockOnSecrets": true,
"blockOnTestFailure": true,
"blockOnScannerError": true,
"blockOnSkippedCheck": true,
"reportOnSeverity": ["MEDIUM", "LOW"],
"maxExceptions": 5,
"exceptions": []
}An AI agent cannot suppress findings or raise thresholds without an entry that is present in the committed policy file and visible in every report. Raise the bar? You can — but only with an exception that is documented, capped, expirable, and auditable.