Conventional Commits 1.0.0 — a specification for writing commit messages that are human-readable and machine-parseable. Maps directly to Semantic Versioning: feat → MINOR bump, fix/perf → PATCH bump, breaking changes → MAJOR bump.
- Only
typeanddescriptionare required; everything else is optional - Scope narrows the affected area:
feat(auth):,fix(api): - Breaking changes use
!suffix orBREAKING CHANGE:footer (or both) - Footer tokens follow Git trailer convention
- Default to English, but match the project's existing convention — check
git logand follow whatever language recent commits use
<type>[optional scope][!]: <description>
[optional body]
[optional footer(s)]
Core
| Topic | Description | Reference |
|---|---|---|
| Format | Full grammar, header/body/footer rules, length limits | core-format |
| Types | All 11 types with SemVer impact and when to use each | core-types |
Features
| Topic | Description | Reference |
|---|---|---|
| Breaking Changes | ! syntax and BREAKING CHANGE footer — when and how |
features-breaking |
| Footers | Token format rules, issue references, common tokens | features-footers |
| AI-Generated Changes | Co-Authored-By attribution for agent-authored commits — mandatory once it applies, fixed value format, and what not to add |
features-ai-attribution |