verdict-protocollisted
Install: claude install-skill AppVerk/av-marketplace
# Verdict Protocol
## What this is, and when to invoke it
The closing contract of a reporting agent is the last line its consumer parses — and the first thing that silently rots into free text. This skill sets the bar for that contract **at authoring time**: invoke it when writing or reviewing an agent's or command's *definition*, not during an ordinary review run.
Boundary: this skill owns the closing contract (verdict line, predicate, triage axis). The pre-report process — the self-falsification battery and its "Rejected after verification" / "Doctrine-gap candidates" sections — is owned by `finding-falsification` in this plugin; reference those sections, never redefine them.
## The minimum bar (MUST)
1. **Closed vocabulary.** The definition declares an enumerated verdict set (e.g. `APPROVED | NEEDS_FIXES | BLOCKED`); free-text verdicts are invalid — a consumer cannot route prose.
2. **Verdict is computed, not chosen.** Each value declares its deciding predicate over finding categories (e.g. APPROVED ⇔ zero Required findings; BLOCKED — exhaustion — takes priority over NEEDS_FIXES). An agent cannot hand-pick APPROVED while Required findings stand.
3. **Exhaustion semantics.** Bounded-round agents declare what round exhaustion yields (e.g. BLOCKED after N rounds without progress) — distinct from success and from failure; "ran out of budget" must never read as either.
4. **Caveated verdicts.** A pass scoped to what was verifiable ("complete as far as statically verifiable