Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when creating new skills, editing existing skills, or verifying skills work before deployment
.claude/skills/mkurman-writing-skills/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-16 | ✗→✓ | ▲ Improved | 9% | 0% |
| case-01 | ✗→✓ | ▲ Improved | 35% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 27% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 306% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 19% | 0% |
| | "Too simple to test" | Simple code breaks. Test takes 30 seconds. | | "I'll test after" | Tests passing immediately prove nothing. | | "Tests after achieve same goals" | Tests-after = "what does this do?" Tests-first = "what should this do?" |
### Create Red Flags List
Make it easy for agents to self-check when rationalizing:
All of these mean: Delete code. Start over with TDD.
### Update CSO for Violation Symptoms
Add to description: symptoms of when you're ABOUT to violate the rule:
description: use when implementing any feature or bugfix, before writing implementation code
## RED-GREEN-REFACTOR for Skills
Follow the TDD cycle:
### RED: Write Failing Test (Baseline)
Run pressure scenario with subagent WITHOUT the skill. Document exact behavior:
- What choices did they make?
- What rationalizations did they use (verbatim)?
- Which pressures triggered violations?
This is "watch the test fail" - you must see what agents naturally do before writing the skill.
### GREEN: Write Minimal Skill
Write skill that addresses those specific rationalizations. Don't add extra content for hypothetical cases.
Run same scenarios WITH skill. Agent should now comply.
### REFACTOR: Close Loopholes
Agent found new rationalization? Add explicit counter. Re-test until bulletproof.
**Testing methodology:** See @testing-skills-with-subagents.md for the complete testing methodology:
- How to write pressure scenarios
- Pressure types (time, sunk cost, authority, exhaustion)
- Plugging holes systematically
- Meta-testing techniques
## Anti-Patterns
### ❌ Narrative Example
"In session 2025-10-03, we found empty projectDir caused..."
**Why bad:** Too specific, not reusable
### ❌ Multi-Language Dilution
example-js.js, example-py.py, example-go.go
**Why bad:** Mediocre quality, maintenance burden
### ❌ Code in Flowchartsstep1 label="import fs"]; step2 label="read file"];
**Why bad:** Can't copy-paste, hard to read
### ❌ Generic Labels
helper1, helper2, step3, pattern4
**Why bad:** Labels should have semantic meaning
## STOP: Before Moving to Next Skill
**After writing ANY skill, you MUST STOP and complete the deployment process.**
**Do NOT:**
- Create multiple skills in batch without testing each
- Move to next skill before current one is verified
- Skip testing because "batching is more efficient"
**The deployment checklist below is MANDATORY for EACH skill.**
Deploying untested skills = deploying untested code. It's a violation of quality standards.
## Skill Creation Checklist (TDD Adapted)
**IMPORTANT: Use TodoWrite to create todos for EACH checklist item below.**
**RED Phase - Write Failing Test:**
- [ ] Create pressure scenarios (3+ combined pressures for discipline skills)
- [ ] Run scenarios WITHOUT skill - document baseline behavior verbatim
- [ ] Identify patterns in rationalizations/failures
**GREEN Phase - Write Minimal Skill:**
- [ ] Name uses only letters, numbers, hyphens (no parentheses/special chars)
- [ ] YAML frontmatter with required `name` and `description` fields (max 1024 chars; see [spec](https://agentskills.io/specification))
- [ ] Description starts with "Use when..." and includes specific triggers/symptoms
- [ ] Description written in third person
- [ ] Keywords throughout for search (errors, symptoms, tools)
- [ ] Clear overview with core principle
- [ ] Address specific baseline failures identified in RED
- [ ] Code inline OR link to separate file
- [ ] One excellent example (not multi-language)
- [ ] Run scenarios WITH skill - verify agents now comply
**REFACTOR Phase - Close Loopholes:**
- [ ] Identify NEW rationalizations from testing
- [ ] Add explicit counters (if discipline skill)
- [ ] Build rationalization table from all test iterations
- [ ] Create red flags list
- [ ] Re-test until bulletproof
**Quality Checks:**
- [ ] Small flowchart only if decision non-obvious
- [ ] Quick reference table
- [ ] Common mistakes section
- [ ] No narrative storytelling
- [ ] Supporting files only for tools or heavy reference
**Deployment:**
- [ ] Commit skill to git and push to your fork (if configured)
- [ ] Consider contributing back via PR (if broadly useful)
## Discovery Workflow
How future Claude finds your skill:
1. **Encounters problem** ("tests are flaky")
3. **Finds SKILL** (description matches)
4. **Scans overview** (is this relevant?)
5. **Reads patterns** (quick reference table)
6. **Loads example** (only when implementing)
**Optimize for this flow** - put searchable terms early and often.
## The Bottom Line
**Creating skills IS TDD for process documentation.**
Same Iron Law: No skill without failing test first.
Same cycle: RED (baseline) → GREEN (write skill) → REFACTOR (close loopholes).
Same benefits: Better quality, fewer surprises, bulletproof results.
If you follow TDD for code, follow it for skills. It's the same discipline applied to documentation.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-16 | fail→pass | 11,297 | 4,416 | -61% | 1 | 1 | 0% | 1,722 | 1,878 | +9% | 0 | 0 | — |
case-01 | fail→pass | 17,898 | 16,737 | -6% | 1 | 1 | 0% | 2,858 | 3,852 | +35% | 0 | 0 | — |
case-02 | fail→pass | 20,409 | 18,085 | -11% | 1 | 1 | 0% | 3,224 | 4,095 | +27% | 0 | 0 | — |
case-03 | fail→pass | 42,094 | 21,781 | -48% | 1 | 1 | 0% | 1,156 | 4,689 | +306% | 0 | 0 | — |
case-04 | fail→pass | 13,581 | 6,753 | -50% | 1 | 1 | 0% | 1,981 | 2,354 | +19% | 0 | 0 | — |
case-05 | pass→pass | 11,861 | 6,669 | -44% | 1 | 1 | 0% | 1,789 | 2,230 | +25% | 0 | 0 | — |
case-06 | fail→pass | 13,607 | 6,728 | -51% | 1 | 1 | 0% | 1,872 | 2,276 | +22% | 0 | 0 | — |
case-07 | fail→pass | 6,117 | 3,756 | -39% | 1 | 1 | 0% | 1,018 | 1,911 | +88% | 0 | 0 | — |
case-08 | fail→pass | 14,115 | 12,177 | -14% | 1 | 1 | 0% | 2,231 | 3,109 | +39% | 0 | 0 | — |
case-09 | pass→pass | 14,771 | 6,593 | -55% | 1 | 1 | 0% | 2,186 | 2,177 | -0% | 0 | 0 | — |
case-10 | pass→pass | 8,704 | 5,991 | -31% | 1 | 1 | 0% | 1,346 | 2,182 | +62% | 0 | 0 | — |
case-11 | pass→pass | 12,776 | 5,374 | -58% | 1 | 1 | 0% | 1,901 | 2,051 | +8% | 0 | 0 | — |
case-12 | pass→pass | 9,231 | 4,399 | -52% | 1 | 1 | 0% | 1,500 | 1,894 | +26% | 0 | 0 | — |
case-13 | pass→pass | 9,470 | 6,268 | -34% | 1 | 1 | 0% | 1,441 | 2,281 | +58% | 0 | 0 | — |
case-14 | pass→pass | 6,211 | 1,895 | -69% | 1 | 1 | 0% | 906 | 1,520 | +68% | 0 | 0 | — |
case-15 | fail→pass | 13,648 | 4,340 | -68% | 1 | 1 | 0% | 2,010 | 1,858 | -8% | 0 | 0 | — |
case-17 | fail→pass | 7,108 | 2,553 | -64% | 1 | 1 | 0% | 1,060 | 1,644 | +55% | 0 | 0 | — |
case-18 | pass→pass | 16,800 | 9,524 | -43% | 1 | 1 | 0% | 2,578 | 2,714 | +5% | 0 | 0 | — |
case-19 | fail→pass | 14,617 | 8,482 | -42% | 1 | 1 | 0% | 2,294 | 2,599 | +13% | 0 | 0 | — |
case-20 | pass→pass | 11,484 | 7,675 | -33% | 1 | 1 | 0% | 1,794 | 2,510 | +40% | 0 | 0 | — |
case-21 | pass→pass | 10,375 | 8,723 | -16% | 1 | 1 | 0% | 1,776 | 2,809 | +58% | 0 | 0 | — |
case-22 | pass→pass | 7,668 | 6,111 | -20% | 1 | 1 | 0% | 1,295 | 2,308 | +78% | 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, and 21 counted toward the lift figure. The other 1 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +50 percentage points is the difference between those two pass rates over the 21 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.