| name | commit-message |
| description | Generate conventional commit messages - use when creating commits, writing commit messages, or asking for git commit help |
Commit Message Skill
Generate commit messages following the Conventional Commits specification.
Format
<type>(<scope>): <description>
[optional body]
[optional footer]
Types
| Type | Description | When to Use |
|---|
feat | New feature | Adding new functionality |
fix | Bug fix | Fixing existing bugs |
docs | Documentation | README, docs, comments only |
style | Formatting | Code style (no logic change) |
refactor | Refactoring | Code change without new features/fixes |
perf | Performance | Performance improvements |
test | Testing | Adding or updating tests |
build | Build system | Dependencies, build tools |
ci | CI/CD | GitHub Actions, pipeline changes |
chore | Maintenance | Maintenance tasks |
Rules
- Subject line maximum 72 characters
- Use imperative mood ("add" not "added" or "adds")
- No period at end of subject line
- Separate subject from body with blank line
- Body explains what and why, not how
- Footer for breaking changes:
BREAKING CHANGE: description
Examples
Simple
fix(auth): prevent redirect loop on expired sessions
With scope and body
feat(api): add rate limiting to public endpoints
- Limits requests to 100/minute per IP
- Returns 429 status with retry-after header
- Configurable via RATE_LIMIT_MAX env variable
Breaking change
feat(api)!: change response format to JSON
BREAKING CHANGE: API now returns JSON instead of XML
Process
- Analyze the changes made
- Determine the type (feat, fix, refactor, etc.)
- Identify scope if applicable (auth, api, db, etc.)
- Write a concise description (imperative mood)
- Add body if more context is needed
- Check character limits