Install
openclaw skills install @9438190/skill-builderCreate a new OpenClaw skill with a short eval-driven loop. Activate when user asks to create a skill, turn a repeated workflow into a skill, or build a new reusable procedure.
openclaw skills install @9438190/skill-builderThis skill guides you through creating a new OpenClaw skill from a repeated workflow.
Not for: Improving existing skills (use skill-refiner instead).
Observe pattern → Define skill → Write SKILL.md → Test → Refine
Before writing anything, understand:
Every skill has a header + body:
---
name: <skill-name>
description: |
One-line description. Activate when user mentions [trigger keywords].
---
# <Skill Name>
[Detailed description of what this skill does]
## When to Use
[When to activate this skill]
## How to Use
[Step-by-step workflow]
## Inputs
- `[param]`: [description]
## Outputs
[What the skill produces]
## Examples
[example usage with inputs/outputs]
## Edge Cases
- [case 1]: [how to handle]
- [case 2]: [how to handle]
## Notes
[Any caveats or special considerations]
Run the skill with real inputs:
Based on test results:
kebab-case: feishu-doc, deep-research, skill-buildercode-reviewer vs cr-skill| Location | When to Use |
|---|---|
workspace/skills/<name>/SKILL.md | Workspace-specific, one-off skills |
~/.openclaw/skills/ | Personal reusable skills |
| Bundled with plugins | Skills that ship with installed plugins |
❌ "This skill helps with tasks" ✅ "Schedule reminders with natural language: 'remind me tomorrow at 9 to call Mom'"
❌ 50 steps for a simple workflow ✅ Break into sub-skills or simplify
❌ "Read the file" (what if it doesn't exist?) ✅ "Read the file — if it doesn't exist, return 'File not found: [path]'"
❌ "Use the tool"
✅ "Use the tool: feishu_doc(action='read', doc_token='ABC123') → returns {title, content, ...}"
User repeatedly asks: "check if server X is up" and you run:
---
name: server-health-check
description: |
Check server health status via SSH. Activate when user mentions
checking a server, server status, or "is X up".
---
# Server Health Check
Quick health check for a server via SSH.
## How to Use
1. **Identify server** — which server to check? (hostname or IP)
2. **SSH connect** — connect to server (check ~/.ssh/config for host details)
3. **Run health checks:**
- `systemctl status <service>` — is the service running?
- `journalctl -n 20 --no-pager` — recent logs
- `df -h` — disk space
- `free -h` — memory
4. **Summarize** — return a concise status report
## Inputs
- `server`: hostname or IP address
## Outputs
Server: [server] Status: [running/down/degraded] Services: [list running services] Disk: [usage%] Memory: [usage%] Recent Alerts: [any errors in logs]
## Edge Cases
- **Connection refused:** Return "Cannot connect to [server]. Check if server is running or SSH is accessible."
- **Service not found:** Note it in output, don't fail
- **Partial failure:** Report what succeeded, flag what failed
## Notes
- Use `paramiko` on Windows, `ssh` on Linux/Mac
- SSH credentials should be in `~/.ssh/config`, not hardcoded