Commit checklist
Use before every commit. Full rules: commit-messages.md.
Title
- Format:
[WIP: ]<type>[<scope>][!]: <Subject> - Allowed type includes
adrfor 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
!, includeBREAKING CHANGE:footer - At most one
AI:footer (yes,no,mixed) - No
WIP:ondevelop,master,release/*, orhotfix/*
Author and hooks
- Author is the human operator (not a bot-only author)
-
pre-commit installandpre-commit install --hook-type commit-msghave been run - Staged / changed files pass pre-commit (default day-to-day scope)
- Full-tree
pre-commit run --all-filesused 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.yamlincludesa2c-pre-commit-hookspinned by tag withcheck-changelog -
CHANGELOG.mdis 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)
-
developpipeline is green before bump -
[Unreleased]reflects the intended release notes -
python scripts/bump_release.py(or--dry-runfirst) with confirmed bump level - Fast-forward
masterfromdevelopbefore tagging - Tag
vX.Y.Zpushed frommaster; tag pipelinerelease:verifypasses
See workflow/ci-release-flow.md and release-pipeline.md.
Before push
- On
develop(not direct commits tomasterfor day-to-day work) - Commit message will pass gitlint (commit-msg hook)
- CI green on
developbefore fast-forwardingmaster