02-sops

acceptance contract template

2026-06-09·sop·source: derived from the commissioning brief (2026-06-09-commissioning-as-agent-spec-craft) + founder ask to harden the verify-* family
acceptance-contractverifydispatchverificationcommissioning

ACCEPTANCE CONTRACT — canonical template

The single source of truth for the acceptance-contract block used by the verification family. Authored at dispatch/spec time, before the worker starts — so the output verifier scores against criteria written before anyone saw the output, not a fresh re-interpretation of intent. This is the structural fix for confirmation bias and for the May-31-class "judged it good because it sounded good" failure.

Direct lineage: the [[2026-06-09-commissioning-as-agent-spec-craft]] brief (define the finish line + a pre-registered acceptance test; stay method-agnostic; scale gates to failure cost) and [[2026-06-09-mrbeast-superbowl-puzzle-multi-agent-case-study]] (the "churn" failure mode = outcome-defined but no crisp acceptance test).

The block (paste into any REQUIRED-tier dispatch, fill every field)

ACCEPTANCE CONTRACT
- DONE = <binary, observable test(s) for "complete" — checkable WITHOUT re-interpreting intent.
         Good: "file at /abs/path has H2 sections A,B,C; every factual claim cites a real file:line
         or URL; `npm test` exits 0; word count 800-1200." Bad: "a good summary", "looks right".>
- MUST = <required properties the artifact must have>
- MUST NOT = <out-of-scope items + failure conditions that void acceptance>
- REAL-GOAL GUARD = <the way an artifact could PASS the DONE checklist yet miss the actual intent —
         the Netflix-Prize / metric-gaming trap. The verifier must additionally check this, not just
         the checklist. e.g. "could cite real lines but cherry-pick to support a wrong conclusion".>
- ACHIEVABLE? = <is DONE reachable with the tools/context/budget given? If not, the dispatch is
         mis-scoped — FIX IT BEFORE DISPATCH rather than letting the worker churn. Name the binding
         constraint if borderline.>
- FAILURE COST → GATES = <reversible-cheap → 1 verifier | reversible-expensive → 1 verifier + spot-check
         | irreversible/expensive → majority-of-3 independent verifiers, distinct lenses>
- STATE OWNER = <the single source of truth the verifier reads to judge DONE — a file path, a tool
         output, a system state. Not "the worker says so".>

Rules

  1. Pre-registered, not post-hoc. The contract is written before the worker starts. A contract authored after seeing the output is not a contract — it rationalizes.
  2. DONE must be objectively checkable. If verifying DONE requires re-reading the founder's intent or making a judgment call, it is not yet a DONE condition — sharpen it until a fresh-eyes agent with zero context could score it.
  3. The output verifier scores against the contract, not a fresh rubric. Where a skill has a standing fixed rubric (e.g. verify-pdf-output's 12 binary checks), that rubric IS the contract — no separate block needed. The block is for open-ended work whose "done" isn't already pinned.
  4. Gates scale to failure cost, not to effort. Cheap-reversible work gets one verifier even if it took hours; irreversible/expensive work gets majority-of-3 even if it took minutes.
  5. No DONE → don't dispatch. A REQUIRED-tier dispatch with no objectively-checkable DONE is a verify-dispatch FAIL (rubric item 7).

Consumed by

Related