This skill should be used when the user asks to "write a commit message", "generate a commit", "help me commit", "create a commit message for", "commit these changes", or mentions commits format. Provides guidance for generating compact, clear commit messages following Conventional Commits specification.
From agentic-docnpx claudepluginhub christophe1997/agent-extentions --plugin agentic-docThis skill uses the workspace's default tool permissions.
Generate commit messages that are compact, clear, and follow the Conventional Commits specification.
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
Key rules:
| Type | Usage | Example |
|---|---|---|
feat | New feature | feat: add user authentication |
fix | Bug fix | fix: resolve null pointer in login |
docs | Documentation only | docs: update API endpoints |
style | Formatting, no code change | style: format indentation |
refactor | Code change without fix/feature | refactor: extract utility function |
test | Adding/updating tests | test: add unit tests for auth |
chore | Build, CI, dependencies | chore: bump dependencies |
perf | Performance improvement | perf: optimize query execution |
ci | CI/CD configuration | ci: add GitHub Actions workflow |
build | Build system changes | build: update webpack config |
revert | Revert previous commit | revert: remove broken feature |
Scope indicates the affected module or component:
feat(auth): add OAuth2 support
fix(api): handle timeout errors
docs(readme): add installation steps
Keep scope short - typically one word.
For breaking changes, add ! after type/scope or include BREAKING CHANGE: in footer:
feat!: redesign API endpoints
BREAKING CHANGE: all endpoints now require authentication
feat: add password reset functionality
fix: resolve memory leak in worker process
docs: clarify installation requirements
refactor(search): extract ranking algorithm
test: add edge cases for date parser
chore(deps): bump eslint to 9.0.0
feat(api)!: change response format to JSON
Fixed the bug # Past tense, vague
Added new feature for user login. # Capitalized, period
feat: I added a new login page # First person
fix: fix the thing # Vague, not descriptive
updates to the codebase # No type, vague
feat(authentication-system): add oauth # Scope too long
git diff --stagedUse body for additional context when the change is complex.
Add body when ANY of these conditions are met:
| Condition | Threshold | Example |
|---|---|---|
| Large changes | >100 lines OR >5 files | Refactoring multiple modules |
| Complex logic | Non-obvious changes | Bug fixes, algorithm changes |
| Breaking changes | API changes, config updates | Removing deprecated endpoints |
| Multiple concerns | More than one focus | Fix + refactor in same commit |
Keep description-only when:
When adding body, include:
feat(api): add rate limiting to public endpoints
Implement token bucket algorithm for all public API endpoints.
Limit: 100 requests per minute per IP address.
This protects against abuse while maintaining compatibility
with existing clients.
Simple change (no body needed):
fix: resolve typo in login error message
Complex change (body required):
fix(auth): resolve race condition in token refresh
The concurrent refresh issue occurred when multiple tabs
tried to refresh expired tokens simultaneously. Now uses
mutex lock to serialize refresh requests.
Fixes #456
When referencing issues or PRs:
fix: resolve race condition in worker
The concurrent access issue occurred when multiple workers tried to
update the same cache entry simultaneously.
Fixes #456
Never add Co-Authored-By footer for AI agents (Claude Code, GitHub Copilot, OpenAI Codex, Cursor, etc.).
AI is a tool, not a co-author. The human takes full ownership of every commit in their repository.
feat: add user dashboard
Implement dashboard with analytics widgets and real-time updates.
All commits are attributed to the human user, regardless of AI assistance. This ensures:
Only use Co-Authored-By for human collaborators:
feat: add user dashboard
Co-Authored-By: Jane Doe <jane@example.com>