Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Write clear, helpful error messages that tell users what happened and how to fix it. Use when asked to write an error message, validation text, a failure/empty-error state, or to rewrite a cryptic system error. Produces human, blame-free error copy — what went wrong, why (if useful), and the next step — with options per surface (inline, toast, full page) and the related success/empty states.
.claude/skills/mohitagw15856-error-message-writer/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | -11% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 3% | 0% |
| case-02 | ✓→✓ | = Same ✓ | 15% | 0% |
| case-03 | ✓→✓ | = Same ✓ | 2% | 0% |
| case-04 | ✓→✓ | = Same ✓ | 15% | 0% |
An error is a moment of friction; a good error message turns it into a recovery. The formula is simple and rarely followed: say what happened, in plain language, and what to do next — without blaming the user or exposing a stack trace. This skill writes error copy that helps people get unstuck and keeps trust intact.
Given "the payment failed" or a raw system error, write the message anyway — infer the likely cause and the recovery path, and label assumptions. Where the real cause is unknown to the user, focus on the next action. Never hand back a question instead of the copy; never surface internal/technical detail to end users.
Ask for these only if they aren't already provided (else infer and label):
UX writing practice — plain-language, blame-free error messages with clear recovery, surface-appropriate variants, and log-vs-show separation.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 14,545 | 8,445 | -42% | 1 | 1 | 0% | 2,553 | 2,283 | -11% | 0 | 0 | — |
case-02 | pass→pass | 11,931 | 9,775 | -18% | 1 | 1 | 0% | 2,062 | 2,371 | +15% | 0 | 0 | — |
case-03 | pass→pass | 15,090 | 12,824 | -15% | 1 | 1 | 0% | 2,560 | 2,599 | +2% | 0 | 0 | — |
case-04 | pass→pass | 12,945 | 9,990 | -23% | 1 | 1 | 0% | 1,973 | 2,271 | +15% | 0 | 0 | — |
case-05 | pass→pass | 14,933 | 9,662 | -35% | 1 | 1 | 0% | 2,258 | 2,176 | -4% | 0 | 0 | — |
case-06 | pass→pass | 10,018 | 9,411 | -6% | 1 | 1 | 0% | 1,480 | 2,146 | +45% | 0 | 0 | — |
case-07 | fail→pass | 15,560 | 12,183 | -22% | 1 | 1 | 0% | 2,433 | 2,518 | +3% | 0 | 0 | — |
case-08 | pass→pass | 4,416 | 7,065 | +60% | 1 | 1 | 0% | 692 | 1,729 | +150% | 0 | 0 | — |
case-09 | pass→pass | 8,517 | 9,136 | +7% | 1 | 1 | 0% | 1,319 | 2,200 | +67% | 0 | 0 | — |
case-10 | pass→pass | 14,807 | 8,437 | -43% | 1 | 1 | 0% | 2,264 | 1,988 | -12% | 0 | 0 | — |
case-11 | pass→pass | 11,243 | 8,732 | -22% | 1 | 1 | 0% | 1,867 | 2,030 | +9% | 0 | 0 | — |
case-12 | pass→pass | 7,788 | 10,097 | +30% | 1 | 1 | 0% | 1,314 | 2,276 | +73% | 0 | 0 | — |
case-13 | pass→pass | 8,459 | 9,333 | +10% | 1 | 1 | 0% | 1,323 | 2,159 | +63% | 0 | 0 | — |
case-14 | pass→pass | 8,860 | 9,721 | +10% | 1 | 1 | 0% | 1,427 | 2,103 | +47% | 0 | 0 | — |
case-15 | pass→pass | 7,863 | 8,982 | +14% | 1 | 1 | 0% | 1,338 | 2,098 | +57% | 0 | 0 | — |
case-16 | pass→pass | 6,563 | 7,219 | +10% | 1 | 1 | 0% | 1,201 | 1,842 | +53% | 0 | 0 | — |
case-17 | pass→pass | 8,372 | 7,625 | -9% | 1 | 1 | 0% | 1,325 | 1,944 | +47% | 0 | 0 | — |
case-18 | pass→pass | 8,613 | 8,366 | -3% | 1 | 1 | 0% | 1,321 | 1,915 | +45% | 0 | 0 | — |
case-19 | pass→pass | 9,410 | 8,033 | -15% | 1 | 1 | 0% | 1,611 | 2,057 | +28% | 0 | 0 | — |
case-20 | pass→pass | 11,204 | 11,360 | +1% | 1 | 1 | 0% | 1,906 | 2,733 | +43% | 0 | 0 | — |
case-21 | pass→pass | 10,234 | 9,056 | -12% | 1 | 1 | 0% | 1,588 | 2,126 | +34% | 0 | 0 | — |
case-22 | pass→pass | 12,779 | 11,124 | -13% | 1 | 1 | 0% | 2,055 | 2,546 | +24% | 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 +9 percentage points is the difference between those two pass rates over the 22 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.