Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Design and create a new skill, or refine an existing one, following project conventions. Use when asked to create a skill, design a new skill, write a skill definition, build a SKILL.md, scaffold a skill from requirements, improve an existing skill, or refine a skill's structure.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-10 | ✗→✓ | ▲ Improved | 106% | 0% |
| case-01 | ✗→✓ | ▲ Improved | 65% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 94% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 732% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 375% | 0% |
Given a description of what a skill should do, produce or refine a complete skill directory — a SKILL.md file and any supporting reference files — that follows project conventions, works with autonomous agents, produces self-contained document output with trackable frontmatter, and never requires human interaction during execution. When refining an existing skill, preserve what works, adapt to its established structure and references, and make targeted improvements rather than forcing a rewrite into a rigid template. The result is a skill that an agent can invoke to produce a structured output file from start to finish.
SKILL.md and all files in references/ to understand the skill's established structure, conventions, and content before making changes.skills/*/SKILL.md to understand conventions, voice, and patterns in use. Match their style.Skill creation or refinement follows three phases: design, write, and validate.
Before writing anything, make these design decisions. If refining an existing skill, start by reading its current SKILL.md and all files in its references/ directory to understand the established structure.
1. New or refine? Determine whether this is a new skill or a refinement of an existing one. If refining, inventory what already exists — the current sections, reference files, conventions, and what's working well. The goal is targeted improvement, not a rewrite into a canonical template. Preserve the skill's existing structure and voice where they serve the skill's purpose.
2. Name and output file. Choose the output filename — always CAPITALIZED_WITH_UNDERSCORES.md. The name should clearly identify what the document is (e.g., SPEC.md, CODE_REVIEW.md, DEPLOYMENT_PLAN.md). This becomes the name field in frontmatter. If refining, keep the existing name unless explicitly asked to change it.
3. Folder name. Choose the skill's directory name under skills/ — lowercase, hyphenated (e.g., code-review, deployment-plan). This is how the skill is referenced in the plugin system.
4. Workflow or Rules (or both). Decide the core structure:
This is a judgment call. Look at the skill's nature: does it feel more like "follow these steps" or "satisfy these properties"? When in doubt, lean toward guidelines with clear principles rather than rigid step-by-step instructions.
5. Subagent decomposition. Decide if the skill needs subagents:
If using subagents, design each one as a specialist with its own reference file in references/.
6. Output strictness. Decide how strict the output template should be:
7. Frontmatter fields. Design the YAML frontmatter for the output file. Include common tracking fields plus skill-specific fields (see Output Frontmatter section below).
8. Reference file audit (refinement only). If refining an existing skill, audit its references/ directory. Do not create a new SKILL.md section that duplicates content already covered by a reference file. Conversely, if a reference file is outdated, irrelevant, or contradicts the refinement goals, update or remove it rather than working around it. The reference files and SKILL.md should form a coherent whole without redundancy.
Create or update the skill files following the conventions below. Read the official skill writing guide at references/official-skill-guide.md for structural patterns and progressive disclosure rules.
For new skills, write the SKILL.md following this structure:
markdown--- name: OUTPUT_NAME.md description: {Action verb phrase}. Use when asked to {trigger 1}, {trigger 2}, or {produce OUTPUT_NAME.md}. --- # Task: {What the skill does} ## Objective ## Inputs ## Workflow / Rules ## Output Format ## Scope ## Quality Checklist
If the skill uses subagents, also create reference files in references/ — one per subagent.
For existing skills, use the skill's current structure as the starting point. Do not force it into the canonical template above if the skill already has a well-established structure that serves its purpose. Instead:
After writing, verify the skill against the quality checklist at the end of this document. Also:
These rules govern how to write each section of a skill. They are the core of this skill — internalize them.
The YAML frontmatter has two required fields:
yaml--- name: OUTPUT_NAME.md description: {Action verb phrase}. Use when asked to {trigger}, {trigger}, or {produce OUTPUT_NAME.md}. ---
name — The output filename this skill produces. Always CAPITALIZED_WITH_UNDERSCORES.md. This is what the agent writes to disk.
description — The trigger line. This is how the plugin system matches user intent to the skill. Write it for intent-matching:
Use when asked to... and list 3-5 realistic phrases a user might sayExample:
yamldescription: Review code changes using parallel subagents for security, bugs, quality, contracts, test coverage, and historical context. Use when asked to review code, review changes, do a code review, check code before merge, or produce a CODE_REVIEW.md.
One paragraph. Three things:
Keep it focused. Do not describe the process — that belongs in Workflow.
Numbered list. For each input:
The first input is typically the primary input (what the skill operates on). Subsequent inputs provide context.
This is the core of the skill — where you teach the agent how to do the work. The approach depends on the skill's nature (decided in Phase 1).
Guidelines for writing workflows:
Guidelines for writing rules:
The flexible-over-rigid principle: Prefer teaching principles and patterns over prescribing exact steps. A skill that says "analyze the code for these 5 categories of issues" produces better results than one that says "run grep for X, then check file Y, then count Z." Give the agent the domain knowledge and let it apply judgment. Use strict rules only for properties that must hold in every case (naming conventions, required sections, output contracts).
Define the structure of the output document. This is the contract between the skill and whoever reads the output.
Output frontmatter (required in all skill outputs):
Every output file must start with a single YAML frontmatter block at the top of the file. This block contains both common tracking fields and skill-specific fields together. There is only ever one frontmatter block — never split fields across multiple YAML blocks.
yaml--- # Common fields (present in every skill's output) skill: OUTPUT_NAME.md # Which skill produced this date: YYYY-MM-DD # When it was produced status: complete # complete | has_open_questions | blocked # Skill-specific fields (vary by skill, designed for the domain) # Choose fields that enable monitoring, benchmarking, or pipeline decisions. # Good skill-specific fields answer: "What would an orchestrator or dashboard # want to know about this output at a glance?" ---
Examples of complete frontmatter blocks:
Code review skill:
yaml--- skill: CODE_REVIEW.md date: 2026-03-24 status: complete verdict: pass critical_issues: 0 high_issues: 2 files_reviewed: 12 ---
Specification skill:
yaml--- skill: SPEC.md date: 2026-03-24 status: complete unit: U01 functions_specified: 8 open_questions: 0 estimated_loc: 350 ---
Design frontmatter fields that are:
Output template:
After frontmatter, define the document structure. Wrap the template in a fenced code block. Use these conventions:
{placeholder} for variable content(Repeat for each X. If none: "No X found.") for iteration(Omit this section if Y.) for conditional sectionsStrict vs flexible templates:
Every skill output must include an Open Questions section, typically at the end. This is the escape valve for genuine ambiguity.
Rules for the skill definition:
Template for questions in the output:
markdown## Open Questions - [ ] {Question} - **Option A:** {description} — {tradeoff} - **Option B:** {description} — {tradeoff} - **Recommendation:** {suggestion and reasoning} (If none: "All questions resolved.")
Two subsections: In scope and Out of scope.
In scope: bulleted list of what this skill delivers. Be specific.
Out of scope: bulleted list of what this skill does NOT do. Name the adjacent skill or phase that owns each excluded item. This is critical — without it, eager agents will helpfully add out-of-scope content.
Good out-of-scope entries follow the pattern: "{thing} — owned by {adjacent skill/phase}."
Checkbox list (- [ ]) that the agent verifies before the output is complete. Each item must be:
Include these universal items in every skill's checklist:
[ ] Output file has valid YAML frontmatter with all required fields[ ] No placeholders, TODOs, or vague language ("appropriate", "relevant", "as needed", "etc.")[ ] Open Questions section is present (empty or with genuine ambiguities only)[ ] Output is self-contained — readable and actionable without opening other filesAdd skill-specific items after the universal ones.
Match the voice used across all skills in this project:
A skill's SKILL.md and its references/ directory form a coherent whole. Content should live in exactly one place:
This applies especially when adding new sections to an existing skill — always check whether the content is already covered by an existing reference file before writing it into SKILL.md.
Skills never pause to ask the user questions during execution. This is a hard constraint for autonomous agent compatibility.
The skill must be executable from a headless CLI invocation (claude -p "/SKILL_NAME.md ..." --permission-mode bypassPermissions) without any interactive prompts.
Follow the three-level loading system:
For large reference files (>300 lines), include a table of contents at the top.
When the skill uses subagents, each gets its own markdown file in references/. Follow this structure:
markdown# {Role Name} — Subagent Instructions {One paragraph: who this subagent is, its mission, its expertise.} ## What You Receive {Identical inputs section across all sibling subagents.} ## Analysis Process {4-5 step systematic process. Give multiple analytical lenses, not a single checklist.} ## Output Format {Structured markdown with severity/priority hierarchy. Detailed format for high-severity findings. Condensed table format for low-severity findings.} ## Guiding Principles {3-5 domain-specific principles that inject judgment. Emphasize proportionality, pragmatism, evidence over absolutism.}
Design principles for subagent prompts:
SKILL.md)agents/ORCHESTRATION_GUIDELINES.md for thatBefore the skill is ready, verify:
SKILL.md has valid YAML frontmatter with name (CAPITALIZED_WITH_UNDERSCORES.md) and description (action verb + 3-5 trigger phrases)skill, date, status) and skill-specific trackable fields — never multiple YAML blocks{placeholders}, iteration guidance, conditional sections, and empty-state textOther measured skills in the registry, with their headline benchmark lift.