Skill Build Helper
Create or optimize an OpenClaw skill. Use when the user wants to build a new skill, improve an existing one, review a SKILL.md, or prepare a skill for ClawHu...
Description
name: skill-build-helper description: Create or optimize an OpenClaw skill. Use when the user wants to build a new skill, improve an existing one, review a SKILL.md, or prepare a skill for ClawHub publishing. metadata: {"openclaw":{"requires":{"bins":["jq"]}}}
Skill Builder
A meta-skill for creating and optimizing OpenClaw skills following official best practices. Guides you through a structured workflow from intent to publish-ready skill.
Workflow
1. Understand intent
Determine the mode:
| Mode | Trigger |
|---|---|
| Create | User wants a new skill |
| Optimize | User wants to improve or review an existing skill |
If creating: Ask the user for 2-3 concrete usage examples (what would they say to trigger this skill, what should happen). These examples drive the description and workflow design.
If optimizing: Read the existing SKILL.md and note its current structure before proceeding.
2. Scaffold the directory
Create the skill directory under ~/workspace/skills/:
<skill-name>/
├── SKILL.md (required — agent instructions)
├── README.md (recommended for published skills)
├── scripts/ (if deterministic code is needed)
└── references/ (if large docs needed on-demand)
Naming rules:
- Lowercase, hyphens only (no underscores, no spaces)
- Max 64 characters
- Verb-led when possible (e.g.,
workout-track,skill-builder) - Folder name must match the
namefield in frontmatter
3. Write the SKILL.md
The SKILL.md is the core file — it contains the agent's instructions for executing the skill.
Frontmatter (YAML)
Three fields:
---
name: <skill-name>
description: <what it does>. Use when <trigger context>.
metadata: {"openclaw":{"requires":{"bins":["list","of","binaries"]}}}
---
name: Must match folder name exactlydescription: Primary trigger mechanism. Include "Use when..." to help the agent decide when to activate. Be specific to avoid overlap with other skillsmetadata: Declare runtime dependencies. Load{baseDir}/references/frontmatter-spec.mdfor the full reference if needed
Body structure
Write the body following these rules:
- Opening line: One sentence explaining what the skill does
## Workflow: Numbered H3 steps (### 1. Step name) — imperative form- Tables for structured data (fields to extract, flags, mappings)
- Code blocks with exact commands — use
exectool JSON format:{ "tool": "exec", "command": "<shell command here>" } ## Examples: Table with realistic input/output pairs (minimum 3 rows)- Error handling section: What to do when things fail — always present, never retry silently
Key rules
- Keep SKILL.md under 500 lines — move detailed docs to
references/ - Use
{baseDir}for paths within the skill directory (e.g.,{baseDir}/scripts/run.sh) - No hardcoded secrets — read from env vars,
.env, oropenclaw.jsonviajq - Imperative form throughout ("Extract the URL", not "The URL is extracted")
- Confirmation before state changes — show a summary and ask before writing to DB, sending messages, etc.
4. Write the README.md
User-facing documentation with these sections:
# <Skill Name>
<What it does — 1-2 lines>
## Requirements
- <binary or service 1>
- <binary or service 2>
## Setup
<Step-by-step setup instructions>
## Usage
<2-3 natural language examples showing what the user would say>
## Install
\`\`\`bash
clawhub install <author>/<skill-name>
\`\`\`
5. Quality check
Load {baseDir}/references/checklist.md and validate every item:
- Frontmatter has
name+description -
namematches folder name - Description includes "Use when..." trigger phrases
- No hardcoded secrets or API keys
-
{baseDir}used for all internal paths - Metadata declares runtime dependencies (
requires.bins,requires.env) - Error handling section is present
- Examples section with at least 3 rows
- SKILL.md is under 500 lines
- README.md present for published skills
- Confirmation step before any state-changing operation
Report the results as a checklist to the user, noting any failures.
6. Optimize (existing skills only)
When reviewing an existing skill:
- Read the current SKILL.md
- Run the quality check from Step 5
- List each issue found with a concrete fix
- Ask the user which fixes to apply
- Apply approved fixes
Do not rewrite an entire SKILL.md — make targeted, minimal edits.
Examples
| User says | Mode | Action |
|---|---|---|
| "I want to create a skill that tracks my reading list" | Create | Scaffold reading-track/, gather examples, write SKILL.md + README.md |
| "Can you review my sm-saver skill?" | Optimize | Read sm-saver/SKILL.md, run checklist, report issues |
| "Build a skill for checking server status" | Create | Scaffold server-check/, gather examples, write SKILL.md + README.md |
| "Improve the reminder skill for ClawHub" | Optimize | Read reminder/SKILL.md, run checklist, add README.md if missing |
Reviews (0)
No reviews yet. Be the first to review!
Comments (0)
No comments yet. Be the first to share your thoughts!