Awesome-omni-skill writing-skills
Use when creating reusable process documentation. Apply TDD: baseline without skill → document failures → write skill → test → iterate. Four types: Discipline, Technique, Pattern, Reference. Iron Law: No skill without failing test first.
git clone https://github.com/diegosouzapw/awesome-omni-skill
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/development/writing-skills-liauw-media" ~/.claude/skills/diegosouzapw-awesome-omni-skill-writing-skills-28e08b && rm -rf "$T"
skills/development/writing-skills-liauw-media/SKILL.mdWriting Skills
Core Principle
Skills are reusable process documentation. Write them like code: test-first, iterative, validated.
When to Use This Skill
- Discovered a useful process
- Want to codify knowledge
- Pattern worth sharing
- Repeatedly solving same problem
- Need consistent approach
- Team needs standard practices
- Contributing to community
The Iron Law
NO SKILL WITHOUT A FAILING TEST FIRST.
If you can't demonstrate the problem the skill solves, you don't need the skill yet.
Why Write Skills?
Benefits: ✅ Codifies tacit knowledge ✅ Creates consistency ✅ Accelerates learning ✅ Reduces mistakes ✅ Enables scaling ✅ Builds institutional memory
Without documented skills: ❌ Knowledge stays in heads ❌ Inconsistent approaches ❌ Repeat mistakes ❌ Slow onboarding ❌ Can't scale
TDD for Skill Writing
Step 1: Baseline (RED Phase)
🔴 RED: Establish baseline without skill Observation: Debugging takes too long, focuses on symptoms Evidence gathering: 1. Observe current behavior (without skill) 2. Document specific failures 3. Collect multiple examples 4. Identify patterns Example baseline observation: --- Scenario: Debug slow API endpoint Current approach (no skill): 1. User adds caching ← Treats symptom 2. Performance improves temporarily 3. Real issue (N+1 queries) remains 4. Problem returns as data grows 5. Multiple "fixes" accumulate 6. Root cause never found Failures observed: - ❌ Fixed symptom, not cause - ❌ No systematic investigation - ❌ Didn't trace to origin - ❌ Quick fix instead of proper solution - ❌ Problem will recur Baseline documented ✅ Need: Systematic debugging process --- This baseline PROVES we need the skill.
Baseline requirements:
- Real scenarios (not hypothetical)
- Specific failures (not vague problems)
- Multiple examples (not one-offs)
- Clear pattern (not random)
Step 2: Document Failures (Still RED)
Failure catalog from baseline: Failure 1: Stopping at symptoms Example: Added caching instead of fixing N+1 queries Impact: Problem returns later Frequency: 8/10 debugging sessions Failure 2: No systematic process Example: Random changes until something works Impact: Wastes time, creates new bugs Frequency: 7/10 sessions Failure 3: Not tracing to origin Example: Found slow query but not why it's slow Impact: Incomplete understanding Frequency: 9/10 sessions Failure 4: Quick fixes under pressure Example: "Just make it work for demo" Impact: Technical debt Frequency: 5/10 sessions Failures documented ✅ These define what skill must address
Step 3: Write Skill (GREEN Phase)
🟢 GREEN: Write skill to address failures Skill name: systematic-debugging Must address documented failures: - Failure 1 → Need process that finds root causes - Failure 2 → Need step-by-step methodology - Failure 3 → Need techniques for tracing origins - Failure 4 → Need guidance for handling pressure Skill structure: 1. Core Principle "Debug methodically, not randomly." ← Addresses Failure 2 2. When to Use This Skill - Encountering bugs - Unexpected behavior - Tests failing ← Clear trigger conditions 3. The Iron Law "NEVER try random things until it works." ← Directly counters Failure 2 4. The 5-Step Process 1. Reproduce 2. Isolate 3. Identify (root cause) 4. Fix 5. Verify ← Addresses Failures 1, 2, 3 5. Examples - Performance degradation - Data corruption - Intermittent failures ← Real scenarios from baseline 6. Handling Pressure "Time pressure is when you MOST need systematic approach" ← Addresses Failure 4 7. Common Mistakes - Trying random things - Fixing symptoms - Not verifying ← Directly from failure catalog 8. Integration with Other Skills - Use with TDD - Use with code-review ← Shows how it fits 9. Authority - Scientific method - Professional practices - Research evidence ← Builds credibility 10. Your Commitment Checklist of commitments ← Creates accountability 11. Bottom Line One-sentence summary ← Memorable takeaway Skill written ✅
Step 4: Test the Skill (GREEN Validation)
Test skill with baseline scenarios: Scenario 1: Slow API endpoint (same as baseline) - Give fresh subagent task + skill - Observe behavior Result: ✅ Follows 5-step process ✅ Reproduces issue ✅ Isolates to N+1 queries ✅ Identifies root cause ✅ Makes proper fix ✅ Verifies with tests Improvement: Fixed root cause, not symptom ✅ Scenario 2: Intermittent test failure - Give fresh subagent task + skill - Observe behavior Result: ✅ Reproduces reliably ✅ Isolates to timing issue ✅ Identifies race condition ✅ Fixes architecture ✅ Verifies fix Improvement: Found and fixed root cause ✅ Skill solves documented failures ✅
Step 5: Iterate and Refine (REFACTOR)
🔵 REFACTOR: Test edge cases, find loopholes Edge case 1: Time pressure Test: Give skill + "Fix this in 10 minutes" Result: ❌ Subagent skips process, makes quick fix LOOPHOLE! Skill doesn't hold under time pressure. Fix: Strengthen time pressure guidance: "Time pressure is when you MOST need systematic approach. Quick fixes create 10x more work later." Updated skill ✅ Retest: ✅ Now handles time pressure Edge case 2: Exhaustion Test: Give skill + "You've been debugging for 6 hours" Result: ❌ Subagent shortcuts process LOOPHOLE! Skill doesn't address exhaustion. Fix: Add exhaustion guidance: "Exhaustion impairs judgment. The process protects you when judgment fails. Follow it systematically." Updated skill ✅ Retest: ✅ Now handles exhaustion Edge case 3: "Works on my machine" Test: Give skill + environment-specific bug Result: ✅ Process finds environment differences No loophole ✅ All edge cases tested ✅ Loopholes closed ✅ Skill refined ✅
The Four Types of Skills
Type 1: Discipline
What it is: Commitment to a practice
Structure:
- Iron Law (the discipline)
- Why it matters
- How to maintain it
- What to avoid
Examples:
- test-driven-development (Test first, code second)
- database-backup (Always backup before tests)
- code-review (Never merge without review)
Writing guide:
Focus on: - The commitment required - Why shortcuts fail - How to stay disciplined - Handling pressure to skip it
Type 2: Technique
What it is: Step-by-step process
Structure:
- When to use
- Step-by-step instructions
- Examples for each step
- Common mistakes
Examples:
- systematic-debugging (5-step process)
- root-cause-tracing (Backward tracing)
- git-bisect (Binary search for bugs)
Writing guide:
Focus on: - Clear steps - Decision points - What to do at each step - How to know you're done
Type 3: Pattern
What it is: Reusable solution
Structure:
- The problem
- The solution
- When to use it
- Variations
Examples:
- condition-based-waiting (Wait for condition, not timeout)
- dependency-injection (Pass dependencies in)
- repository-pattern (Abstract data access)
Writing guide:
Focus on: - Problem it solves - How the pattern works - Implementation examples - When NOT to use it
Type 4: Reference
What it is: Conceptual knowledge
Structure:
- Core concepts
- Principles
- Guidelines
- Best practices
Examples:
- testing-anti-patterns (What NOT to do)
- anthropic-best-practices (Prompt engineering)
- persuasion-principles (Influence techniques)
Writing guide:
Focus on: - Key concepts - Principles to follow - Examples of each - Common misunderstandings
Skill Document Structure
Required Sections
--- name: skill-name description: "One-line description: when to use and what it does" --- # Skill Name ## Core Principle One-sentence essence of the skill ## When to Use This Skill - Bullet list of trigger conditions - Specific scenarios - Clear indicators ## The Iron Law **BOLD STATEMENT OF CORE RULE** Clear, unambiguous, memorable ## Why [Skill Name]? **Benefits:** ✅ List of benefits **Without [skill]:** ❌ List of problems ## [Main Content] Detailed explanation, process, or technique - Step-by-step if technique - Principles if reference - Examples throughout ## Examples Real-world examples showing: - Before (without skill) - After (with skill) - Improvement demonstrated ## Common Mistakes What NOT to do Why mistakes happen How to avoid them ## Integration with Skills Which skills this works with When to combine them How they complement each other ## Authority Based on: - Research - Industry standards - Expert recommendations - Proven practices ## Your Commitment Checklist format: - [ ] I will... - [ ] I will... ## Bottom Line --- **Bottom Line**: One sentence summary that captures essence
Optional Sections
## Red Flags Warning signs this skill is needed ## Checklist Step-by-step checklist for applying skill ## Advanced Techniques Beyond basics, for experienced users ## Troubleshooting Common issues and solutions ## Real-World Case Studies Detailed examples from actual usage
Writing Style Guidelines
Guideline 1: Be Specific
❌ BAD (vague): "Write good tests" ✅ GOOD (specific): "Write tests that verify behavior, not implementation. Test through public API only."
Guideline 2: Use Examples
❌ BAD (abstract): "Follow the debugging process" ✅ GOOD (concrete): "Example debugging session: 1. Bug: Login fails 2. Reproduce: Happens every time 3. Isolate: Error in AuthController 4. Identify: Missing database table 5. Fix: Run migrations 6. Verify: Login now works"
Guideline 3: Show Before/After
❌ BAD (only after): "Here's how to do it right..." ✅ GOOD (both): "Before: Random debugging, symptoms fixed After: Systematic process, root causes found"
Guideline 4: Address Resistance
❌ BAD (ignore objections): "Just follow the process" ✅ GOOD (handle objections): "Common objection: 'No time for TDD' Reality: TDD is faster because bugs caught immediately, not after deployment. Follow the process."
Guideline 5: Make It Scannable
❌ BAD (wall of text): Long paragraphs with no structure, hard to scan, can't find key points quickly... ✅ GOOD (structured): - Use bullets - Use headings - Use code blocks - Use bold for key points - Use checkboxes for processes
Skill Testing Protocol
Test 1: Baseline Without Skill
1. Create 3-5 realistic scenarios 2. Fresh subagent for each 3. NO skill provided 4. Observe and document failures 5. Catalog specific problems Pass criteria: Clear failures documented
Test 2: Improvement With Skill
1. Same scenarios as baseline 2. Fresh subagent for each 3. Include skill 4. Observe and document improvements 5. Verify failures addressed Pass criteria: Measurable improvement in all scenarios
Test 3: Pressure Testing
1. Test with time constraints 2. Test with sunk cost 3. Test with exhaustion 4. Test with authority pressure Pass criteria: Skill holds up under all pressures
Test 4: Integration Testing
1. Test skill with related skills 2. Verify compatibility 3. Check for conflicts 4. Document integrations Pass criteria: Works well with other skills
Skill Maintenance
When to Update
Update when: - Loophole discovered - Better technique found - Feedback received - Edge case encountered - Integration issue found Update process: 1. Document the issue 2. Update skill content 3. Re-test all scenarios 4. Verify improvement 5. Update version/date
Versioning
Track changes: - Major update: Core process changed - Minor update: Examples added, refinements - Patch: Typos, clarifications Document: - What changed - Why changed - Test results
Common Skill Writing Mistakes
Mistake 1: No Baseline
❌ BAD: Write skill based on theory No proof of need Assume problem exists Result: Skill solves non-existent problem ✅ GOOD: Establish baseline first Document actual failures Prove skill is needed Create from reality
Mistake 2: Too Abstract
❌ BAD: "Follow best practices" No specifics No examples Just platitudes Result: No one knows how to apply it ✅ GOOD: Specific steps Concrete examples Clear instructions Actionable guidance
Mistake 3: Not Tested
❌ BAD: Write skill Ship it Hope it works Result: Loopholes in production ✅ GOOD: Write skill Test thoroughly Find loopholes Fix them Then ship
Mistake 4: Missing Authority
❌ BAD: "Trust me, this works" No sources No evidence Just opinion Result: No credibility ✅ GOOD: Based on research Industry standards Expert recommendations Proven practices
Example: Complete Skill Writing Process
🔴 RED PHASE Problem observation: Tests failing when run together, passing alone Baseline testing (no skill): Scenario 1: Test pollution - Observe: Developers add retries - Result: Masks problem - Failure: Pollution not fixed Scenario 2: Test isolation - Observe: Developers can't find polluter - Result: Comment out tests - Failure: Lost test coverage Scenario 3: Database state - Observe: Manual cleanup added - Result: Brittle, incomplete - Failure: Still has pollution Failures documented: - Can't find polluter - Mask instead of fix - Manual cleanup instead of isolation Baseline proves need for skill ✅ --- 🟢 GREEN PHASE Write skill: test-pollution-detection Sections: 1. Core Principle: "Tests must be independent" 2. Iron Law: "Find and fix polluter, don't mask" 3. Detection process: - Binary search for polluter - Isolate problematic test - Fix root cause 4. Examples from baseline: - Database state pollution - Global variable pollution - File system pollution 5. Tools: - find-polluter.sh script - Test isolation patterns - Proper cleanup 6. Common mistakes (from baseline): - Adding retries (masking) - Manual cleanup (brittle) - Commenting out tests (lost coverage) Skill written ✅ --- 🔵 REFACTOR PHASE Test with skill: Scenario 1: ✅ Uses binary search, finds polluter Scenario 2: ✅ Fixes root cause, not symptoms Scenario 3: ✅ Implements proper isolation Improvement verified ✅ Pressure testing: Time pressure: ❌ Skips proper fix, adds retry LOOPHOLE! Add to skill: "Masking pollution takes 10x longer to fix later. Find and fix polluter, even under pressure." Updated ✅ Retest: ✅ All scenarios pass Integration test: - Works with TDD ✅ - Works with systematic-debugging ✅ - Works with CI/CD ✅ Skill validated ✅ Ready to use ✅
Integration with Skills
Required:
- Test every skilltesting-skills-with-subagents
Use with:
- Apply TDD to skillstest-driven-development
- Review skills like codecode-review
- Share validated skillssharing-skills
Enables:
- Consistent practices
- Knowledge transfer
- Quality processes
Skill Writing Checklist
Before writing:
- Problem clearly identified
- Baseline established (RED)
- Failures documented
- Multiple examples collected
While writing:
- Core principle clear
- Iron Law memorable
- Step-by-step if technique
- Real examples included
- Common mistakes addressed
- Integration documented
- Authority cited
- Commitment section included
After writing:
- Tested with baseline scenarios
- Improvement verified
- Pressure tested
- Loopholes found and fixed
- Integration tested
- Ready for use
Authority
This skill is based on:
- Technical writing best practices
- Test-Driven Development (Kent Beck)
- Process documentation standards
- Knowledge management research
- Anthropic best practices for prompt engineering
Research: Studies show documented processes are followed 5x more consistently than undocumented.
Social Proof: All professional organizations maintain process documentation.
Your Commitment
When writing skills:
- I will establish baseline first (RED)
- I will document specific failures
- I will write skill to address failures (GREEN)
- I will test thoroughly (REFACTOR)
- I will find and close loopholes
- I will include real examples
- I will cite authority
- I will only share tested skills
Bottom Line: Skills are code for humans. Write them test-first: baseline (RED) → write skill (GREEN) → test and refine (REFACTOR). No skill without a failing test first.