The three acceptance altitudes
Acceptance checks are partitioned by altitude — and the altitudes are the handoffs between who certifies done, not three flavors of test. Each check belongs to one actor: the implementer (provable), the reviewer (judgeable), or you (tasteable). Falsifiable (B5) means settleable the same way twice; each altitude is one actor settling it.
provable the implementer's exit
Certified by the implementer: the goal is met. Shown by a runnable command where one fits (npm test -- trade-in — exits 0), or by the implementer's grounded assessment against the code and its own tool results — evidence, not opinion.
A runnable command is the strongest form of that evidence, not the required form. What's required is that the implementer can establish the goal is met before it stops and hands off. Not every goal reduces to a command, and pretending it does is how specs end up weak.
judgeable the reviewer's gate
Certified by a fresh-context reviewer agent: it judges the implementer's interpretation against a named spec section and the repo's standards (conventions/, technical/) — including the nuanced bars the goal can't fully state, like performance and security.
Falsifiability gate: the named section, which is mandatory — a judgeable item that cites no section isn't settleable, so Specline flags it. This is the check on the implementer's self-assessment; it bounces work back within review_rounds_before_human before reaching you.
e.g. "matches the empty-state behavior in §4.3."
tasteable your gate
Certified by the decider, once, at the acceptance gate — taste, product-fit, anything no command or review can falsify. The final, unbounded judgment.
e.g. "the onboarding flow feels effortless."
The handoffs, in order
The implementer asserts done (grounded), the reviewer independently checks the interpretation, the human accepts. Judgment is layered, not banished — each altitude is the next actor's turn.
| Altitude | Actor | Certifies | Bound |
|---|---|---|---|
provable | Implementer | The goal is met — by command or grounded assessment. | The inner loop: loop_budget / stale_after. |
judgeable | Fresh-context reviewer | The interpretation matches the named sections + standards. | The outer loop: review_rounds_before_human. |
tasteable | The decider | It's right. Final accept. | None — unbounded judgment, once. |
Depth scales with risk. blast_radius gates the depth of the judgeable partition, not its existence: a low blast radius may leave it empty (no separate reviewer); high makes a fresh-context reviewer mandatory.
Specline's limit. Specline checks, in planning, that the partition is present and a judgeable item names a section. It cannot judge whether the implementer's assessment was sound or the reviewer was right — that's the actors' job, then yours.
Up: handbook — building (see also review, then accept). The law: the canon, "Falsifiable or Draft" (B5) and "The build loop".