writing-skills

SKILL.md

Overview

This skill enforces a Test-Driven Development (TDD) approach to documentation and skill authoring. By defining what a skill must achieve before writing its content, we ensure functional clarity and prevent "hallucinated utility" or generic, ungrounded advice.

Iron Law

NO SKILL WITHOUT A FAILING TEST FIRST Skills written without a prior test case often drift into generic filler that doesn't solve a specific user problem. The test case grounds the skill in reality.

State Machine

digraph writing_skills_flow {
    "Start" [shape=doublecircle];
    "Step 1: Define User Problem" [shape=box];
    "Step 2: Write Failing Test Case" [shape=box];
    "Step 3: Define Acceptance Criteria" [shape=box];
    "Step 4: Author Skill Content" [shape=box];
    "Step 5: Run Test Case" [shape=box];
    "Gate: Pass Test?" [shape=diamond];
    "Done" [shape=doublecircle];

    "Start" -> "Step 1: Define User Problem";
    "Step 1: Define User Problem" -> "Step 2: Write Failing Test Case";
    "Step 2: Write Failing Test Case" -> "Step 3: Define Acceptance Criteria";
    "Step 3: Define Acceptance Criteria" -> "Step 4: Author Skill Content";
    "Step 4: Author Skill Content" -> "Step 5: Run Test Case";
    "Step 5: Run Test Case" -> "Gate: Pass Test?";
    "Gate: Pass Test?" -> "Done" [label="pass"];
    "Gate: Pass Test?" -> "Step 4: Author Skill Content" [label="fail"];
}

When to Use This Skill

  • Creating a new agent skill from scratch.
  • Refactoring an existing skill to add new capabilities.
  • Upgrading a rough draft to a production-ready skill.
  • Debugging a skill that is producing poor-quality output.

When NOT to Use This Skill

  • Simple task execution that does not require a persistent skill instruction.
  • General conversational responses.

Core Process

Step 1: Define User Problem

Identify the specific failure mode or knowledge gap the user is facing. What happens when the user doesn't have this skill? (Source: system design)

Step 2: Write Failing Test Case

Draft a sample prompt or scenario where a generic LLM (or the current skill) would fail. This is the "Red" phase of TDD. (Source: system design)

Step 3: Define Acceptance Criteria

List 3-5 specific, testable behaviors the skill MUST exhibit to be considered successful. (Source: system design)

Step 4: Author Skill Content

Write the skill following the appropriate rigor template (full rigor or standard rigor). Every principle must directly address the failure mode identified in Step 1. (Source: system design)

Step 5: Run Test Case

Execute the failing test case from Step 2 against the newly authored skill. If the output meets the acceptance criteria, the skill passes. (Source: system design)

Cross-Skill Invocations

REQUIRED SUB-SKILL: None RECOMMENDED SUB-SKILL: prompt-optimizer — to refine the test case and skill instructions.

Rationalization Table

Thought Reality
"I know what I want to say, I don't need a test case." Without a test, you won't know if the skill actually changes the LLM's behavior.
"Writing the test takes too much time." Fixing a broken skill after deployment takes 10x more time.
"This skill is too simple for TDD." Simple skills are where generic filler is most likely to hide.
"I'll write the test after I finish the skill." This defeats the purpose; you will subconsciously write a test the skill can already pass.

Red Flags

These thoughts mean STOP — you are about to shortcut:

  • "Let me just start writing and see where it goes" → You are skipping Step 1 and Step 2.
  • "The test case passed even without the skill" → Your test case is too weak; it doesn't represent a true failure mode.
  • "I'll just assume this works because it looks comprehensive" → You are skipping Step 5.

Diagnostic Checklist

  • Is there a documented failing test case (prompt/scenario)?
  • Do the acceptance criteria explicitly reference the failing test case?
  • Does every principle in the skill map to a required behavior?
  • Has the skill been tested against the scenario and passed?
  • Is the skill free of generic, non-actionable advice?

Sources

  • System design — Pattern Lineage and writing-skills definition.
  • System design — Full Rigor format requirements.
Weekly Installs
1
First Seen
3 days ago
Installed on
amp1
cline1
opencode1
cursor1
kimi-cli1
codex1