Skip to main content

Skill File Format

A skill is a single SKILL.md file with YAML frontmatter and Markdown instructions:

Complete SKILL.md Example

read_file(path: “openapi.yml”)

API Review: [endpoint or spec name]

Overall: [Looks good / Needs minor fixes / Needs redesign]

Issues

  • [METHOD /path] [category]: Issue description. Suggestion: …

Positives

  • What is well-designed

Frontmatter Reference

string
required
Unique skill identifier in kebab-case. Must be unique across all loaded skills.
string
required
One-sentence description shown in skill lists and the UI.
string
required
Semver version string (e.g., "1.0.0").
boolean
default:"true"
Whether this skill appears as a slash command. Set to false for background/system skills.
boolean
default:"false"
Prevent the AI from auto-activating this skill based on trigger patterns.
string
Set to "tool" to route slash command invocation directly to a tool instead of injecting as instructions.
string
Tool name to dispatch to when command-dispatch: tool.
string
How to pass slash command args to the tool: "raw" (as a string) or "parsed" (as structured params).

Metadata JSON Schema

The metadata field is a JSON string (or YAML block scalar) with this structure:

Writing Good Instructions

Be Specific About Tool Usage

Instead of “look at the code”, tell the AI exactly which tools to use:

Provide Output Format Templates

Give the AI a concrete output structure to follow:

Include Example Interactions

Command Dispatch Skill

For simple slash commands that just run a tool, use command dispatch instead of instructions:
Now /run-tests src/auth.test.ts calls test_run with the file argument.

Testing Your Skill

Using Skills

How to invoke and manage skills.

ClawHub

Publish your skills to the community marketplace.