configs/claude-code/skills/conventional-commits/SKILL.md
Commit changes in a git workspace using the Conventional Commits specification. Use when the user asks to commit, stage, or save changes to git, or mentions "conventional commits". Analyzes staged/unstaged changes, groups related modifications, generates properly formatted commit messages, and commits files separately or together as appropriate. Confirms with user when commit ordering is ambiguous.
npx skillsauth add poorrican/dotfiles conventional-commitsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Commit git changes using the Conventional Commits v1.0.0 specification.
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
| Type | Description | SemVer |
|------|-------------|--------|
| feat | New feature | MINOR |
| fix | Bug fix | PATCH |
| docs | Documentation only | - |
| style | Formatting, whitespace (no code change) | - |
| refactor | Code restructuring (no feature/fix) | - |
| perf | Performance improvement | - |
| test | Adding/updating tests | - |
| build | Build system or dependencies | - |
| ci | CI configuration | - |
| chore | Maintenance tasks | - |
| revert | Reverting commits | - |
Breaking changes: Add ! after type/scope (e.g., feat!: or feat(api)!:) or include BREAKING CHANGE: footer.
Analyze workspace state
git status
git diff --stat
git diff --staged --stat
Review actual changes for each modified file to understand the nature of changes:
git diff <file> # unstaged
git diff --staged <file> # staged
Group changes logically
Examples of separate commits:
Examples of combined commits:
Determine commit order
When order is ambiguous: Ask the user before proceeding.
Stage and commit each group
git add <files>
git commit -m "<type>[scope]: <description>"
Description (first line):
Scope (optional):
feat(auth):, fix(parser):, docs(readme):Body (when needed):
Footer (when needed):
BREAKING CHANGE: <description> for breaking changesRefs: #123 for issue referencesReviewed-by: Name for attribution# Simple feature
git add src/auth/oauth.py
git commit -m "feat(auth): add OAuth2 support for Google login"
# Bug fix with scope
git add lib/parser.js
git commit -m "fix(parser): handle empty arrays in JSON input"
# Docs only
git add README.md
git commit -m "docs: add installation instructions for Windows"
# Breaking change
git add api/v2/
git commit -m "feat(api)!: redesign user endpoints for v2
BREAKING CHANGE: /users endpoint now requires authentication.
Old endpoint /users/list is removed, use /users instead."
# Refactor with body
git add src/utils/
git commit -m "refactor(utils): extract date formatting to separate module
Moved date formatting logic from multiple components into
a centralized utils/dates.py module to reduce duplication
and ensure consistent formatting across the application."
Ask the user when:
Example prompt:
I see changes to the auth module and the API routes. Should I:
- Commit them separately (auth first, then routes)?
- Commit them together as a single feature?
- Different order?
content-media
Create, read, edit .pptx decks, slides, notes, templates.
content-media
Create, read, edit .pptx decks, slides, notes, templates.
documentation
Extract text from PDFs/scans (pymupdf, marker-pdf).
documentation
Extract text from PDFs/scans (pymupdf, marker-pdf).