Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when writing a git commit message: format it as Conventional Commits with a closed lowercase type vocabulary, not a capitalized plain summary.
.claude/skills/conventional-commit-message/SKILL.md| Model | Lift | Δ tokens | Δ turns | Cases | Verified |
|---|---|---|---|---|---|
| gemini-3.5-flashbest | +92% | — | 0% | 24 | 86d ago |
| gemini-3.6-flash | +36% | +195% | 0% | 22 | 54d ago |
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-11 | ✗→✓ | ▲ Improved | — | — |
| case-08 | ✗→✓ | ▲ Improved | — | — |
| case-02 | ✗→✓ | ▲ Improved | — | — |
| case-07 | ✗→✓ | ▲ Improved | — | — |
| case-14 | ✗→✓ | ▲ Improved | — | — |
Enforces the Conventional Commits format on every git commit message you write. Apply whenever you are asked to write, draft, or generate a commit message — even if the request just says "write the commit message" with no mention of any convention.
Format it EXACTLY as: type(scope): subject. The (scope) is optional; the type, the : separator, and the subject are not.
| token | use for | |---|---| | feat | a new feature / capability for the user | | fix | a bug fix | | docs | documentation only (README, comments, API docs) | | style | formatting / whitespace only, no change to code meaning | | refactor | restructuring that neither fixes a bug nor adds a feature | | perf | a change that improves performance, output unchanged | | test | adding or correcting tests only | | build | build system or external dependencies | | ci | CI configuration and scripts | | chore | anything else (.gitignore, configs, housekeeping) |
Spell them exactly: feat (never feature), perf (never performance), docs, refactor. Never invent a type — no update, improve, add, change, misc, enhancement, bugfix, cleanup, wip.
touched, e.g. fix(auth):, feat(api):. No space between the type and (. Omit the parentheses entirely when there is no scope; never write empty ().
: .: :add, fix, remove — not added,adds, adding, fixed, removed.
Fixes #123 or Closes #123 on its own line.uppercase token BREAKING CHANGE: followed by a description.
Read what the change actually does, not how it feels:
fix; a new endpoint/button/feature → featdocsstylerefactorperf; a new or repaired test → testbuild; a workflow YAML edit → ci.gitignore / config / housekeeping edit → choreEach shows the base model's wrong default (BEFORE) and the conforming form (AFTER).
feat — new capability
Added dark mode toggle to settings page.feat: add dark-mode toggle to settingsfix — bug fix
Fixed crash when profile is nullfix: guard against missing user profilefix with scope
Fixed case-sensitive email lookup in authfix(auth): match email case-insensitivelydocs — documentation only
Update README installation instructions (wrong type update)docs: correct npm install commandsstyle — formatting only
Reformatted src with prettierstyle: reindent src and add trailing commasrefactor — no behavior change
Refactored: extracted formatDate helper. (capital + period)refactor: extract shared formatDate helperperf — same output, faster
performance: improved user search speed (spelled out, past-ish)perf: use map lookup for user searchtest — tests only
Add tests for CSV parser (capitalized)test: add unit tests for csv parserbuild — dependency change
Bumped webpack to 5.92build: bump webpack from 5.88 to 5.92ci — CI config
Update workflow to use Node 20 (wrong type, capital)ci: run build pipeline on node 20chore — housekeeping
Updated .gitignorechore: ignore dist and .env.localbreaking change (footer)
Removed deprecated timeout param from fetchData refactor: drop deprecated timeout param
BREAKING CHANGE: fetchData no longer accepts a timeout argument; callers must remove it.
issue reference (footer)
Fix empty-cart total crash (issue 217) fix: handle empty cart in total calculation
Fixes #217
test if you are fixing the test itself(e.g. a flaky test), not fix. fix is for product behavior.
build (it changes what gets built). chore is thefallback only when nothing more specific fits; prefer build for deps.
.gitignore edit is chore, not build — it changes no build output.ci even if it touches the same YAML a build uses;CI config wins over build.
style; a rename is refactor. Whitespace-only → style;identifier/structure change with identical behavior → refactor. They are different types; do not collapse both into one.
feat, fix, orrefactor) on the subject AND adds the BREAKING CHANGE: footer. The footer is what signals the break, not the type.
body; do not let the first line spill past 50.
fix: Guard …). ALWAYS lowercase it(fix: guard …).
fix: added toggle). ALWAYS imperative (fix: addtoggle).
update:, improve:, bugfix:). ALWAYS use the closedset above.
feature: or performance:. ALWAYS feat: / perf:.type:.BREAKING CHANGE: footer.
Improved API performance instead of perf: speed up api responses.
feat: Add toggle.fix: handle null profile..feat: added export button.feature:, performance:, update:,chore: misc changes.
type(scope): subject, scope optional.Fixes #N footer; breaking → BREAKING CHANGE: footer.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-11 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-12 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-10 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-09 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-22 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-08 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-13 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-02 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-07 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-03 | pass→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-05 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-17 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-15 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-14 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-18 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-06 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-19 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-01 | pass→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-21 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-16 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-04 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-20 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
DecimalAI ran this skill against gemini-3.5-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 +36 percentage points is the difference between those two pass rates over the 22 comparable cases.
The per-case answers from this run were removed by the retention sweep, so the case table below shows the verdicts without the text either arm produced. The counts above were recorded at the time and are unaffected. Answers are now kept for 180 days.
| Model | Method | Date | Lift |
|---|---|---|---|
| gemini-3.5-flash | verified | 6/27/2026 | +92% |
Other measured skills in the registry, with their headline benchmark lift.