agentsclimarketplace

Skill writer

Skill alexngai/skill-tree/skills/skill-writer

Comprehensive guide for creating high-quality skills for Claude. Use when building a new skill, writing a SKILL.md, designing skill frontmatter, planning skill structure, debugging trigger issues, or reviewing an existing skill for improvements. Covers standalone skills, MCP-enhanced skills, and skill-tree programmatic skills.From its SKILL.md

Install
npx -y skills add alexngai/skill-tree --skill skill-writer

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

10.6 KB, ~2.3k tokens by cl100k_base, as published. Nobody here has run it

Skill Writer

Create well-structured, effective skills that trigger reliably, follow Anthropic's progressive disclosure model, and produce consistent results.

Core Concepts

A skill is a folder containing instructions that teach Claude to handle specific tasks or workflows. Skills eliminate the need to re-explain preferences, processes, and domain expertise in every conversation.

Progressive Disclosure (Three Levels)

  1. YAML frontmatter (always in system prompt): Enough for Claude to decide when to load the skill
  2. SKILL.md body (loaded when relevant): Full instructions and guidance
  3. Linked files (loaded as needed): References, scripts, assets in subdirectories

This minimizes token usage while maintaining specialized expertise.

Design Principles

  • Composability: Skills run alongside other skills. Never assume exclusive context.
  • Portability: Skills work across Claude.ai, Claude Code, and API without modification (given environment dependencies are met).
  • Progressive complexity: Start simple, add depth through references.

Instructions

Step 1: Define Use Cases

Before writing anything, identify 2-3 concrete use cases.

For each use case, document:

  • Trigger: What the user says or does
  • Steps: The multi-step workflow required
  • Result: The concrete outcome produced

Determine which category the skill falls into:

CategoryPurposeExample
Document/Asset CreationConsistent, high-quality outputfrontend-design, docx, pptx
Workflow AutomationMulti-step processes with methodologyskill-creator, sprint-planner
MCP EnhancementWorkflow guidance for MCP tool accesssentry-code-review

Step 2: Create the Folder Structure

your-skill-name/
├── SKILL.md              # Required - main instruction file
├── scripts/              # Optional - executable code (Python, Bash)
├── references/           # Optional - detailed docs loaded as needed
└── assets/               # Optional - templates, fonts, icons

Critical naming rules:

  • Folder: kebab-case only (my-skill-name)
  • File: exactly SKILL.md (case-sensitive, no variations)
  • No README.md inside the skill folder
  • No spaces, underscores, or capitals in folder name

Step 3: Write the YAML Frontmatter

The frontmatter is the most important part - it determines whether Claude loads the skill.

Minimal required format:

---
name: your-skill-name
description: What it does. Use when user asks to [specific phrases].
---

The name Field

  • kebab-case only, no spaces or capitals
  • Must match the folder name
  • Never use "claude" or "anthropic" as a prefix (reserved)

The description Field (Critical)

Structure: [What it does] + [When to use it] + [Key capabilities]

Must include BOTH:

  1. What the skill does
  2. When to use it (trigger conditions with specific phrases)

Constraints:

  • Under 1024 characters
  • No XML angle brackets (< or >)
  • Include specific tasks/phrases users would actually say
  • Mention relevant file types if applicable

Good descriptions:

# Specific + actionable + trigger phrases
description: Analyzes Figma design files and generates developer
  handoff documentation. Use when user uploads .fig files, asks for
  "design specs", "component documentation", or "design-to-code handoff".

# Clear value proposition + triggers
description: End-to-end customer onboarding workflow for PayFlow.
  Handles account creation, payment setup, and subscription management.
  Use when user says "onboard new customer", "set up subscription",
  or "create PayFlow account".

Bad descriptions:

# Too vague - won't trigger
description: Helps with projects.

# Missing triggers - Claude won't know when to load
description: Creates sophisticated multi-page documentation systems.

# Too technical, no user-facing triggers
description: Implements the Project entity model with hierarchical
  relationships.

Optional Fields

license: MIT                              # For open-source skills
compatibility: Requires Python 3.10+      # 1-500 chars, environment needs
allowed-tools: "Bash(python:*) WebFetch"  # Restrict tool access
metadata:                                 # Custom key-value pairs
  author: Your Name
  version: 1.0.0
  mcp-server: server-name
  tags: [automation, productivity]

Security Restrictions

Forbidden in frontmatter:

  • XML angle brackets (< >) - prevents prompt injection
  • Skills named with "claude" or "anthropic" prefix

Step 4: Write the Instructions Body

After the frontmatter, write instructions in Markdown.

Recommended Structure

# Skill Name

## Instructions

### Step 1: [First Major Step]
Clear explanation of what happens.

Example:
\`\`\`bash
python scripts/fetch_data.py --project-id PROJECT_ID
\`\`\`
Expected output: [describe what success looks like]

(Add more steps as needed)

## Examples

### Example 1: [Common Scenario]
User says: "Set up a new marketing campaign"
Actions:
1. Fetch existing campaigns via MCP
2. Create new campaign with provided parameters
Result: Campaign created with confirmation link

## Troubleshooting

### Error: [Common error message]
Cause: [Why it happens]
Solution: [How to fix]

Writing Style Rules

  • Imperative/infinitive form: "To accomplish X, execute Y" or "Load this skill when Z"
  • Avoid second person: Do NOT write "You should..." or "If you need..."
  • Be specific and actionable: Include exact commands, parameters, expected outputs
  • Use bullet points and numbered lists for scanability
  • Put critical instructions at the top using ## Important or ## Critical headers

Error Handling

Always include error handling:

## Common Issues

### MCP Connection Failed
If "Connection refused" appears:
1. Verify MCP server is running: Check Settings > Extensions
2. Confirm API key is valid
3. Try reconnecting: Settings > Extensions > [Service] > Reconnect

Progressive Disclosure in Practice

Keep SKILL.md focused on core instructions (under 5,000 words). Move detailed documentation to references/:

Before writing queries, consult `references/api-patterns.md` for:
- Rate limiting guidance
- Pagination patterns
- Error codes and handling

Combating Instruction Drift

For critical validations, prefer bundling a script over relying on language instructions:

CRITICAL: Before calling create_project, verify:
- Project name is non-empty
- At least one team member assigned
- Start date is not in the past

For deterministic checks, use scripts/validate.py instead of prose instructions.

Step 5: Choose an Implementation Pattern

Select the pattern that fits the skill's workflow. See references/patterns.md for detailed examples.

PatternUse When
Sequential WorkflowMulti-step processes in specific order
Multi-MCP CoordinationWorkflows spanning multiple services
Iterative RefinementOutput quality improves with iteration
Context-Aware SelectionSame outcome, different tools per context
Domain IntelligenceSpecialized knowledge beyond tool access

Step 6: Test the Skill

Triggering Tests

Run 10-20 test queries. Target: skill triggers on 90%+ of relevant queries.

Should trigger:

  • Obvious task descriptions
  • Paraphrased requests
  • Domain-specific terminology

Should NOT trigger:

  • Unrelated topics
  • Queries better served by other skills

Debug triggering: Ask Claude "When would you use the [skill name] skill?" and compare against expected triggers.

Functional Tests

  • Valid outputs generated
  • API/MCP calls succeed
  • Error handling works
  • Edge cases covered

Performance Comparison

Compare with and without the skill:

  • Number of back-and-forth messages
  • Failed API calls
  • Total tokens consumed
  • User corrections needed

Step 7: Iterate

Skills are living documents. Watch for:

Undertriggering (skill doesn't load when it should):

  • Add more trigger phrases to the description
  • Include technical keywords and synonyms

Overtriggering (skill loads for unrelated queries):

  • Add negative triggers: "Do NOT use for simple data exploration"
  • Be more specific about scope
  • Clarify boundaries with other skills

Execution issues (inconsistent results):

  • Make instructions more specific
  • Add error handling
  • Move verbose content to references

Skill-Tree Programmatic Skills

When creating skills for the skill-tree library (as opposed to SKILL.md files), structure them with these fields:

{
  id: "kebab-case-id",
  name: "Human-Readable Name",
  version: "1.0.0",
  description: "Short description for semantic matching (1-2 sentences)",
  problem: "What problem this skill solves",
  triggerConditions: [
    { type: "error", value: "Cannot find module", description: "ES module import failure" },
    { type: "keyword", value: "typescript, import", description: "TypeScript imports" },
    { type: "pattern", value: "\\.(ts|tsx)$", description: "TypeScript files" }
  ],
  solution: "Step-by-step solution in imperative form",
  verification: "How to verify the skill worked",
  examples: [
    { scenario: "Description", before: "Before state", after: "After state" }
  ],
  tags: ["typescript", "modules"],
  status: "active"
}

Trigger condition types:

  • error: Error message patterns (regex)
  • keyword: Comma-separated keywords
  • pattern: Regex for file paths or content
  • context: Contextual description
  • custom: Freeform condition

Quality Checklist

Before shipping, verify against references/quality-checklist.md.

Quick validation:

  • Folder is kebab-case, SKILL.md exists (exact spelling)
  • Frontmatter has --- delimiters, name and description fields
  • Description includes WHAT it does and WHEN to use it
  • No XML tags anywhere in frontmatter
  • Instructions are specific and actionable (not vague)
  • Error handling included for common failure modes
  • Examples provided for primary use cases
  • SKILL.md is under 5,000 words
  • Detailed docs moved to references/
  • Tested: triggers correctly, doesn't overtrigger, produces correct output

What ships with it: 3 files

19.0 KB alongside SKILL.md

references/

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.