Install any skill in seconds. Free to start, no credit card required.
Get Started Free →This skill should be used BEFORE running any git commit command. Triggers when about to run `git commit`. Ensures commit messages follow Conventional Commits specification and prompts for Jira ticket number.
.claude/skills/fredrikaverpil-git-commit/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-05 | ✗→✓ | ▲ Improved | 57% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 52% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 9% | 0% |
| case-13 | ✓→✗ | ▼ Worse | 42% | 0% |
| case-06 | ✓→✓ | = Same ✓ | 84% | 0% |
Write commit messages following the Conventional Commits specification.
<type>(<scope>): <description>
[optional body]
[optional footer(s)]| Type | Purpose | | ---------- | ------------------------------------------------------- | | feat | New feature | | fix | Bug fix | | docs | Documentation only | | style | Code style (formatting, no logic change) | | refactor | Code change that neither fixes a bug nor adds a feature | | perf | Performance improvement | | test | Adding or correcting tests | | build | Build system or external dependencies | | ci | CI configuration | | chore | Maintenance tasks | | revert | Reverts a previous commit |
change — not a paraphrase of the diff
Add ! after type/scope or include BREAKING CHANGE: in footer:
feat(api)!: remove deprecated endpoints
BREAKING CHANGE: The /v1/users endpoint has been removed.Optional. Use to specify area of change (e.g., api, ui, auth, db).
When creating a new branch, name it <type>/<kebab-description> using the same types as commit messages (e.g., feat/add-user-auth, fix/broken-symlinks).
Exception: when the environment has already assigned a branch (e.g., claude/... branches in Claude cloud sandbox sessions), keep it — never rename it or create a differently named branch to match this convention.
Git identity and commit signing are configured by the environment (gitconfig on developer machines, a SessionStart hook in cloud sandboxes) — leave both to it:
Co-Authored-By, no "Generatedwith" lines, no session links or model names.
--author or-c user.name=.../-c user.email=....
-S, --gpg-sign or--no-gpg-sign, and leave signing-related config as it is.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-05 | fail→pass | 4,860 | 3,618 | -26% | 1 | 1 | 0% | 783 | 1,230 | +57% | 0 | 0 | — |
case-06 | pass→pass | 4,104 | 3,685 | -10% | 1 | 1 | 0% | 727 | 1,340 | +84% | 0 | 0 | — |
case-01 | pass→pass | 8,991 | 4,764 | -47% | 1 | 1 | 0% | 1,392 | 1,475 | +6% | 0 | 0 | — |
case-02 | pass→pass | 5,640 | 3,514 | -38% | 1 | 1 | 0% | 884 | 1,277 | +44% | 0 | 0 | — |
case-03 | pass→pass | 3,431 | 4,821 | +41% | 1 | 1 | 0% | 556 | 1,491 | +168% | 0 | 0 | — |
case-04 | fail→pass | 5,507 | 3,992 | -28% | 1 | 1 | 0% | 868 | 1,323 | +52% | 0 | 0 | — |
case-07 | pass→pass | 8,437 | 5,442 | -35% | 1 | 1 | 0% | 1,428 | 1,499 | +5% | 0 | 0 | — |
case-08 | pass→pass | 5,915 | 2,678 | -55% | 1 | 1 | 0% | 1,029 | 1,018 | -1% | 0 | 0 | — |
case-09 | pass→pass | 5,839 | 2,471 | -58% | 1 | 1 | 0% | 1,013 | 1,101 | +9% | 0 | 0 | — |
case-10 | pass→pass | 7,703 | 3,422 | -56% | 1 | 1 | 0% | 1,318 | 1,189 | -10% | 0 | 0 | — |
case-11 | fail→pass | 5,501 | 3,263 | -41% | 1 | 1 | 0% | 988 | 1,075 | +9% | 0 | 0 | — |
case-12 | pass→pass | 3,143 | 5,187 | +65% | 1 | 1 | 0% | 536 | 1,587 | +196% | 0 | 0 | — |
case-13 | pass→fail | 7,009 | 3,482 | -50% | 1 | 1 | 0% | 837 | 1,187 | +42% | 0 | 0 | — |
case-14 | pass→pass | 3,801 | 3,186 | -16% | 1 | 1 | 0% | 607 | 1,147 | +89% | 0 | 0 | — |
case-15 | pass→pass | 5,015 | 12,160 | +142% | 1 | 1 | 0% | 840 | 1,166 | +39% | 0 | 0 | — |
case-16 | pass→pass | 3,139 | 3,204 | +2% | 1 | 1 | 0% | 492 | 1,109 | +125% | 0 | 0 | — |
case-17 | pass→pass | 7,612 | 5,228 | -31% | 1 | 1 | 0% | 1,274 | 1,457 | +14% | 0 | 0 | — |
case-18 | pass→pass | 10,504 | 8,572 | -18% | 1 | 1 | 0% | 1,646 | 1,781 | +8% | 0 | 0 | — |
case-19 | pass→pass | 4,984 | 2,406 | -52% | 1 | 1 | 0% | 877 | 1,029 | +17% | 0 | 0 | — |
case-20 | pass→pass | 6,178 | 3,477 | -44% | 1 | 1 | 0% | 1,011 | 1,173 | +16% | 0 | 0 | — |
case-21 | pass→pass | 9,912 | 7,917 | -20% | 1 | 1 | 0% | 1,919 | 2,116 | +10% | 0 | 0 | — |
case-22 | pass→pass | 10,430 | 6,987 | -33% | 1 | 1 | 0% | 1,723 | 1,800 | +4% | 0 | 0 | — |
case-23 | pass→pass | 8,661 | 6,049 | -30% | 1 | 1 | 0% | 1,429 | 1,700 | +19% | 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 +9 percentage points is the difference between those two pass rates over the 23 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
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.