Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Ultra-compressed commit message generator. Cuts noise from commit messages while preserving intent and reasoning. Conventional Commits format. Subject ≤50 chars, body only when "why" isn't obvious. Use when user says "write a commit", "commit message", "generate commit", "/commit", or invokes /caveman-commit. Auto-triggers when staging changes.
.claude/skills/hoangnguyen0403-caveman-commit/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 152% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 27% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 61% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 68% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 105% | 0% |
Write commit messages terse and exact. Conventional Commits format. No fluff. Why over what.
Subject line:
<type>(<scope>): <imperative summary> — <scope> optionalfeat, fix, refactor, perf, docs, test, chore, build, ci, style, revertBody (only if needed):
- not *Closes #42, Refs #17What NEVER goes in:
Diff: new endpoint for user profile with body explaining the why
feat(api): add GET /users/:id/profile
Mobile client needs profile data without the full user payload to reduce LTE bandwidth on cold-launch screens.
Closes #128
Diff: breaking API change
feat(api)!: rename /v1/orders to /v1/checkout
BREAKING CHANGE: clients on /v1/orders must migrate to /v1/checkout before 2026-06-01. Old route returns 410 after that date.
Always include body for: breaking changes, security fixes, data migrations, anything reverting a prior commit. Never compress these into subject-only — future debuggers need the context.
Only generates the commit message. Does not run git commit, does not stage files, does not amend. Output the message as a code block ready to paste. "stop caveman-commit" or "normal mode": revert to verbose commit style.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-10 | pass→fail | 4,436 | 4,582 | +3% | 1 | 1 | 0% | 792 | 1,407 | +78% | 0 | 0 | — |
case-11 | pass→pass | 4,162 | 3,337 | -20% | 1 | 1 | 0% | 725 | 1,130 | +56% | 0 | 0 | — |
case-01 | fail→pass | 3,062 | 4,406 | +44% | 1 | 1 | 0% | 518 | 1,303 | +152% | 0 | 0 | — |
case-02 | fail→pass | 7,226 | 5,551 | -23% | 1 | 1 | 0% | 1,260 | 1,597 | +27% | 0 | 0 | — |
case-03 | fail→pass | 4,125 | 4,085 | -1% | 1 | 1 | 0% | 809 | 1,299 | +61% | 0 | 0 | — |
case-04 | pass→fail | 3,803 | 2,647 | -30% | 1 | 1 | 0% | 584 | 998 | +71% | 0 | 0 | — |
case-05 | pass→pass | 13,410 | 8,377 | -38% | 1 | 1 | 0% | 2,380 | 1,958 | -18% | 0 | 0 | — |
case-06 | pass→fail | 9,796 | 5,091 | -48% | 1 | 1 | 0% | 1,686 | 1,528 | -9% | 0 | 0 | — |
case-07 | fail→pass | 4,946 | 3,430 | -31% | 1 | 1 | 0% | 708 | 1,191 | +68% | 0 | 0 | — |
case-08 | fail→pass | 3,342 | 3,715 | +11% | 1 | 1 | 0% | 588 | 1,208 | +105% | 0 | 0 | — |
case-09 | fail→pass | 3,871 | 3,732 | -4% | 1 | 1 | 0% | 575 | 1,239 | +115% | 0 | 0 | — |
case-12 | pass→pass | 5,508 | 4,969 | -10% | 1 | 1 | 0% | 934 | 1,289 | +38% | 0 | 0 | — |
case-13 | fail→pass | 4,462 | 13,174 | +195% | 1 | 1 | 0% | 720 | 2,694 | +274% | 0 | 0 | — |
case-14 | fail→pass | 3,092 | 2,989 | -3% | 1 | 1 | 0% | 542 | 1,100 | +103% | 0 | 0 | — |
case-15 | pass→pass | 2,826 | 2,423 | -14% | 1 | 1 | 0% | 496 | 954 | +92% | 0 | 0 | — |
case-16 | fail→fail | 4,587 | 4,463 | -3% | 1 | 1 | 0% | 832 | 1,351 | +62% | 0 | 0 | — |
case-17 | pass→pass | 7,965 | 4,276 | -46% | 1 | 1 | 0% | 1,329 | 1,419 | +7% | 0 | 0 | — |
case-18 | pass→pass | 10,616 | 6,865 | -35% | 1 | 1 | 0% | 1,743 | 1,549 | -11% | 0 | 0 | — |
case-19 | pass→pass | 5,898 | 3,381 | -43% | 1 | 1 | 0% | 1,106 | 1,110 | +0% | 0 | 0 | — |
case-20 | pass→pass | 3,921 | 3,223 | -18% | 1 | 1 | 0% | 647 | 1,119 | +73% | 0 | 0 | — |
case-21 | fail→pass | 4,557 | 2,438 | -46% | 1 | 1 | 0% | 755 | 964 | +28% | 0 | 0 | — |
case-22 | fail→pass | 4,490 | 2,694 | -40% | 1 | 1 | 0% | 769 | 964 | +25% | 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. 22 cases were attempted. The headline lift of +32 percentage points is the difference between those two pass rates over the 22 comparable cases. 3 cases got worse with the skill loaded, and they are 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.