Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Generate descriptive commit messages by analyzing git diffs. Use when the user asks for help writing commit messages or reviewing staged changes.
.claude/skills/aiskillstore-git-commit-helper/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 277% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 39% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 123% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 67% | 0% |
| case-14 | ✗→✓ | ▲ Improved | 62% | 0% |
Analyze staged changes and generate commit message:
bash# View staged changes git diff --staged # Generate commit message based on changes # (Claude will analyze the diff and suggest a message)
Follow conventional commits format:
<type>(<scope>): <description>
[optional body]
[optional footer]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.Review what's being committed:
bash# 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/file
DO:
DON'T:
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 objectFrontend:
feat(ui): add loading spinner to dashboardfix(form): validate email formatBackend:
feat(api): add user profile endpointfix(db): resolve connection pool leakInfrastructure:
chore(ci): update Node version to 20feat(docker): add multi-stage buildIndicate 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 structuregit diff --stagedUse git add -p for selective staging:
bash# Stage changes interactively git add -p # Review what's staged git diff --staged # Commit with message git commit -m "type(scope): description"
Fix the last commit message:
bash# Amend commit message only git commit --amend # Amend and add more changes git add forgotten-file.js git commit --amend --no-edit
references/GIT_COMMIT.template.md - Conventional commits format template with types, scopes, and examples| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 3,738 | 4,996 | +34% | 1 | 1 | 0% | 524 | 1,978 | +277% | 0 | 0 | — |
case-02 | fail→fail | 3,019 | 5,706 | +89% | 1 | 1 | 0% | 375 | 1,973 | +426% | 0 | 0 | — |
case-03 | fail→pass | 8,769 | 5,133 | -41% | 1 | 1 | 0% | 1,343 | 1,871 | +39% | 0 | 0 | — |
case-04 | fail→fail | 4,123 | 5,209 | +26% | 1 | 1 | 0% | 703 | 1,859 | +164% | 0 | 0 | — |
case-05 | fail→pass | 5,051 | 4,299 | -15% | 1 | 1 | 0% | 790 | 1,764 | +123% | 0 | 0 | — |
case-06 | fail→pass | 7,866 | 5,443 | -31% | 1 | 1 | 0% | 1,158 | 1,933 | +67% | 0 | 0 | — |
case-07 | pass→pass | 5,817 | 5,041 | -13% | 1 | 1 | 0% | 943 | 1,877 | +99% | 0 | 0 | — |
case-08 | pass→pass | 4,824 | 2,835 | -41% | 1 | 1 | 0% | 770 | 1,432 | +86% | 0 | 0 | — |
case-09 | pass→pass | 5,859 | 2,981 | -49% | 1 | 1 | 0% | 925 | 1,537 | +66% | 0 | 0 | — |
case-10 | pass→pass | 5,486 | 3,024 | -45% | 1 | 1 | 0% | 868 | 1,519 | +75% | 0 | 0 | — |
case-11 | pass→pass | 2,646 | 2,758 | +4% | 1 | 1 | 0% | 428 | 1,502 | +251% | 0 | 0 | — |
case-12 | pass→pass | 7,434 | 4,120 | -45% | 1 | 1 | 0% | 1,316 | 1,732 | +32% | 0 | 0 | — |
case-13 | fail→fail | 6,086 | 5,618 | -8% | 1 | 1 | 0% | 930 | 1,951 | +110% | 0 | 0 | — |
case-14 | fail→pass | 6,372 | 3,949 | -38% | 1 | 1 | 0% | 1,038 | 1,678 | +62% | 0 | 0 | — |
case-15 | fail→fail | 5,445 | 4,320 | -21% | 1 | 1 | 0% | 818 | 1,755 | +115% | 0 | 0 | — |
case-16 | fail→pass | 8,792 | 4,740 | -46% | 1 | 1 | 0% | 1,372 | 1,838 | +34% | 0 | 0 | — |
case-17 | fail→fail | 7,561 | 10,512 | +39% | 1 | 1 | 0% | 1,235 | 2,096 | +70% | 0 | 0 | — |
case-18 | pass→pass | 1,890 | 3,952 | +109% | 1 | 1 | 0% | 277 | 1,340 | +384% | 0 | 0 | — |
case-19 | fail→fail | 4,274 | 9,111 | +113% | 1 | 1 | 0% | 692 | 1,931 | +179% | 0 | 0 | — |
case-20 | pass→pass | 7,183 | 6,733 | -6% | 1 | 1 | 0% | 1,196 | 2,122 | +77% | 0 | 0 | — |
case-21 | pass→pass | 2,432 | 2,447 | +1% | 1 | 1 | 0% | 423 | 1,466 | +247% | 0 | 0 | — |
case-22 | pass→pass | 6,923 | 4,614 | -33% | 1 | 1 | 0% | 1,153 | 1,849 | +60% | 0 | 0 | — |
case-23 | pass→pass | 5,604 | 3,909 | -30% | 1 | 1 | 0% | 942 | 1,778 | +89% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted. The headline lift of +26 percentage points is the difference between those two pass rates over the 23 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.