writing-skills

Use when creating new skills, editing existing skills, or verifying skills work before deployment - applies TDD to process documentation by testing with subagents before writing, iterating until bulletproof against rationalization

$ 安裝

git clone https://github.com/NickCrew/claude-cortex /tmp/claude-cortex && cp -r /tmp/claude-cortex/skills/writing-skills ~/.claude/skills/claude-cortex

// tip: Run this command in your terminal to install the skill


name: writing-skills description: Use when creating new skills, editing existing skills, or verifying skills work before deployment - applies TDD to process documentation by testing with subagents before writing, iterating until bulletproof against rationalization

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

TaskLoad reference
Understand TDD mapping for skillsskills/writing-skills/references/tdd-mapping.md
Learn skill structure and organizationskills/writing-skills/references/skill-structure.md
Optimize for search and discoveryskills/writing-skills/references/search-optimization.md
Test skills with subagentsskills/writing-skills/references/testing-skills.md
Code examples and flowchartsskills/writing-skills/references/code-and-flowcharts.md
Complete creation checklistskills/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

MistakeFix
Writing skill before testingDelete skill, run baseline test first
Skipping baseline (RED phase)You don't know what to teach without seeing failure
Testing with skill already presentRemove skill, get true baseline behavior
"Batching" multiple skillsComplete RED-GREEN-REFACTOR for each skill before moving on
Vague descriptionsStart with "Use when...", include specific triggers
Using @ links to reference skillsUse skill names only, avoid force-loading
Multiple mediocre code examplesOne excellent example in most relevant language
Narrative storytellingFocus 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