Pre-commit
- Format, lint and type checks pass with no warnings
- Tests pass locally; new behaviour has tests; bug fixes have a regression test
- Build passes
- No secrets, tokens, personal data or
.envfiles staged - No stray
console.log/print, commented-out code, stubs or silentTODOs - No new dependency without approval
- Diff is one concern and small enough to review
- Docs, ADRs,
AGENTS.mdand changelog updated if behaviour or conventions changed - Commit message follows Conventional Commits and says why