
Git Commit Helper
- 22 installs
- 4 repo stars
- Updated April 11, 2026
- 89jobrien/steve
git-commit-helper is a Claude Code skill that generates Conventional Commits messages by analyzing staged git diffs.
About
git-commit-helper is a Claude Code skill that generates descriptive commit messages by analyzing git diffs. A developer uses it after staging changes to produce a message in Conventional Commits format with an appropriate type, scope, and body. It includes guidelines for imperative mood, breaking-change markers, and atomic commits.
- Generates conventional-commit messages from staged git diffs
- Follows type/scope/description format with body and breaking-change notes
- Includes a commit-message checklist and template
Git Commit Helper by the numbers
- 22 all-time installs (skills.sh)
- Ranked #381 of 733 Git & Pull Requests skills by installs in the Skillselion catalog
- Data as of Jul 28, 2026 (Skillselion catalog sync)
git commit helper capabilities & compatibility
- Capabilities
- commit message generation · conventional commits
- Works with
- github
- Use cases
- documentation
- Pricing
- Free
What git commit helper says it does
Generate descriptive commit messages by analyzing git diffs.
Follow conventional commits format:
npx skills add https://github.com/89jobrien/steve --skill git-commit-helperAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 22 |
|---|---|
| repo stars | ★ 4 |
| Last updated | April 11, 2026 |
| Repository | 89jobrien/steve ↗ |
What it does
Generate conventional-commit messages from staged git changes.
Who is it for?
Developers who want consistent, well-structured conventional-commit messages from their staged changes.
Skip if: Automating the commit itself or managing branches and pull requests.
When should I use this skill?
You have staged changes and need a clear commit message.
What you get
Produces a Conventional Commits message with the right type, scope, body, and breaking-change notes from the staged diff.
- conventional-commit message
By the numbers
- 7 conventional-commit types documented
- 7-item commit message checklist
Files
Git Commit Helper
Quick start
Analyze staged changes and generate commit message:
# View staged changes
git diff --staged
# Generate commit message based on changes
# (Claude will analyze the diff and suggest a message)Commit message format
Follow conventional commits format:
<type>(<scope>): <description>
[optional body]
[optional footer]Types
- feat: New feature
- fix: Bug fix
- docs: Documentation changes
- style: Code style changes (formatting, missing semicolons)
- refactor: Code refactoring
- test: Adding or updating tests
- chore: Maintenance tasks
Examples
Feature commit:
feat(auth): add JWT authentication
Implement JWT-based authentication system with:
- Login endpoint with token generation
- Token validation middleware
- Refresh token supportBug fix:
fix(api): handle null values in user profile
Prevent crashes when user profile fields are null.
Add null checks before accessing nested properties.Refactor:
refactor(database): simplify query builder
Extract common query patterns into reusable functions.
Reduce code duplication in database layer.Analyzing changes
Review what's being committed:
# Show files changed
git status
# Show detailed changes
git diff --staged
# Show statistics
git diff --staged --stat
# Show changes for specific file
git diff --staged path/to/fileCommit message guidelines
DO:
- Use imperative mood ("add feature" not "added feature")
- Keep first line under 50 characters
- Capitalize first letter
- No period at end of summary
- Explain WHY not just WHAT in body
DON'T:
- Use vague messages like "update" or "fix stuff"
- Include technical implementation details in summary
- Write paragraphs in summary line
- Use past tense
Multi-file commits
When committing multiple related changes:
refactor(core): restructure authentication module
- Move auth logic from controllers to service layer
- Extract validation into separate validators
- Update tests to use new structure
- Add integration tests for auth flow
Breaking change: Auth service now requires config objectScope examples
Frontend:
feat(ui): add loading spinner to dashboardfix(form): validate email format
Backend:
feat(api): add user profile endpointfix(db): resolve connection pool leak
Infrastructure:
chore(ci): update Node version to 20feat(docker): add multi-stage build
Breaking changes
Indicate breaking changes clearly:
feat(api)!: restructure API response format
BREAKING CHANGE: All API responses now follow JSON:API spec
Previous format:
{ "data": {...}, "status": "ok" }
New format:
{ "data": {...}, "meta": {...} }
Migration guide: Update client code to handle new response structureTemplate workflow
1. Review changes: git diff --staged 2. Identify type: Is it feat, fix, refactor, etc.? 3. Determine scope: What part of the codebase? 4. Write summary: Brief, imperative description 5. Add body: Explain why and what impact 6. Note breaking changes: If applicable
Interactive commit helper
Use git add -p for selective staging:
# Stage changes interactively
git add -p
# Review what's staged
git diff --staged
# Commit with message
git commit -m "type(scope): description"Amending commits
Fix the last commit message:
# Amend commit message only
git commit --amend
# Amend and add more changes
git add forgotten-file.js
git commit --amend --no-editReference Files
- `references/GIT_COMMIT.template.md` - Conventional commits format template with types, scopes, and examples
Best practices
1. Atomic commits - One logical change per commit 2. Test before commit - Ensure code works 3. Reference issues - Include issue numbers if applicable 4. Keep it focused - Don't mix unrelated changes 5. Write for humans - Future you will read this
Commit message checklist
- [ ] Type is appropriate (feat/fix/docs/etc.)
- [ ] Scope is specific and clear
- [ ] Summary is under 50 characters
- [ ] Summary uses imperative mood
- [ ] Body explains WHY not just WHAT
- [ ] Breaking changes are clearly marked
- [ ] Related issue numbers are included
Git Commit Message Template
Follow Conventional Commits specification for consistent, machine-readable commit history.
Commit Message Structure
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]Types
| Type | Description | SemVer Impact |
|---|---|---|
feat | New feature | MINOR |
fix | Bug fix | PATCH |
docs | Documentation only | - |
style | Formatting, no code change | - |
refactor | Code change, no feature/fix | - |
perf | Performance improvement | PATCH |
test | Adding/updating tests | - |
build | Build system/dependencies | - |
ci | CI configuration | - |
chore | Maintenance tasks | - |
revert | Revert previous commit | - |
Examples
Simple Feature
feat: add user authentication endpointFeature with Scope
feat(auth): add OAuth2 login supportBug Fix with Issue Reference
fix: resolve null pointer in user service
The getUser method was not handling missing records properly.
Closes #123Breaking Change (Footer)
feat: update API response format
BREAKING CHANGE: response now returns data in `items` array instead of `results`Breaking Change (Type Prefix)
feat!: drop support for Node 14Multi-paragraph Body
fix(parser): handle edge cases in date parsing
Previously the parser would fail silently on malformed dates.
Now it throws a descriptive error with the invalid input.
This change affects all date fields in the API response.
Reviewed-by: Jane Doe
Refs: #456Footer Tokens
| Token | Purpose |
|---|---|
BREAKING CHANGE: | Indicates breaking API change |
Closes #N | Auto-closes issue N |
Fixes #N | Auto-closes issue N |
Refs: #N | References issue without closing |
Reviewed-by: | Code reviewer attribution |
Co-authored-by: | Pair programming attribution |
Claude Code Attribution
When Claude generates the commit:
feat(api): implement rate limiting
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>Rules
1. Type is REQUIRED and lowercase 2. Scope is OPTIONAL, noun in parentheses 3. Description is REQUIRED, imperative mood ("add" not "added") 4. Body is OPTIONAL, separated by blank line 5. Footer is OPTIONAL, separated by blank line 6. Breaking changes MUST be indicated with ! or BREAKING CHANGE: footer 7. Maximum 72 characters for subject line 8. Use present tense ("add feature" not "added feature")
Quality Checklist
- [ ] Type matches the change category
- [ ] Description is concise and imperative
- [ ] Subject line under 72 characters
- [ ] Body explains WHY, not just WHAT
- [ ] Breaking changes clearly indicated
- [ ] Issue references included if applicable
Related skills
FAQ
What commit format does it use?
It follows the Conventional Commits format: type(scope): description with an optional body and footer.
How does it decide the message?
It analyzes the staged git diff to determine the type, scope, and description.