Other

/qa-verdict-gate

Mechanical kill-gate: enforce tri-state QA PASS/FAIL/INCONCLUSIVE — FAIL only for confirmed-observed failures, INCONCLUSIVE when the path couldn't be reached, and a qa-report.md artifact must exist. Triggers: QA verdict, QA done/complete, pre-merge QA, false-FAIL.

$ golems-cli skills install qa-verdict-gate

Updated 1 month ago

Fleet law: canon #4 owns user-visible completion; canon #3 owns evidence. This skill enforces QA verdict integrity, report artifacts, and rendered-state evidence.

What It Is

A deterministic detector over a QA transcript/verdict: a QA result is a verdict-integrity violation unless the agent's stated verdict matches the OBSERVED evidence in the same turn AND a terminal qa-report.md artifact exists. This is the MECHANICAL gate that /qa-video and /never-fabricate describe in prose. The pinned RED/GREEN transcript fixtures ARE the replayable gate (R-003/R-014 pattern, T6 deterministic smoke-spec shape). Sibling of /false-green-gate — same lib/transcript.mjs, same buildEvidence discipline (evidence comes from tool calls + tool_result OUTPUTS, never assistant prose).

The Rule — tri-state, evidence-anchored

Detector codeFires whenThe honest verdict instead
QA_FAIL_WITHOUT_OBSERVATIONa FAIL with no same-turn observed-failure evidence (no screenshot, no click that reached the surface, no observed error in a tool_result) — the failing path was never shown to be exercisedINCONCLUSIVE
QA_UNREACHED_NOT_INCONCLUSIVEthe transcript shows the path couldn't be reached ("couldn't load", "element not found", "blocked at step 0", net::ERR_*), but the verdict is FAIL or PASSINCONCLUSIVE
QA_NO_REPORT_ARTIFACTa QA "done/complete" claim with no qa-report.md written this turn carrying the checklist items (≥2)write the report first
QA_DECISION_CLAIM_NO_VISUAL_EVIDENCEa terminal QA/completion answer that feeds an Etan merge/ship/QA decision has no screenshot/dashboard/rendered-state reference embedded in that same answerembed the visual evidence reference where Etan answers
QA_USER_VISIBLE_WITHOUT_RENDERED_EVIDENCEa PASS/ready/done verdict about a user-facing surface is backed only by merge/plumbing state, with no same-turn screenshot/click/rendered page/HTTP 2xx probeprobe the rendered user-visible surface first

PASS = the stated verdict matches the observed evidence and the qa-report.md artifact exists. "Same turn" = the events since the last human message — the probe tool calls and their results the agent ran before its verdict. Negated/in-progress statements ("not done yet") are not verdicts. An explicit Verdict: INCONCLUSIVE line is authoritative over loose pass/fail words elsewhere in the prose.

Why FAIL is reserved

A false-FAIL (codex 019ee5ea#1) and a truncated QA with no artifact (019ee493#2/#4) are the two specimens this closes. A FAIL emitted when the regression path was never reached is worse than no QA — it sends a worker chasing a phantom bug. FAIL must come from a confirmed observation; everything the run could not actually exercise is INCONCLUSIVE, surfaced honestly.