Skip to content
Development
Skill

/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

From plugin
ed3d-plugins
25342 skills14 agents6 commands1 MCP

Claude Code

$ npx -y skills add ed3dai/ed3d-plugins --skill writing-skills --agent claude-code

SKILL.md

writing-skills.SKILL.md
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
user-invocable: false

Writing Skills

**REQUIRED BACKGROUND:** Read ed3d-extending-claude:writing-claude-directives for foundational guidance on token efficiency, discovery optimization, and compliance techniques. This skill focuses on TDD methodology specific to skill creation.

Core Principle

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

Write test cases (pressure scenarios), watch them fail (baseline behavior), write the skill, watch tests pass, refactor (close loopholes).

**Iron Law:** No skill without a failing test first. Same as TDD for code.

TDD Mapping

| TDD Concept | Skill Creation | |-------------|----------------| | Test case | Pressure scenario with subagent | | Production code | SKILL.md document | | RED | Agent violates rule without skill | | GREEN | Agent complies with skill present | | Refactor | Close loopholes, re-test |

When to Create a Skill

**Create when:**

  • Technique wasn't intuitively obvious
  • You'd reference this across projects
  • Pattern applies broadly
  • Others would benefit

**Don't create for:**

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

Skill Types

**Technique:** Concrete method with steps (condition-based-waiting, root-cause-tracing)

**Pattern:** Mental model for problems (flatten-with-flags, test-invariants)

**Reference:** API docs, syntax guides, tool documentation

Directory Structure

skills/
  skill-name/
    SKILL.md              # Main reference (required)
    supporting-file.*     # Only if needed

**Separate files for:** Heavy reference (100+ lines), reusable tools/scripts

**Keep inline:** Principles, code patterns (<50 lines), everything else

SKILL.md Template

---
name: Skill-Name-With-Hyphens
description: Use when [triggers/symptoms] - [what it does, third person]
---

# Skill Name

## Overview
Core principle in 1-2 sentences.

## When to Use
Symptoms and use cases. When NOT to use.

## Core Pattern
Before/after comparison or key technique.

## Quick Reference
Table or bullets for scanning.

## Common Mistakes
What goes wrong + fixes.

RED-GREEN-REFACTOR Cycle

RED: Baseline Test

Run pressure scenario WITHOUT skill: 1. Create combined pressures (time + sunk cost + exhaustion) 2. Document exact violations and rationalizations verbatim 3. Identify failure patterns

GREEN: Write Minimal Skill

1. Address specific baseline failures identified in RED 2. Run scenarios WITH skill 3. Verify compliance

REFACTOR: Close Loopholes

1. Find NEW rationalizations from testing 2. Add explicit counters 3. Re-test until bulletproof

**REQUIRED:** Use ed3d-extending-claude:testing-skills-with-subagents for complete methodology.

Testing by Skill Type

| Type | Test Approach | Success Criteria | |------|---------------|------------------| | Discipline | Pressure scenarios, combined stressors | Follows rule under maximum pressure | | Technique | Application scenarios, edge cases | Successfully applies to new scenario | | Pattern | Recognition + counter-examples | Knows when/how and when NOT to apply | | Reference | Retrieval + application tests | Finds and correctly uses information |

Common Rationalizations to Block

| Excuse | Reality | |--------|---------| | "Obviously clear" | Clear to you ≠ clear to agents. Test. | | "Just a reference" | References have gaps. Test retrieval. | | "Testing is overkill" | Untested skills have issues. Always. | | "Too simple" | Simple things break. Test anyway. | | "No time" | Fixing broken skills wastes more time. |

**All mean: Test before deploying.**

Anti-Patterns

  • **Narrative example:** "In session 2025-10-03, we found..." (too specific, not reusable)
  • **Multi-language dilution:** example-js.js, example-py.py (mediocre quality, maintenance burden)
  • **Code in flowcharts:** Can't copy-paste, hard to read
  • **Generic labels:** helper1, step3 (labels need semantic meaning)

Skill Creation Checklist

**IMPORTANT:** Use TaskCreate to track each item (or TodoWrite in older Claude Code versions).

**RED Phase:**

  • [ ] Create pressure scenarios (3+ combined pressures for discipline skills)
  • [ ] Run WITHOUT skill - document baseline failures verbatim
  • [ ] Identify rationalization patterns

**GREEN Phase:**

  • [ ] Name uses letters, numbers, hyphens only
  • [ ] Description starts with "Use when...", third person
  • [ ] Address specific baseline failures
  • [ ] One excellent example (not multi-language)
  • [ ] Run WITH skill - verify compliance

**REFACTOR Phase:**

  • [ ] Identify new rationalizations
  • [ ] Add explicit counters
  • [ ] Re-test until bulletproof

**Deployment:**

  • [ ] Commit and push
  • [ ] Consider contributing via PR
Read more
@ed3dai
Ships withed3d-plugins

Ed's repo of Claude Code plugins, centered around a research-plan-implement workflow. Only a tiny bit cursed. If you're lucky.

25342 skills14 agents1 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
253
Star history of ed3dai/ed3d-plugins on GitHub, a chart by star-history.com

Other skills on ed3d-plugins.

creating-a-plugin

creating-a-plugin

Use when creating a new Claude Code plugin or setting up plugin structure - provides complete file organization, manifest format,…

@ed3dai@ed3daiInstall Skill
creating-an-agent

creating-an-agent

Use when creating specialized subagents for Claude Code plugins or the Task tool - covers description writing for…

@ed3dai@ed3daiInstall Skill

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills2w309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc2w293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react5d252k
@facebook@facebookInstall Skill

Questions about writing-skills.

Which coding agents can use writing-skills?
writing-skills installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.