Most teams find out what "done" meant at the end, in review, when it is
expensive to change. Everyone had a slightly different picture, and nobody wrote it down. So the work ships, and
the disagreement ships with it.
what it does
The spec becomes a pass or a fail.
checks, not hopes
Each requirement in the spec becomes a check with a clear answer. It passed, or it did not.
No room for "close enough".
written first
The checks exist before the code does. The work is built to meet a target that was agreed, not
reverse-engineered to match whatever got made.
no moving goalposts
Once "done" is written down, it stops moving. The bar is set in the open, where everyone
can see it, before the work starts.
something to answer to
Author has a target it can be measured against. Track knows what to watch. The whole pipeline
downstream inherits the same definition of right.
You rehearse before you perform. Production is no place to find out what "done" meant.
the acceptance gate
A check passes, or it turns back.
Each requirement becomes a check with one of two answers. What passes goes on to
Author. What fails is caught before a line is written, not after it ships.
the bar is set before any code · a check passes or it does not · nothing advances on "close enough"
what a check looks like
A wish becomes a number.
A line most teams would nod through in a meeting is turned into something a
machine can settle. Vague goes in. Measurable comes out.
"it should be fast"
becomes p95 under 200ms on the results endpoint, at 50 concurrent users. A number, a place
to measure it, and the load it holds under.
"handle bad input"
becomes a malformed request returns 400 with a named error, never a 500. The edge case is
settled here, not discovered in production.
"only the right people"
becomes a signed-out call to the admin route returns 401, a signed-in non-admin gets 403.
Two cases, two answers, both checkable.
Function, speed, security, the edges. Each becomes a check with a clear answer,
so "done" is a list you can run, not a feeling you argue about.
where it sits
Between the spec and the code.
Rehearse takes the spec that Capture wrote and turns it into the checks
Author has to pass. It is the second stage of five, and it is why the code has something real to answer to.