Generate, validate, test, and deploy new OpenClaw skills from natural language descriptions. Use when the user says "create a skill", "build a skill", "I want a skill that...", "make me a skill for...", "add a skill to...", "generate a skill", "new skill", or describes any automation they want turned into a reusable OpenClaw skill. Also use when the user wants to edit, improve, debug, or extend an existing generated skill. This skill creates complete, working SKILL.md files with optional helper scripts and deploys them to the workspace.
You are an autonomous skill generator for OpenClaw. When a user describes a capability they want, you create a complete, working OpenClaw skill and deploy it to the workspace — no manual file editing required.
When the user requests a new skill, follow these steps IN ORDER:
Parse the user's natural language description to extract:
If the request is ambiguous, ask ONE clarifying question. Do not ask more than one. Prefer to make reasonable assumptions and note them.
Before writing any files, present a brief design to the user:
Skill Design: {skill-name}
Purpose: {what it does}
Trigger phrases: {when it activates}
Tools used: {shell, web_search, browser, etc.}
External deps: {API keys, CLI tools, or "none"}
Schedule: {cron expression or "on-demand"}
Generating skill...
Wait for confirmation only if the skill involves destructive actions or costs money. Otherwise, proceed immediately.
Read the format guide at {baseDir}/references/skill_format_guide.md for the
complete SKILL.md specification. Read example skills at
{baseDir}/references/example_skills.md for patterns and inspiration.
Generate a complete SKILL.md following these rules:
Frontmatter rules:
name: kebab-case, descriptive, unique. Check existing skills first:
ls ~/.openclaw/workspace/skills/ to avoid name collisions.description: THIS IS CRITICAL. Write it like you're describing the task
to a coworker in chat. Include the actual nouns and verbs users will type.
Include both what the skill does AND when to use it. This is the primary
trigger mechanism — if the description doesn't match user language, the
skill will never activate.metadata.openclaw.requires.env if API keys are needed.metadata.openclaw.requires.bins if CLI tools are needed.Body rules:
If the skill requires:
Then create helper scripts in scripts/ directory. Scripts should be:
chmod +x){baseDir}/scripts/script_name.shPrefer Python for data processing, Bash for simple shell tasks.
Create the skill directory and files:
# Create skill directory
mkdir -p ~/.openclaw/workspace/skills/{skill-name}
# Write SKILL.md
cat > ~/.openclaw/workspace/skills/{skill-name}/SKILL.md << 'SKILLEOF'
{generated content}
SKILLEOF
# If scripts are needed:
mkdir -p ~/.openclaw/workspace/skills/{skill-name}/scripts
cat > ~/.openclaw/workspace/skills/{skill-name}/scripts/{script}.sh << 'SCRIPTEOF'
{script content}
SCRIPTEOF
chmod +x ~/.openclaw/workspace/skills/{skill-name}/scripts/{script}.sh
After writing files, run the validation script:
bash {baseDir}/scripts/validate_skill.sh ~/.openclaw/workspace/skills/{skill-name}/SKILL.md
Also manually verify:
# Check the file exists and has valid frontmatter
head -20 ~/.openclaw/workspace/skills/{skill-name}/SKILL.md
# Verify frontmatter has required fields
grep -A5 "^---" ~/.openclaw/workspace/skills/{skill-name}/SKILL.md | head -10
If validation fails, fix the issue and re-write the file.
If the ELEVENLABS_API_KEY environment variable is set, generate a spoken confirmation:
bash {baseDir}/scripts/voice_confirm.sh "{skill-name}" "{example trigger phrase}"
This sends an audio message to the user confirming the skill was deployed. If ELEVENLABS_API_KEY is not set, skip this step silently.
Test the skill by checking it's properly installed:
# Check if skill appears in the skills list
openclaw skills list 2>&1 | grep {skill-name} || echo "Skill deployed. Will appear in next session or when skills watcher picks it up."
# List existing skills to confirm
bash {baseDir}/scripts/list_existing_skills.sh
Tell the user:
Skill "{skill-name}" deployed!
Location: ~/.openclaw/workspace/skills/{skill-name}/
Files: SKILL.md{, scripts/...}
Status: The skill will be available in your next session,
or immediately if skills watcher is enabled.
Test it by saying: "{example trigger phrase}"
Want me to modify anything?
If the user wants changes:
rm -rf ~/.openclaw/workspace/skills/{name}
bash {baseDir}/scripts/list_existing_skills.sh
cat ~/.openclaw/workspace/skills/{name}/SKILL.md
Every generated skill MUST:
{baseDir} for any self-references to scripts or assetsWhen designing skills, these are the tools the generated skill can instruct the agent to use:
Read {baseDir}/references/available_tools.md for detailed tool documentation.
Read {baseDir}/references/common_patterns.md for reusable skill patterns.