Back to Catalog
📝
Commit Message Generator
FreeAutomatically analyzes your staged git changes and generates well-structured commit messages following the Conventional Commits specification. Supports Angular-style prefixes (feat, fix, refactor, docs, test, chore), scoped commits, breaking change annotations, and multi-line bodies for complex changes. Perfect for teams enforcing commit conventions or developers who want consistent, meaningful git history.
developmentClaude Code
SKILL.md
---
name: commit-message-generator
description: >-
Generate conventional commit messages from staged git changes. Use when the
user asks to commit, create a commit message, write a commit, or wants help
with git commits. Analyzes staged diffs and produces structured messages
following the Conventional Commits specification.
version: "1.0.0"
tools:
- Bash
- Read
---
## Commit Message Generator
Generate well-structured conventional commit messages by analyzing staged git changes.
## Workflow
1. **Check for staged changes**
Run `git diff --cached --stat` to see what's staged. If nothing is staged, tell the user and suggest they stage files first.
2. **Analyze the diff**
Run `git diff --cached` to get the full diff. Read through each file's changes carefully.
3. **Determine the commit type**
Based on the changes, select the appropriate type:
- `feat`: New feature or capability
- `fix`: Bug fix
- `refactor`: Code restructuring without behavior change
- `docs`: Documentation only
- `test`: Adding or updating tests
- `chore`: Build, CI, dependencies, tooling
- `style`: Formatting, whitespace, semicolons
- `perf`: Performance improvement
4. **Determine scope (optional)**
If the changes are localized to a specific module, component, or area, include a scope: `feat(auth): ...`
5. **Write the subject line**
- Use imperative mood: "add" not "added" or "adds"
- Keep under 72 characters
- Don't end with a period
- Be specific: "add OAuth2 Google login flow" not "update auth"
6. **Write the body (if needed)**
For non-trivial changes, add a body separated by a blank line:
- Explain WHY, not what (the diff shows what)
- Wrap at 72 characters
- Use bullet points for multiple reasons
7. **Check for breaking changes**
If the change breaks backward compatibility, add:
```
BREAKING CHANGE: description of what breaks and migration path
```
8. **Present the commit message**
Show the full message to the user and ask for confirmation before committing.
## Rules
- Never skip the diff analysis — always base the message on actual changes
- If changes span multiple unrelated concerns, suggest splitting into separate commits
- Always use imperative mood in the subject
- Subject line must be under 72 characters
- Use a HEREDOC for the commit command to preserve formatting
- Include Co-Authored-By if the user requests it
## Example Output
```
feat(auth): add OAuth2 Google login flow
Implement Google OAuth2 authentication using Supabase Auth provider.
Users can now sign in with their Google account in addition to email
magic links.
- Add Google provider configuration in Supabase dashboard
- Create OAuth callback handler at /auth/callback
- Update login page with Google sign-in button
```Download
This skill is free — download instantly, no account required.
Installation
1. Download the ZIP
Click the download button above
2. Extract to skills directory
~/.claude/skills/commit-message-generator/3. Restart Claude Code
The skill auto-discovers on next session