| name | authoring-commits |
| description | Conventional Commits standards for git messages. Use when creating commits, writing commit messages, or reviewing commit history. |
Commit Authoring
Write commit messages following Conventional Commits v1.0.0.
Message Structure
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
Rules
- Prefix with type, optional scope in parentheses, optional
!for breaking changes, colon, space featfor new features (MINOR in SemVer)fixfor bug fixes (PATCH in SemVer)- Description immediately follows the colon and space
- Body separated by one blank line, free-form
- Footers one blank line after body, token-separator-value format
- Footer tokens use
-instead of spaces (exceptBREAKING CHANGE) !before:indicates breaking change;BREAKING CHANGE:footer may be omitted if!is used- Breaking changes correlate with MAJOR in SemVer
Types
| Type | Purpose | SemVer |
|---|---|---|
feat |
New feature | MINOR |
fix |
Bug fix | PATCH |
docs |
Documentation only | - |
style |
Formatting, whitespace | - |
refactor |
Neither fix nor feature | - |
perf |
Performance improvement | - |
test |
Adding or updating tests | - |
build |
Build system or dependencies | - |
ci |
CI configuration | - |
chore |
Maintenance tasks | - |
Description
Use imperative mood: "add feature" not "added feature". Keep under 50 characters. No period. Lowercase after type prefix.
Body
Wrap at 72 characters. Explain what and why, not how.
Prohibited
Do not include "Generated with Claude Code", AI attribution, Co-authored-by lines for AI, emoji, time estimates, dates, or TODO items.
Examples
Simple:
docs: correct spelling of CHANGELOG
With scope:
feat(lang): add Polish language
Breaking change:
feat!: send email to customer when product ships
BREAKING CHANGE: customers now receive emails by default.
With body:
fix: prevent duplicate form submissions
Disables submit button after first click and adds
debounce to the handler.
With footer:
fix: resolve race condition in auth flow
Refs: #123
Reviewed-by: Alice