Definition of done (Markdown)
Seven lines that apply to every story, with a column for where each one is enforced. A line with nothing in that column is a line that gets skipped under a deadline.
# Definition of done
One standard for every story, not a per-story checklist. Work that does not meet it is not
released and is not shown at review: it goes back to the backlog.
Start from these seven and change them to fit your product. Keep it short — a definition of done
that runs to thirty items is one nobody reads.
- [ ] The change has an automated test that fails without it, and the suite passes in CI.
- [ ] Code has been reviewed by someone who did not write it.
- [ ] No new linter, type, or accessibility violations.
- [ ] New or changed behaviour that users see is documented where users will look.
- [ ] Feature flags default to off, and the change is deployable without a manual step.
- [ ] No known defect of severity Major or above is left open against the work.
- [ ] Observability: the new path emits whatever the team needs to tell whether it is working in production.
## Where each line is enforced
Fill this in. A line with nothing in the right-hand column is a line that will be skipped under a
deadline, and nobody will know.
| Line | Enforced by |
| --- | --- |
| The change has an automated test that fails without it, and the suite passes in CI | |
| Code has been reviewed by someone who did not write it | |
| No new linter, type, or accessibility violations | |
| New or changed behaviour that users see is documented where users will look | |
| Feature flags default to off, and the change is deployable without a manual step | |
| No known defect of severity Major or above is left open against the work | |
| Observability: the new path emits whatever the team needs to tell whether it is working in production | |
## What does not belong here
- Anything specific to one story. That is an acceptance criterion.
- Anything nobody checks. It teaches the team the whole list is optional.
- Anything outside the team's control. A sign-off is a release gate, not a definition of done.
- Anything that cannot pass or fail, such as "code is clean".
Go/no-go release scorecard (CSV)
Eleven criteria with a column for the evidence, the owner, and the date a waiver expires. Fill in the thresholds before the build exists.
Criterion,Evidence required,Evidence,Met (yes/no/waived),Owner,Resolve by (if waived)
"One named release owner, and they are in the room.",Name,,,,
Every criterion has a threshold that was written before the results were known.,Date the thresholds were agreed,,,,
"Test results are per suite, per build, with reruns and skips visible.","Build id, suite, pass/fail, rerun count, approved skips",,,,
"Open defects are listed by severity, with the workaround for each.",Link to the filtered list; count at Blocker and Major,,,,
Non-functional readings are next to the thresholds they were meant to meet.,"Reading and threshold, e.g. p95 740 ms against 800 ms",,,,
"Rollback has been rehearsed, with a known duration.",Date last rehearsed and how long it took,,,,
Someone is named to watch a named signal for the first hours after release.,"Name, signal, and for how long",,,,
Support has the release note and the known-issue workarounds.,"Confirmed by whom, and when",,,,
"Reduced scope was considered explicitly, not just go or hold.",What could ship without the part that is not ready,,,,
"Every waiver has a named owner, a mitigation, and a date.","One row per waiver, filled in below",,,,
The decision and its evidence are recorded where the next release can read them.,Where,,,,
Decision (go / go with reduced scope / hold),,,,,
Decided by,,,,,
Date,,,,,