Claude-code-mastery commit-messages
Generate clear, conventional commit messages from git diffs. Use when writing commit messages, reviewing staged changes, or preparing releases.
install
source · Clone the upstream repo
git clone https://github.com/TheDecipherist/claude-code-mastery
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/TheDecipherist/claude-code-mastery "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/commit-messages" ~/.claude/skills/thedecipherist-claude-code-mastery-commit-messages && rm -rf "$T"
manifest:
skills/commit-messages/SKILL.mdsource content
Commit Message Skill
Generate consistent, informative commit messages following the Conventional Commits specification.
When to Use This Skill
- User asks to "commit", "write a commit message", or "prepare commit"
- User has staged changes and mentions commits
- Before any
commandgit commit
Process
- Analyze changes: Run
to see what's being committedgit diff --staged - Identify the type: Determine the primary change category
- Find the scope: Identify the main area affected
- Write the message: Follow the format below
Commit Message Format
<type>(<scope>): <description> [optional body] [optional footer(s)]
Types
| Type | Description | Example |
|---|---|---|
| New feature | |
| Bug fix | |
| Documentation only | |
| Formatting, no code change | |
| Code change, no new feature/fix | |
| Performance improvement | |
| Adding/fixing tests | |
| Build system changes | |
| CI configuration | |
| Maintenance tasks | |
| Revert previous commit | |
Scope
The scope should be a noun describing the section of the codebase:
,auth
,api
,db
,uiconfig- Feature names:
,search
,checkoutdashboard - Or omit if change is broad
Subject Line Rules
- Use imperative mood: "add" not "added" or "adds"
- Don't capitalize first letter after colon
- No period at the end
- Max 72 characters total
Body (when needed)
- Separate from subject with blank line
- Explain what and why, not how
- Wrap at 72 characters
- Use bullet points for multiple changes
Footer (when needed)
for breaking changesBREAKING CHANGE:
to close issuesFixes #123
to reference without closingRefs #456
Examples
Simple feature
feat(search): add fuzzy matching support Implement Levenshtein distance algorithm for typo tolerance in search queries. Configurable via FUZZY_THRESHOLD env var.
Bug fix with issue reference
fix(cart): prevent duplicate items on rapid clicks Add debounce to add-to-cart button and check for existing items before insertion. Fixes #234
Breaking change
feat(api)!: change response format to JSON:API BREAKING CHANGE: API responses now follow JSON:API spec. All clients need to update their parsers. - Wrap data in `data` object - Move metadata to `meta` object - Add `links` for pagination
Multiple related changes
refactor(auth): consolidate authentication logic - Extract JWT handling to dedicated service - Move session management from controller to middleware - Add refresh token rotation This prepares for the upcoming OAuth2 integration.
Output
When generating a commit message:
- Show the staged changes summary
- Propose the commit message
- Explain the type/scope choice if non-obvious
- Ask if the user wants to proceed or modify