Purpose
A Definition of Done is the shared "done" checklist for every story. Its point: kill differing notions of "done" ("works on my machine" ≠ "shippable"). "Almost done" = not done. DoD is the exit filter (vs DoR, the entry): until met, the story isn't closed. One quality bar for the whole team.
Template
# Definition of Done — a story is done when:
- [ ] Code written, to conventions.
- [ ] Tests added and green.
- [ ] Code review passed.
- [ ] All acceptance criteria met.
- [ ] (Web) browser pass done (Playwright).
- [ ] Neighbors not broken (regression green).
- [ ] Docs/release notes updated.
- [ ] Merged/deployed.
Laskoff OS hard rule: verify green + browser test passed + report = closed. Otherwise not closed.
Example 1 — DoD met
# Story "Save to favorites" — DoD check
- [x] Code to conventions; tests (add/remove/persist) green; review passed.
- [x] All 4 acceptance criteria met; browser pass ok; card-render regression green; docs updated, merged.
✅ CLOSED.
Example 2 — DoD NOT met
# Story "Auto-clip" — DoD check
- [x] Code works on the demo.
- [ ] Edge tests (short video, STT failure) missing. ❌
- [ ] Browser pass skipped. ❌ - [ ] Upload regression unchecked. ❌
⛔ NOT CLOSED despite "works on the demo". Action: add edge tests, run in the browser, check regression — then close.
Quality checklist (of the DoD)
- Criteria binary.
- Same for the whole team.
- Includes neighbor/regression check.
- (Web) mandatory real browser pass.
- Realistic and always enforced.
Common mistakes
"Works on my machine" = done; "almost done"; skipping regression; DoD for show; confusing with DoR.