Commit Message Helper
A skill for creating properly formatted Git commit messages following the Conventional Commits specification.
When This Skill Activates
This skill activates when you:
- •Ask to commit changes
- •Mention commit messages
- •Request git commit formatting
- •Say "commit" or "git commit"
Commit Message Format
code
<type>(<scope>): <subject> <body> <footer>
Types
| Type | Description |
|---|---|
feat | A new feature |
fix | A bug fix |
docs | Documentation only changes |
style | Changes that do not affect the meaning of the code (formatting, etc.) |
refactor | A 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 |
chore | Changes to the build process or auxiliary tools |
ci | Changes to CI configuration files and scripts |
build | Changes that affect the build system or external dependencies |
Scope
The scope should indicate the area of the codebase affected:
- •For frontend:
components,hooks,store,styles,utils - •For backend:
api,models,services,database,auth - •For devops:
ci,deploy,docker - •Project-specific scopes are also acceptable
Guidelines
Subject Line
- •Use imperative mood ("add feature" not "added feature" or "adds feature")
- •No period at the end
- •Maximum 50 characters
- •Be specific and concise
Body
- •Separate subject from body with a blank line
- •Use the body to explain what and why, not how
- •Wrap at 72 characters per line
- •Mention any breaking changes
Footer
- •Reference issues:
Closes #123,Fixes #456,Refs #789 - •Multiple issues:
Closes #123, #456, #789 - •Breaking changes: Start with
BREAKING CHANGE:followed by description
Examples
Good Examples
code
feat(auth): add OAuth2 login support Implement OAuth2 authentication flow to allow users to log in with their Google or GitHub accounts. This change adds: - New OAuth2 middleware for handling callbacks - Updated login UI with social login buttons - User profile synchronization Closes #123
code
fix(api): resolve race condition in user creation The concurrent user creation requests could result in duplicate email entries. Added unique constraint and proper error handling. Fixes #456
code
refactor(user): simplify profile update logic Extracted common validation logic into a reusable function to reduce code duplication across profile update endpoints.
code
docs: update API documentation with new endpoints Added documentation for the v2 user management endpoints including request/response examples and error codes.
Bad Examples
code
updated stuff # Too vague, no type/scope
fixed bug # No context about which bug
feat: added feature # Redundant ("feat" means new feature)
Feat(User): Add Login # Incorrect capitalization
feat: A really really really long subject line that exceeds the recommended limit # Too long
Breaking Changes
When introducing breaking changes, add BREAKING CHANGE: to the footer:
code
feat(api): migrate to REST v2 The API endpoints have been restructured for better consistency. Old endpoints are deprecated and will be removed in v3.0. BREAKING CHANGE: `/api/v1/users` is now `/api/v2/users`. All consumers must update their integration by 2025-03-01.
Workflow
When writing a commit message:
- •Review changes - Run
git diffto understand what changed - •Identify type - Determine the type of change
- •Identify scope - Determine which area is affected
- •Write subject - Create a clear, concise subject line
- •Write body - Explain what and why (if needed)
- •Add footer - Reference issues or note breaking changes
Validation
Use the validation script to check commit message format:
bash
python scripts/validate_commit.py "your commit message"
Reference Documents
- •See
references/conventional-commits.mdfor full specification - •See
references/examples.mdfor more examples - •See
references/scopes.mdfor recommended scope naming