
Writing Skills
- 34 installs
- 4 repo stars
- Updated March 31, 2026
- joellewis/skill-library
Author new Claude Code skills using test-driven development methodology for rigorous framework implementation.
About
Teaches developers how to write new Claude Code skills enforcing the 1% rule. It enforces TDD methodology to ensure skills maintain full rigor and state management.
- TDD-based skill authoring methodology
- Enforces 1% rule for skill invocation consistency
Writing Skills by the numbers
- 34 all-time installs (skills.sh)
- Ranked #391 of 782 Skill Development skills by installs in the Skillselion catalog
- Data as of Aug 2, 2026 (Skillselion catalog sync)
npx skills add https://github.com/joellewis/skill-library --skill writing-skillsAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 34 |
|---|---|
| repo stars | ★ 4 |
| Last updated | March 31, 2026 |
| Repository | joellewis/skill-library ↗ |
What it does
Author new Claude Code skills using test-driven development methodology for rigorous framework implementation.
Files
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.