writing-skills

Originally fromobra/superpowers
SKILL.md

Writing Skills

Overview

Writing skills IS Test-Driven Development applied to process documentation.

You write test cases (pressure scenarios with subagents), watch them fail (baseline behavior), write the skill (documentation), watch tests pass (agents comply), and refactor (close loopholes).

Core principle: If you didn't watch an agent fail without the skill, you don't know if the skill teaches the right thing.

Personal skills live in agent-specific directories: ~/.claude/skills for Claude Code, ~/.codex/skills for Codex

REQUIRED BACKGROUND: You MUST understand superpowers:test-driven-development before using this skill.

When to Use

Create a skill when:

  • Technique wasn't intuitively obvious to you
  • You'd reference this again across projects
  • Pattern applies broadly (not project-specific)
  • Others would benefit

Don't create for:

  • One-off solutions
  • Standard practices well-documented elsewhere
  • Project-specific conventions (put in CLAUDE.md)

Skill Types

  • Technique: Concrete method with steps (condition-based-waiting, root-cause-tracing)
  • Pattern: Way of thinking about problems (flatten-with-flags, test-invariants)
  • Reference: API docs, syntax guides, tool documentation (office docs)

Quick Reference

Task Load reference
Understand TDD mapping for skills skills/writing-skills/references/tdd-mapping.md
Learn skill structure and organization skills/writing-skills/references/skill-structure.md
Optimize for search and discovery skills/writing-skills/references/search-optimization.md
Test skills with subagents skills/writing-skills/references/testing-skills.md
Code examples and flowcharts skills/writing-skills/references/code-and-flowcharts.md
Complete creation checklist skills/writing-skills/references/checklist.md

RED-GREEN-REFACTOR Workflow

RED: Write Failing Test (Baseline)

  1. Create pressure scenarios (3+ combined pressures for discipline skills)
  2. Run scenarios WITHOUT skill - document baseline behavior verbatim
  3. Identify patterns in rationalizations/failures

This is critical: You must see what agents naturally do before writing the skill.

GREEN: Write Minimal Skill

  1. Write skill addressing specific baseline failures
  2. Follow structure guidelines (see skill-structure.md)
  3. Optimize for search (see search-optimization.md)
  4. Run same scenarios WITH skill - verify agents now comply

REFACTOR: Close Loopholes

  1. Identify NEW rationalizations from testing
  2. Add explicit counters for discipline skills
  3. Build rationalization table from all iterations
  4. Re-test until bulletproof

REQUIRED SUB-SKILL: Use superpowers:testing-skills-with-subagents for complete testing methodology.

The Iron Law

NO SKILL WITHOUT A FAILING TEST FIRST

This applies to NEW skills AND EDITS to existing skills.

Write skill before testing? Delete it. Start over.

No exceptions:

  • Not for "simple additions"
  • Not for "just adding a section"
  • Not for "documentation updates"
  • Delete means delete

Common Mistakes

Mistake Fix
Writing skill before testing Delete skill, run baseline test first
Skipping baseline (RED phase) You don't know what to teach without seeing failure
Testing with skill already present Remove skill, get true baseline behavior
"Batching" multiple skills Complete RED-GREEN-REFACTOR for each skill before moving on
Vague descriptions Start with "Use when...", include specific triggers
Using @ links to reference skills Use skill names only, avoid force-loading
Multiple mediocre code examples One excellent example in most relevant language
Narrative storytelling Focus on reusable patterns, not one-off stories

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. Deploying untested skills = deploying untested code.

See checklist.md for full deployment checklist.

Resources

  • Official guidance: For Anthropic's official skill authoring best practices, see anthropic-best-practices.md
  • Graphviz conventions: See @graphviz-conventions.dot for flowchart style rules
  • Testing methodology: Use superpowers:testing-skills-with-subagents
  • TDD fundamentals: Use superpowers:test-driven-development
Weekly Installs
28
GitHub Stars
12
First Seen
Jan 24, 2026
Installed on
opencode24
github-copilot21
codex21
gemini-cli21
cline20
cursor20