Skill Creator: The Official Guide to Building Your Own OpenClaw Skills
29,000+ downloads and 100 stars — skill-creator by @chindden is the most-used reference for building OpenClaw skills. If you've ever wanted to package your workflow, domain knowledge, or tool integration as a reusable skill for Claude, this is where you start.
It's not a tool that writes skills for you. It's a structured guide that teaches you how to think about skills, when to use bundled resources, how to control Claude's behavior, and what separates a good skill from a confusing one.
What a Skill Actually Is
A skill is a self-contained package that loads into Claude's context to give it specialized knowledge or workflow instructions. The canonical format:
skill-name/
├── SKILL.md (required)
│ ├── YAML frontmatter (name, description)
│ └── Markdown instructions
└── Bundled Resources (optional)
├── scripts/ — Executable code (Python/Bash/etc.)
├── references/ — Documentation to load into context
└── assets/ — Files used in output (templates, fonts, icons)
The frontmatter description field is the most important part. It's what Claude reads to determine when to use the skill. If the description is vague, the skill won't trigger reliably.
The Core Design Principle: Degrees of Freedom
The most useful concept in skill-creator is matching freedom to task fragility:
High freedom (text instructions): Use when multiple approaches are valid, context determines the best path, or the task needs judgment.
# Good for high freedom:
Analyze the user's requirements and choose the most appropriate approach
based on their use case and technical environment.Medium freedom (pseudocode + parameters): Use when a preferred pattern exists but some variation is acceptable.
Low freedom (specific scripts, few parameters): Use when operations are fragile, the exact sequence matters, or consistency is critical.
# Low freedom example — deterministic script
# No judgment calls here, just execution
fill_pdf_fields(input_file, field_map, output_file)The skill-creator guide frames this as a spectrum: a narrow bridge with cliffs needs guardrails, an open field allows many routes.
Structure Patterns
The guide documents four common skill structures:
Workflow-Based
Best for sequential processes with clear steps. Good for: document processing, code review pipelines, deployment checklists.
## Workflow Decision Tree
Creating new? → Follow "Creation workflow"
Editing existing? → Follow "Editing workflow"
## Creation Workflow
1. [Step 1 with specific instructions]
2. [Step 2]
...Task-Based
Best for skill collections offering multiple operations. Good for: multi-tool integrations, API wrappers.
## Quick Start
## Merge PDFs
## Split PDFs
## Extract TextReference/Guidelines
Best for standards and specifications. Good for: brand guidelines, coding standards, company policies.
Capabilities-Based
Best for integrated systems with interrelated features. Numbered capabilities with detailed subsections.
Bundled Resources
The three directories serve distinct purposes:
scripts/ — Deterministic Execution
Scripts are for operations where you need reliability over flexibility. The key insight: a script may be executed without loading into context. This keeps the context window clean while still getting the operation done.
# scripts/analyze_stock.py
# This runs directly — Claude doesn't need to read it to use it
uv run scripts/analyze_stock.py AAPL --fastreferences/ — Deep Context On Demand
Reference files load into context when needed. Use for:
- API documentation too detailed for SKILL.md
- Workflow guides for complex multi-step processes
- Company-specific schemas and policies
The strategy: keep SKILL.md concise, push depth to reference files that only load for specific scenarios.
assets/ — Output Materials
Assets are not loaded into context. They're files the skill uses in its output:
- PowerPoint templates
- HTML/React boilerplate
- Font files
- Sample data
The Init Script
skill-creator includes a Python script to scaffold a new skill:
# Initialize a new skill with full directory structure
python utils/init_skill.py my-new-skill --path skills/public
# What it creates:
my-new-skill/
├── SKILL.md (with TODO template)
├── scripts/example.py
├── references/api_reference.md
└── assets/example_asset.txtThe generated SKILL.md has a structured TODO list guiding you through each frontmatter field and each section of the body.
Validation
Before packaging:
python utils/quick_validate.py my-new-skill/Checks: SKILL.md exists, frontmatter is valid YAML, name and description fields are present, name follows hyphen-case convention, no disallowed frontmatter keys.
Packaging into a distributable .skill file:
python utils/package_skill.py skills/public/my-skill ./distWhat Makes a Good Description
The frontmatter description is Claude's routing signal. Compare:
# Bad — too vague, won't trigger reliably
description: "Helper for coding tasks."
# Good — specific triggers, clear use case
description: "Guide for creating effective skills. Use when users want to create
a new skill (or update an existing skill) that extends Claude's capabilities
with specialized knowledge, workflows, or tool integrations."The description should answer: when exactly should this skill activate?
How to Install
clawhub install skill-creatorPractical Tips
-
Start with the description, not the content — Write the description first. If you can't clearly describe when the skill should be used, the content will be unfocused too.
-
Keep SKILL.md to under 2000 tokens — The context window is shared with everything else Claude needs. Move depth to reference files that only load when relevant.
-
Scripts for anything you run more than once — If you've written the same Python snippet in three conversations, it belongs in
scripts/. Bundling it makes it deterministic and token-free. -
Use the
output-patterns.mdreference — It's included in the skill assets and documents patterns for strict vs. flexible output formatting. Worth reading before building skills where output structure matters. -
Test with a real task before publishing — Run through your skill's trigger scenario end-to-end. If Claude interprets it differently than you intended, the description needs refinement.
Considerations
- SKILL.md is loaded in full — Unlike reference files, SKILL.md always loads when the skill triggers. Every line costs tokens. Be ruthless about what goes in the main file vs. references.
- Max 5 files per
brv curatecall — If you're integrating with ByteRover, respect the file limit for context capture. - Name validation is strict — Skill names must be hyphen-case (
my-skill), max 64 characters, no consecutive hyphens. - Skills are not agents — Skills provide context and instructions; the underlying model is still Claude. Highly agentic behavior requires additional configuration beyond the skill itself.
The Bigger Picture
skill-creator reflects a broader bet: that the real leverage in AI workflows isn't the model itself, but the structured context you give it. A well-designed skill can compress weeks of domain learning into a reusable package that any Claude user can install and immediately benefit from.
With 29,000+ downloads, it's become the starting point for anyone in the OpenClaw ecosystem who wants to go beyond using existing skills to building new ones.
View the skill on ClawHub: skill-creator