Definition of Done
A change is done when all of these are true:
-
pnpm verifypasses locally (Biome, typecheck, unit + API tests, build, conformance). - New behaviour has tests at the lowest sensible level: pure logic in Vitest, endpoints in xUnit against PostgreSQL, games in conformance, user journeys in the e2e smoke test.
- Generated files are regenerated and committed (OpenAPI, API types, JSON Schemas);
git statusis clean afterpnpm build. - Docs describing the changed behaviour are updated in the same PR; links still resolve (the docs build validates them).
- An ADR exists for any decision that is expensive to reverse.
- For games:
SPEC.mdmatches the game, the conformance screenshot was looked at, and it was played on a phone-sized viewport. Its public page (/games/<id>/) comes fromgame.jsonand its icon by itself: thedescriptionis written for a stranger, the how-to is added toapps/web/src/content/games.ts(a test fails without it),pnpm --filter @tohe/routes buildregenerated the sitemap, and the page was looked at (pnpm --filter @tohe/web build). - For hub changes: the e2e smoke test passes against
pnpm devordocker compose up. - No secrets, no personal data, no new third-party network calls.
- CI is green on the pull request.