Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Write high-quality agent skills (SKILL.md files) for ClawdHub/MoltHub. Use when creating a new skill from scratch, structuring skill content, writing effective frontmatter and descriptions, choosing section patterns, or following best practices for agent-consumable technical documentation.
Write high-quality agent skills (SKILL.md files) for ClawdHub/MoltHub. Use when creating a new skill from scratch, structuring skill content, writing effective frontmatter and descriptions, choosing section patterns, or following best practices for agent-consumable technical documentation.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
Write well-structured, effective SKILL.md files for the ClawdHub registry. Covers the skill format specification, frontmatter schema, content patterns, example quality, and common anti-patterns.
Creating a new skill from scratch Structuring technical content as an agent skill Writing frontmatter that the registry indexes correctly Choosing section organization for different skill types Reviewing your own skill before publishing
The skill's slug identifier. Must match what you publish with. name: my-skill Rules: Lowercase, hyphenated: csv-pipeline, git-workflows No spaces, no underscores Keep it short and descriptive (1-3 words) Check for slug collisions before publishing: npx molthub@latest search "your-slug"
The single most important field. This is what: The registry indexes for semantic search (vector embeddings) The agent reads to decide whether to activate the skill Users see when browsing search results # GOOD: Specific triggers and scope description: Write Makefiles for any project type. Use when setting up build automation, defining multi-target builds, managing dependencies between tasks, creating project task runners, or using Make for non-C projects (Go, Python, Docker, Node.js). Also covers Just and Task as modern alternatives. # BAD: Vague, no triggers description: A skill about Makefiles. # BAD: Too long (gets truncated in search results) description: This skill covers everything you need to know about Makefiles including variables, targets, prerequisites, pattern rules, automatic variables, phony targets, conditional logic, multi-directory builds, includes, silent execution, and also covers Just and Task as modern alternatives to Make for projects that use Go, Python, Docker, or Node.js... Pattern for effective descriptions: [What it does]. Use when [trigger 1], [trigger 2], [trigger 3]. Also covers [related topic].
JSON object with the clawdbot schema: metadata: {"clawdbot":{"emoji":"๐ง","requires":{"anyBins":["make","just"]},"os":["linux","darwin","win32"]}} Fields: emoji: Single emoji displayed in registry listings requires.anyBins: Array of CLI tools the skill needs (at least one must be available) os: Array of supported platforms: "linux", "darwin" (macOS), "win32" (Windows) Choose requires.anyBins carefully: # Good: lists the actual tools the skill's commands use "requires": {"anyBins": ["docker", "docker-compose"]} # Bad: lists generic tools every system has "requires": {"anyBins": ["bash", "echo"]} # Good for skills that work via multiple tools "requires": {"anyBins": ["make", "just", "task"]}
Organize by task, not by concept. The agent needs to find the right command for a specific situation. ## GOOD: Organized by task ## Encode and Decode ### Base64 ### URL Encoding ### Hex ## BAD: Organized by abstraction ## Theory of Encoding ## Encoding Types ## Advanced Topics
Every section should have at least one code block. Skills without code blocks are opinions, not tools. ## GOOD: Concrete, runnable example ```bash # Encode a string to Base64 echo -n "Hello, World!" | base64 # SGVsbG8sIFdvcmxkIQ== ``` ## BAD: Abstract description Base64 encoding converts binary data to ASCII text using a 64-character alphabet... Code block best practices: Always specify the language (bash, python, javascript, yaml, sql, etc.) Show the output in a comment below the command Use realistic values, not foo/bar (use myapp, api-server, real IP formats) Include the most common case first, then variations Add inline comments for non-obvious flags or arguments
If a skill applies across languages, use consistent section structure: ## Hashing ### Bash ```bash echo -n "Hello" | sha256sum
const crypto = require('crypto'); crypto.createHash('sha256').update('Hello').digest('hex');
For skills about patterns in a specific language or framework. --- name: pattern-name description: [Pattern] in [language/framework]. Use when [scenario 1], [scenario 2]. metadata: {"clawdbot":{"emoji":"๐","requires":{"anyBins":["runtime"]}}} --- # Pattern Name ## When to Use ## Quick Reference [Cheat sheet / syntax summary] ## Patterns ### [Pattern 1 โ with full example] ### [Pattern 2 โ with full example] ## Cross-Language Comparison (if applicable) ## Anti-Patterns [What NOT to do, with explanation] ## Tips
For skills about multi-step processes. --- name: workflow-name description: [Workflow description]. Use when [scenario 1], [scenario 2]. metadata: {"clawdbot":{"emoji":"๐","requires":{"anyBins":["tool1","tool2"]}}} --- # Workflow Name ## When to Use ## Prerequisites [What needs to be set up first] ## Step-by-Step ### Step 1: [Action] ### Step 2: [Action] ### Step 3: [Action] ## Variations ### [Variation for different context] ## Troubleshooting ## Tips
# BAD ## Error Handling Error handling is important for robust applications. You should always handle errors properly to prevent unexpected crashes... # GOOD ## Error Handling ```bash # Bash: exit on any error set -euo pipefail # Trap for cleanup on exit trap 'rm -f "$TMPFILE"' EXIT ### Too narrow ```markdown # BAD: Only useful for one specific case --- name: react-useeffect-cleanup description: How to clean up useEffect hooks in React --- # GOOD: Broad enough to be a real reference --- name: react-hooks description: React hooks patterns. Use when working with useState, useEffect, useCallback, useMemo, custom hooks, or debugging hook-related issues. ---
If any section goes more than 10 lines without a code block, it's too text-heavy. Break it up with examples.
If your skill mentions another tool or concept that has its own skill, note it: # For Docker networking issues, see the `container-debug` skill. # For regex syntax details, see the `regex-patterns` skill.
Verify every command works on current tool versions. Common traps: Docker Compose: docker-compose (v1) vs. docker compose (v2) Python: pip vs. pip3, python vs. python3 Node.js: CommonJS (require) vs. ESM (import)
MetricTargetToo ShortToo LongTotal lines300-550< 150> 700Sections5-10< 3> 15Code blocks15-40< 8> 60Tips5-10< 3> 15 A skill under 150 lines probably lacks examples. A skill over 700 lines should be split into two skills.
Before publishing, verify: Frontmatter is valid YAML โ test by pasting into a YAML validator Description starts with what the skill does โ not "This skill..." or "A skill for..." Every section has at least one code block โ no text-only sections in the main content Commands actually work โ test in a clean environment No placeholder values left โ search for TODO, FIXME, example.com used as real URLs Slug is available โ npx molthub@latest search "your-slug" returns no exact match requires.anyBins lists real dependencies โ tools the skill's commands actually invoke Tips section exists โ with 5+ actionable, non-obvious bullets
# Publish a new skill npx molthub@latest publish ./skills/my-skill \ --slug my-skill \ --name "My Skill" \ --version 1.0.0 \ --changelog "Initial release" # Update an existing skill npx molthub@latest publish ./skills/my-skill \ --slug my-skill \ --name "My Skill" \ --version 1.1.0 \ --changelog "Added new section on X" # Verify it's published npx molthub@latest search "my-skill"
The description field is your skill's search ranking. Spend more time on it than any single content section. Include the specific verbs and nouns users would search for. Lead with the most common use case. If 80% of users need "how to encode Base64", put that before "how to convert between MessagePack and CBOR." Every code example should be copy-pasteable. If it needs setup that isn't shown, add the setup. Write for the agent, not the human. The agent needs unambiguous instructions it can follow step by step. Avoid "you might want to consider" โ say "do X when Y." Test your skill by asking an agent to use it on a real task. If the agent can't follow the instructions to produce a correct result, the skill needs work. Prefer bash code blocks for commands, even in language-specific skills. The agent often operates via shell, and bash blocks signal "run this." Don't duplicate what --help already provides. Focus on patterns, combinations, and the non-obvious things that --help doesn't teach. Version your skills semantically: patch for typo fixes, minor for new sections, major for restructures. The registry tracks version history.
Writing, remixing, publishing, visual generation, and marketing content production.
Largest current source with strong distribution and engagement signals.