authoring-commits
Conventional Commits standards for git messages. Use when creating commits, writing commit messages, or reviewing commit history.
When & Why to Use This Skill
This Claude skill streamlines the software development workflow by enforcing the Conventional Commits v1.0.0 standard for Git messages. It assists developers in authoring structured, imperative-style commit messages that clearly distinguish between features, fixes, and breaking changes. By standardizing version control history, it facilitates automated changelog generation, improves team collaboration, and ensures strict adherence to Semantic Versioning (SemVer) principles.
Use Cases
- Automated Commit Authoring: Quickly generate standardized commit messages for various types of changes including 'feat', 'fix', 'docs', and 'refactor' while maintaining the imperative mood.
- Breaking Change Management: Correctly identifying and flagging breaking changes using the '!' syntax or footer notes to ensure accurate Semantic Versioning (SemVer) updates.
- Commit History Auditing: Reviewing and refactoring existing git logs to ensure they meet professional standards and are free from prohibited AI-generated attributions or informal formatting.
- CI/CD Integration Support: Creating machine-readable commit histories that allow automated tools to parse changes and generate accurate release notes or changelogs.
| 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