Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
joellewis avatar

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-skills

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs34
repo stars4
Last updatedMarch 31, 2026
Repositoryjoellewis/skill-library

What it does

Author new Claude Code skills using test-driven development methodology for rigorous framework implementation.

Files

SKILL.mdMarkdownGitHub ↗

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

ThoughtReality
"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.

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.