Skip to main content

Definition of done

A change is done when all of the following hold.

Always​

  • The requirement is met and nothing outside the requested scope changed.
  • Lint, format, and type checks pass (make lint, type-check).
  • Tests for the touched behavior exist and pass; a bug fix includes a regression test.
  • The coverage gate passes (80%).
  • make ci (or the repository's equivalent) passes locally.
  • Docs that describe changed behavior are updated in the same pull request.
  • No secrets, credentials, or .env files are committed.
  • The pull request follows the PR conventions and CI is green.

Conditionally​

TriggerExtra check
API changeOpenAPI and API docs updated; backward compatibility considered
Schema changeAlembic migration included and reviewed; rollback noted
Auth, input handling, or secretsSecurity review of the diff
UI changeScreenshot or recording in the PR; keyboard and accessible-name check
New dependencyReason stated and approved
Architectural decisionADR added

Reporting​

State what was verified and how, and what was not run and why. Report failures with their output; never report a check as passed that was not run.

Review findings​

Treat findings about correctness, safety, unmet requirements, broken checks, or missing required tests as blockers. Fix them or record the blocker explicitly.