commit-message-generator
Generate appropriate commit messages based on Git diffs
When & Why to Use This Skill
This Claude skill automates the generation of professional Git commit messages by analyzing code diffs. It ensures consistency by following the Conventional Commits specification and provides logical commit splitting recommendations to maintain a clean, readable, and organized repository history.
Use Cases
- Standardizing Commit History: Automatically generate commit messages that follow the Conventional Commits format (feat, fix, docs, etc.) to ensure team-wide consistency.
- Atomic Commit Guidance: Analyze extensive code changes and receive suggestions on how to split them into smaller, logical, and atomic commits for better code review.
- Automated Change Summarization: Transform complex Git diffs into clear, bulleted lists of changes, saving developers time on manual documentation and changelog preparation.
| name | commit-message-generator |
|---|---|
| description | Generate appropriate commit messages based on Git diffs |
Prerequisites
- This Skill retrieves Git diffs and suggests meaningful commit messages
- Message format should follow Conventional Commits
- Commit messages should have a one-line Conventional Commits header, an optional blank second line, and from the third line onward include a bulleted list summarizing the changes
- Commit messages should be in English
- Never perform Git commit or Git push
Steps
- Run
git statusto check modified files - Retrieve diffs with
git difforgit diff --cached - Analyze the diff content and determine if changes should be split into multiple commits
- For each logical group of changes:
- List the target files
- Generate a message in English compliant with Conventional Commits
- Suggest the command:
git add <files> && git commit -m "<message>"
- If changes are extensive and should be split, provide:
- Rationale for the split
- Multiple commit suggestions with their respective target files and messages
Commit Splitting Guidelines
- Split commits when changes span multiple logical concerns (e.g., feature + refactoring)
- Group related files that serve the same purpose
- Keep each commit focused on a single, atomic change
Notes
- This Skill must never execute
git commitorgit push - Only suggest commands; execution is entirely at user's discretion
- Users must explicitly perform commits and pushes themselves