Skip to main content

Commit checklist

Use before every commit. Full rules: commit-messages.md.

Title

  • Format: [WIP: ]<type>[<scope>][!]: <Subject>
  • Allowed type includes adr for architectural decisions
  • ADR commits: one ADR file only, with index/link updates
  • Subject: imperative, uppercase after :, no trailing period
  • Title ≤ 72 characters

Body and footers

  • Blank line between title and body (if body present)
  • Body lines ≤ 100 characters
  • If title has !, include BREAKING CHANGE: footer
  • At most one AI: footer (yes, no, mixed)
  • No WIP: on develop, master, release/*, or hotfix/*

Author and hooks

  • Author is the human operator (not a bot-only author)
  • pre-commit install and pre-commit install --hook-type commit-msg have been run
  • Staged / changed files pass pre-commit (default day-to-day scope)
  • Full-tree pre-commit run --all-files used only when the team deliberately chose repository-wide cleanup
  • If a commit fails a hook, fix and create a new commit (do not amend failed hook runs)

See workflow/pre-commit-policy.md.

A2C pre-commit hooks

  • .pre-commit-config.yaml includes a2c-pre-commit-hooks pinned by tag with check-changelog
  • CHANGELOG.md is staged when other release-relevant files are staged

See workflow/a2c-pre-commit-hooks.md.

Changelog

  • Release-relevant work has a bullet under CHANGELOG.md ## [Unreleased]
  • Changelog entries are user-facing — not raw commit dumps
  • Trivial internal-only changes correctly omitted

See workflow/changelog-policy.md.

Release (maintainers)

  • develop pipeline is green before bump
  • [Unreleased] reflects the intended release notes
  • python scripts/bump_release.py (or --dry-run first) with confirmed bump level
  • Fast-forward master from develop before tagging
  • Tag vX.Y.Z pushed from master; tag pipeline release:verify passes

See workflow/ci-release-flow.md and release-pipeline.md.

Before push

  • On develop (not direct commits to master for day-to-day work)
  • Commit message will pass gitlint (commit-msg hook)
  • CI green on develop before fast-forwarding master