← All posts
PRINCIPLE2026-10-2503 / 07

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.

exit codesveylqorix
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.

veylqorix-policy.jsonveylqorix
{
  "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.