Standardized commit message prefixes from the Conventional Commits specification.
Required Types
The specification mandates these two types:
| Type | Description |
|---|
| feat | A new feature for the user (correlates with MINOR in SemVer) |
| fix | A bug fix for the user (correlates with PATCH in SemVer) |
Common Additional Types
These types are not mandated by the specification but are widely used conventions from @commitlint/config-conventional (based on the Angular convention):
| Type | Description |
|---|
| docs | Documentation only changes |
| style | Formatting, missing semicolons, white-space, etc. (no code change) |
| refactor | Code change that neither fixes a bug nor adds a feature |
| perf | A code change that improves performance |
| test | Adding missing tests or correcting existing tests |
| build | Changes affecting the build system or external dependencies |
| ci | Changes to CI configuration files and scripts |
| chore | Other changes that don't modify src or test files |
| revert | Reverts a previous commit |
Breaking Changes
| Element | Description |
|---|
| BREAKING CHANGE | A footer token (not a type) indicating a breaking API change (correlates with MAJOR in SemVer) |
| ! | Append to any type (e.g., feat!:) to indicate a breaking change |
Format Elements
| Element | Description |
|---|
| scope | Optional noun in parentheses after the type describing a code section (e.g., fix(parser):) |