From oh-my-claude
Applies TDD principles to writing effective Claude Code skills using RED-GREEN-REFACTOR: identify failure scenarios, minimal SKILL.md content, aggressive trimming. For new skills, edits, reviews.
npx claudepluginhub techdufus/oh-my-claude --plugin oh-my-claudeThis skill uses the workspace's default tool permissions.
TDD applied to process documentation.
Guides TDD process for creating, modifying, or improving Claude Code skills: baseline failure tests, skill writing, validation, refactoring. Use for 'create a skill' or reusable patterns.
Applies TDD to Claude skill creation: test pressure scenarios with subagents before writing docs, iterate via red-green-refactor until bulletproof against rationalizations. Use for new skills, edits, verification.
Guides creation, editing, and verification of Claude Code skills using TDD workflow, standardized templates, naming rules, and CSO for auto-activation.
Share bugs, ideas, or general feedback.
TDD applied to process documentation.
Writing skills IS TDD applied to process documentation. If you can't test it breaks without the skill, the skill isn't needed.
| TDD Concept | Skill Equivalent |
|---|---|
| Test case | Pressure scenario (situation where agent fails without skill) |
| Production code | SKILL.md content |
| Failing test | Agent demonstrably fails the scenario |
| Passing test | Agent handles scenario correctly with skill loaded |
| Refactor | Trim to minimum effective content |
Identify 3+ pressure scenarios where the agent fails without this skill. Document the failure mode. This is your test suite. If you can't find 3 scenarios, the skill probably isn't needed.
Write SKILL.md that addresses every identified failure. Minimum content to pass -- no extras, no nice-to-haves, no "comprehensive guides." Every section must map to at least one pressure scenario.
Remove anything that doesn't directly address a pressure scenario. Target ~120 lines. If removing a line doesn't weaken any pressure scenario, remove it.
---
name: {short-name}
description: "{Role sentence}. Use when {triggers}. Triggers on: {keywords}."
---
# {Name} Skill
{Tagline}
## When to Apply
## Core Pattern / Framework
## Anti-Rationalization Table (if methodology skill)
## Common Mistakes
## The Bottom Line
The description field determines when Claude loads your skill. Get it wrong and the skill never fires.
Good: "Use when receiving review comments from code-reviewer agent, PR reviews, or external feedback. Triggers on: 'review feedback', 'address review', 'fix review comments'."
Bad: "A comprehensive guide to handling code review feedback through a structured process"
The bad example describes what the skill contains. The good example describes when to load it.
| Type | Purpose | Example | Line Target |
|---|---|---|---|
| Technique | How to do X | debugger | ~120 lines |
| Pattern | When to use X | receiving-code-review | ~120 lines |
| Methodology | Discipline for X | tdd, verification | ~130 lines |
| Meta | How to create X | writing-skills | ~140 lines |
| Excuse | Counter |
|---|---|
| "The skill is obviously clear" | If it's obvious, you can write 3 failure scenarios in 2 minutes |
| "It's just a reference doc" | Reference docs that don't address failures are shelf-ware |
| "Testing documentation is overkill" | Testing docs IS identifying what problems they solve |
| "I'll test it in practice" | Without defined scenarios, you won't notice when it fails |
Not everything deserves a skill:
Every line must earn its place:
The test: "If removing this line doesn't weaken any pressure scenario, remove it."
Avoid:
Skills use ONLY name and description in frontmatter:
---
name: my-skill
description: "What it does. Use when X. Triggers on: 'keyword1', 'keyword2'."
---
No model, tools, or permissionMode. These are not agent definitions.
| Mistake | Why It's Wrong | Do This Instead |
|---|---|---|
| Writing without pressure scenarios | No way to verify the skill works | RED phase first -- always |
| Summarizing workflow in description | Claude can't match it to triggers | Use "Use when..." pattern |
| Including everything you know | Bloats context, dilutes signal | Only what prevents identified failures |
| Skipping refactor phase | Skills grow stale and verbose | Trim after every edit |
| Copying another skill's structure | Different types need different shapes | Match structure to skill type |
A skill without tested pressure scenarios is documentation. Documentation without a problem to solve is noise.