{
  "schemaVersion": "1.0",
  "item": {
    "slug": "skill-writer",
    "name": "Skill Writer",
    "source": "tencent",
    "type": "skill",
    "category": "内容创作",
    "sourceUrl": "https://clawhub.ai/gitgoodordietrying/skill-writer",
    "canonicalUrl": "https://clawhub.ai/gitgoodordietrying/skill-writer",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/skill-writer",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=skill-writer",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "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."
        },
        {
          "label": "Upgrade existing",
          "body": "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."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/skill-writer"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/skill-writer",
    "agentPageUrl": "https://openagent3.xyz/skills/skill-writer/agent",
    "manifestUrl": "https://openagent3.xyz/skills/skill-writer/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/skill-writer/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "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."
      },
      {
        "label": "Upgrade existing",
        "body": "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."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Skill Writer",
        "body": "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."
      },
      {
        "title": "When to Use",
        "body": "Creating a new skill from scratch\nStructuring technical content as an agent skill\nWriting frontmatter that the registry indexes correctly\nChoosing section organization for different skill types\nReviewing your own skill before publishing"
      },
      {
        "title": "The SKILL.md Format",
        "body": "A skill is a single Markdown file with YAML frontmatter. The agent loads it on demand and follows its instructions.\n\n---\nname: my-skill-slug\ndescription: One-sentence description of when to use this skill.\nmetadata: {\"clawdbot\":{\"emoji\":\"🔧\",\"requires\":{\"anyBins\":[\"tool1\",\"tool2\"]},\"os\":[\"linux\",\"darwin\",\"win32\"]}}\n---\n\n# Skill Title\n\nOne-paragraph summary of what this skill covers.\n\n## When to Use\n\n- Bullet list of trigger scenarios\n\n## Main Content Sections\n\n### Subsection with examples\n\nCode blocks, commands, patterns...\n\n## Tips\n\n- Practical advice bullets"
      },
      {
        "title": "name (required)",
        "body": "The skill's slug identifier. Must match what you publish with.\n\nname: my-skill\n\nRules:\n\nLowercase, hyphenated: csv-pipeline, git-workflows\nNo spaces, no underscores\nKeep it short and descriptive (1-3 words)\nCheck for slug collisions before publishing: npx molthub@latest search \"your-slug\""
      },
      {
        "title": "description (required)",
        "body": "The single most important field. This is what:\n\nThe registry indexes for semantic search (vector embeddings)\nThe agent reads to decide whether to activate the skill\nUsers see when browsing search results\n\n# GOOD: Specific triggers and scope\ndescription: 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.\n\n# BAD: Vague, no triggers\ndescription: A skill about Makefiles.\n\n# BAD: Too long (gets truncated in search results)\ndescription: 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...\n\nPattern for effective descriptions:\n\n[What it does]. Use when [trigger 1], [trigger 2], [trigger 3]. Also covers [related topic]."
      },
      {
        "title": "metadata (required)",
        "body": "JSON object with the clawdbot schema:\n\nmetadata: {\"clawdbot\":{\"emoji\":\"🔧\",\"requires\":{\"anyBins\":[\"make\",\"just\"]},\"os\":[\"linux\",\"darwin\",\"win32\"]}}\n\nFields:\n\nemoji: Single emoji displayed in registry listings\nrequires.anyBins: Array of CLI tools the skill needs (at least one must be available)\nos: Array of supported platforms: \"linux\", \"darwin\" (macOS), \"win32\" (Windows)\n\nChoose requires.anyBins carefully:\n\n# Good: lists the actual tools the skill's commands use\n\"requires\": {\"anyBins\": [\"docker\", \"docker-compose\"]}\n\n# Bad: lists generic tools every system has\n\"requires\": {\"anyBins\": [\"bash\", \"echo\"]}\n\n# Good for skills that work via multiple tools\n\"requires\": {\"anyBins\": [\"make\", \"just\", \"task\"]}"
      },
      {
        "title": "The \"When to Use\" Section",
        "body": "Always include this immediately after the title paragraph. It tells the agent (and the user) the specific scenarios where this skill applies.\n\n## When to Use\n\n- Automating build, test, lint, deploy commands\n- Defining dependencies between tasks (build before test)\n- Creating a project-level task runner\n- Replacing long CLI commands with short targets\n\nRules:\n\n4-8 bullet points\nEach bullet is a concrete scenario, not an abstract concept\nStart with a verb or gerund: \"Automating...\", \"Debugging...\", \"Converting...\"\nDon't repeat the description field verbatim"
      },
      {
        "title": "Main Content Sections",
        "body": "Organize by task, not by concept. The agent needs to find the right command for a specific situation.\n\n## GOOD: Organized by task\n## Encode and Decode\n### Base64\n### URL Encoding\n### Hex\n\n## BAD: Organized by abstraction\n## Theory of Encoding\n## Encoding Types\n## Advanced Topics"
      },
      {
        "title": "Code Blocks",
        "body": "Every section should have at least one code block. Skills without code blocks are opinions, not tools.\n\n## GOOD: Concrete, runnable example\n```bash\n# Encode a string to Base64\necho -n \"Hello, World!\" | base64\n# SGVsbG8sIFdvcmxkIQ==\n```\n\n## BAD: Abstract description\nBase64 encoding converts binary data to ASCII text using a 64-character alphabet...\n\nCode block best practices:\n\nAlways specify the language (bash, python, javascript, yaml, sql, etc.)\nShow the output in a comment below the command\nUse realistic values, not foo/bar (use myapp, api-server, real IP formats)\nInclude the most common case first, then variations\nAdd inline comments for non-obvious flags or arguments"
      },
      {
        "title": "Multi-Language Coverage",
        "body": "If a skill applies across languages, use consistent section structure:\n\n## Hashing\n\n### Bash\n```bash\necho -n \"Hello\" | sha256sum"
      },
      {
        "title": "JavaScript",
        "body": "const crypto = require('crypto');\ncrypto.createHash('sha256').update('Hello').digest('hex');"
      },
      {
        "title": "Python",
        "body": "import hashlib\nhashlib.sha256(b\"Hello\").hexdigest()\n\nOrder: Bash first (most universal), then by popularity for the topic.\n\n### The \"Tips\" Section\n\nEnd every skill with a Tips section. These are the distilled wisdom — the things that save hours of debugging.\n\n```markdown\n## Tips\n\n- The number one Makefile bug: using spaces instead of tabs for indentation.\n- SHA-256 is the standard for integrity checks. MD5 is fine for dedup but broken for cryptographic use.\n- Never schedule critical cron jobs between 1:00-3:00 AM if DST applies.\n\nRules:\n\n5-10 bullets\nEach tip is a standalone insight (no dependencies on other tips)\nPrioritize gotchas and non-obvious behavior over basic advice\nNo \"always use best practices\" platitudes"
      },
      {
        "title": "CLI Tool Reference",
        "body": "For skills about a specific tool or command family.\n\n---\nname: tool-name\ndescription: [What tool does]. Use when [scenario 1], [scenario 2].\nmetadata: {\"clawdbot\":{\"emoji\":\"🔧\",\"requires\":{\"anyBins\":[\"tool-name\"]}}}\n---\n\n# Tool Name\n\n[One paragraph: what it does and why you'd use it.]\n\n## When to Use\n- [4-6 scenarios]\n\n## Quick Reference\n[Most common commands with examples]\n\n## Common Operations\n### [Operation 1]\n### [Operation 2]\n\n## Advanced Patterns\n### [Pattern 1]\n\n## Troubleshooting\n### [Common error and fix]\n\n## Tips"
      },
      {
        "title": "Language/Framework Reference",
        "body": "For skills about patterns in a specific language or framework.\n\n---\nname: pattern-name\ndescription: [Pattern] in [language/framework]. Use when [scenario 1], [scenario 2].\nmetadata: {\"clawdbot\":{\"emoji\":\"📐\",\"requires\":{\"anyBins\":[\"runtime\"]}}}\n---\n\n# Pattern Name\n\n## When to Use\n\n## Quick Reference\n[Cheat sheet / syntax summary]\n\n## Patterns\n### [Pattern 1 — with full example]\n### [Pattern 2 — with full example]\n\n## Cross-Language Comparison (if applicable)\n\n## Anti-Patterns\n[What NOT to do, with explanation]\n\n## Tips"
      },
      {
        "title": "Workflow/Process Guide",
        "body": "For skills about multi-step processes.\n\n---\nname: workflow-name\ndescription: [Workflow description]. Use when [scenario 1], [scenario 2].\nmetadata: {\"clawdbot\":{\"emoji\":\"🔄\",\"requires\":{\"anyBins\":[\"tool1\",\"tool2\"]}}}\n---\n\n# Workflow Name\n\n## When to Use\n\n## Prerequisites\n[What needs to be set up first]\n\n## Step-by-Step\n### Step 1: [Action]\n### Step 2: [Action]\n### Step 3: [Action]\n\n## Variations\n### [Variation for different context]\n\n## Troubleshooting\n\n## Tips"
      },
      {
        "title": "Too abstract",
        "body": "# BAD\n## Error Handling\nError handling is important for robust applications. You should always\nhandle errors properly to prevent unexpected crashes...\n\n# GOOD\n## Error Handling\n```bash\n# Bash: exit on any error\nset -euo pipefail\n\n# Trap for cleanup on exit\ntrap 'rm -f \"$TMPFILE\"' EXIT\n\n### Too narrow\n\n```markdown\n# BAD: Only useful for one specific case\n---\nname: react-useeffect-cleanup\ndescription: How to clean up useEffect hooks in React\n---\n\n# GOOD: Broad enough to be a real reference\n---\nname: react-hooks\ndescription: React hooks patterns. Use when working with useState, useEffect, useCallback, useMemo, custom hooks, or debugging hook-related issues.\n---"
      },
      {
        "title": "Wall of text without examples",
        "body": "If any section goes more than 10 lines without a code block, it's too text-heavy. Break it up with examples."
      },
      {
        "title": "Missing cross-references",
        "body": "If your skill mentions another tool or concept that has its own skill, note it:\n\n# For Docker networking issues, see the `container-debug` skill.\n# For regex syntax details, see the `regex-patterns` skill."
      },
      {
        "title": "Outdated commands",
        "body": "Verify every command works on current tool versions. Common traps:\n\nDocker Compose: docker-compose (v1) vs. docker compose (v2)\nPython: pip vs. pip3, python vs. python3\nNode.js: CommonJS (require) vs. ESM (import)"
      },
      {
        "title": "Size Guidelines",
        "body": "MetricTargetToo ShortToo LongTotal lines300-550< 150> 700Sections5-10< 3> 15Code blocks15-40< 8> 60Tips5-10< 3> 15\n\nA skill under 150 lines probably lacks examples. A skill over 700 lines should be split into two skills."
      },
      {
        "title": "Publishing Checklist",
        "body": "Before publishing, verify:\n\nFrontmatter is valid YAML — test by pasting into a YAML validator\nDescription starts with what the skill does — not \"This skill...\" or \"A skill for...\"\nEvery section has at least one code block — no text-only sections in the main content\nCommands actually work — test in a clean environment\nNo placeholder values left — search for TODO, FIXME, example.com used as real URLs\nSlug is available — npx molthub@latest search \"your-slug\" returns no exact match\nrequires.anyBins lists real dependencies — tools the skill's commands actually invoke\nTips section exists — with 5+ actionable, non-obvious bullets"
      },
      {
        "title": "Publishing",
        "body": "# Publish a new skill\nnpx molthub@latest publish ./skills/my-skill \\\n  --slug my-skill \\\n  --name \"My Skill\" \\\n  --version 1.0.0 \\\n  --changelog \"Initial release\"\n\n# Update an existing skill\nnpx molthub@latest publish ./skills/my-skill \\\n  --slug my-skill \\\n  --name \"My Skill\" \\\n  --version 1.1.0 \\\n  --changelog \"Added new section on X\"\n\n# Verify it's published\nnpx molthub@latest search \"my-skill\""
      },
      {
        "title": "Tips",
        "body": "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.\nLead 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.\"\nEvery code example should be copy-pasteable. If it needs setup that isn't shown, add the setup.\nWrite 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.\"\nTest 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.\nPrefer bash code blocks for commands, even in language-specific skills. The agent often operates via shell, and bash blocks signal \"run this.\"\nDon't duplicate what --help already provides. Focus on patterns, combinations, and the non-obvious things that --help doesn't teach.\nVersion your skills semantically: patch for typo fixes, minor for new sections, major for restructures. The registry tracks version history."
      }
    ],
    "body": "Skill Writer\n\nWrite 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.\n\nWhen to Use\nCreating a new skill from scratch\nStructuring technical content as an agent skill\nWriting frontmatter that the registry indexes correctly\nChoosing section organization for different skill types\nReviewing your own skill before publishing\nThe SKILL.md Format\n\nA skill is a single Markdown file with YAML frontmatter. The agent loads it on demand and follows its instructions.\n\n---\nname: my-skill-slug\ndescription: One-sentence description of when to use this skill.\nmetadata: {\"clawdbot\":{\"emoji\":\"🔧\",\"requires\":{\"anyBins\":[\"tool1\",\"tool2\"]},\"os\":[\"linux\",\"darwin\",\"win32\"]}}\n---\n\n# Skill Title\n\nOne-paragraph summary of what this skill covers.\n\n## When to Use\n\n- Bullet list of trigger scenarios\n\n## Main Content Sections\n\n### Subsection with examples\n\nCode blocks, commands, patterns...\n\n## Tips\n\n- Practical advice bullets\n\nFrontmatter Schema\nname (required)\n\nThe skill's slug identifier. Must match what you publish with.\n\nname: my-skill\n\n\nRules:\n\nLowercase, hyphenated: csv-pipeline, git-workflows\nNo spaces, no underscores\nKeep it short and descriptive (1-3 words)\nCheck for slug collisions before publishing: npx molthub@latest search \"your-slug\"\ndescription (required)\n\nThe single most important field. This is what:\n\nThe registry indexes for semantic search (vector embeddings)\nThe agent reads to decide whether to activate the skill\nUsers see when browsing search results\n# GOOD: Specific triggers and scope\ndescription: 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.\n\n# BAD: Vague, no triggers\ndescription: A skill about Makefiles.\n\n# BAD: Too long (gets truncated in search results)\ndescription: 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...\n\n\nPattern for effective descriptions:\n\n[What it does]. Use when [trigger 1], [trigger 2], [trigger 3]. Also covers [related topic].\n\nmetadata (required)\n\nJSON object with the clawdbot schema:\n\nmetadata: {\"clawdbot\":{\"emoji\":\"🔧\",\"requires\":{\"anyBins\":[\"make\",\"just\"]},\"os\":[\"linux\",\"darwin\",\"win32\"]}}\n\n\nFields:\n\nemoji: Single emoji displayed in registry listings\nrequires.anyBins: Array of CLI tools the skill needs (at least one must be available)\nos: Array of supported platforms: \"linux\", \"darwin\" (macOS), \"win32\" (Windows)\n\nChoose requires.anyBins carefully:\n\n# Good: lists the actual tools the skill's commands use\n\"requires\": {\"anyBins\": [\"docker\", \"docker-compose\"]}\n\n# Bad: lists generic tools every system has\n\"requires\": {\"anyBins\": [\"bash\", \"echo\"]}\n\n# Good for skills that work via multiple tools\n\"requires\": {\"anyBins\": [\"make\", \"just\", \"task\"]}\n\nContent Structure\nThe \"When to Use\" Section\n\nAlways include this immediately after the title paragraph. It tells the agent (and the user) the specific scenarios where this skill applies.\n\n## When to Use\n\n- Automating build, test, lint, deploy commands\n- Defining dependencies between tasks (build before test)\n- Creating a project-level task runner\n- Replacing long CLI commands with short targets\n\n\nRules:\n\n4-8 bullet points\nEach bullet is a concrete scenario, not an abstract concept\nStart with a verb or gerund: \"Automating...\", \"Debugging...\", \"Converting...\"\nDon't repeat the description field verbatim\nMain Content Sections\n\nOrganize by task, not by concept. The agent needs to find the right command for a specific situation.\n\n## GOOD: Organized by task\n## Encode and Decode\n### Base64\n### URL Encoding\n### Hex\n\n## BAD: Organized by abstraction\n## Theory of Encoding\n## Encoding Types\n## Advanced Topics\n\nCode Blocks\n\nEvery section should have at least one code block. Skills without code blocks are opinions, not tools.\n\n## GOOD: Concrete, runnable example\n```bash\n# Encode a string to Base64\necho -n \"Hello, World!\" | base64\n# SGVsbG8sIFdvcmxkIQ==\n```\n\n## BAD: Abstract description\nBase64 encoding converts binary data to ASCII text using a 64-character alphabet...\n\n\nCode block best practices:\n\nAlways specify the language (bash, python, javascript, yaml, sql, etc.)\nShow the output in a comment below the command\nUse realistic values, not foo/bar (use myapp, api-server, real IP formats)\nInclude the most common case first, then variations\nAdd inline comments for non-obvious flags or arguments\nMulti-Language Coverage\n\nIf a skill applies across languages, use consistent section structure:\n\n## Hashing\n\n### Bash\n```bash\necho -n \"Hello\" | sha256sum\n\nJavaScript\nconst crypto = require('crypto');\ncrypto.createHash('sha256').update('Hello').digest('hex');\n\nPython\nimport hashlib\nhashlib.sha256(b\"Hello\").hexdigest()\n\n\nOrder: Bash first (most universal), then by popularity for the topic.\n\n### The \"Tips\" Section\n\nEnd every skill with a Tips section. These are the distilled wisdom — the things that save hours of debugging.\n\n```markdown\n## Tips\n\n- The number one Makefile bug: using spaces instead of tabs for indentation.\n- SHA-256 is the standard for integrity checks. MD5 is fine for dedup but broken for cryptographic use.\n- Never schedule critical cron jobs between 1:00-3:00 AM if DST applies.\n\n\nRules:\n\n5-10 bullets\nEach tip is a standalone insight (no dependencies on other tips)\nPrioritize gotchas and non-obvious behavior over basic advice\nNo \"always use best practices\" platitudes\nSkill Types and Templates\nCLI Tool Reference\n\nFor skills about a specific tool or command family.\n\n---\nname: tool-name\ndescription: [What tool does]. Use when [scenario 1], [scenario 2].\nmetadata: {\"clawdbot\":{\"emoji\":\"🔧\",\"requires\":{\"anyBins\":[\"tool-name\"]}}}\n---\n\n# Tool Name\n\n[One paragraph: what it does and why you'd use it.]\n\n## When to Use\n- [4-6 scenarios]\n\n## Quick Reference\n[Most common commands with examples]\n\n## Common Operations\n### [Operation 1]\n### [Operation 2]\n\n## Advanced Patterns\n### [Pattern 1]\n\n## Troubleshooting\n### [Common error and fix]\n\n## Tips\n\nLanguage/Framework Reference\n\nFor skills about patterns in a specific language or framework.\n\n---\nname: pattern-name\ndescription: [Pattern] in [language/framework]. Use when [scenario 1], [scenario 2].\nmetadata: {\"clawdbot\":{\"emoji\":\"📐\",\"requires\":{\"anyBins\":[\"runtime\"]}}}\n---\n\n# Pattern Name\n\n## When to Use\n\n## Quick Reference\n[Cheat sheet / syntax summary]\n\n## Patterns\n### [Pattern 1 — with full example]\n### [Pattern 2 — with full example]\n\n## Cross-Language Comparison (if applicable)\n\n## Anti-Patterns\n[What NOT to do, with explanation]\n\n## Tips\n\nWorkflow/Process Guide\n\nFor skills about multi-step processes.\n\n---\nname: workflow-name\ndescription: [Workflow description]. Use when [scenario 1], [scenario 2].\nmetadata: {\"clawdbot\":{\"emoji\":\"🔄\",\"requires\":{\"anyBins\":[\"tool1\",\"tool2\"]}}}\n---\n\n# Workflow Name\n\n## When to Use\n\n## Prerequisites\n[What needs to be set up first]\n\n## Step-by-Step\n### Step 1: [Action]\n### Step 2: [Action]\n### Step 3: [Action]\n\n## Variations\n### [Variation for different context]\n\n## Troubleshooting\n\n## Tips\n\nAnti-Patterns\nToo abstract\n# BAD\n## Error Handling\nError handling is important for robust applications. You should always\nhandle errors properly to prevent unexpected crashes...\n\n# GOOD\n## Error Handling\n```bash\n# Bash: exit on any error\nset -euo pipefail\n\n# Trap for cleanup on exit\ntrap 'rm -f \"$TMPFILE\"' EXIT\n\n\n### Too narrow\n\n```markdown\n# BAD: Only useful for one specific case\n---\nname: react-useeffect-cleanup\ndescription: How to clean up useEffect hooks in React\n---\n\n# GOOD: Broad enough to be a real reference\n---\nname: react-hooks\ndescription: React hooks patterns. Use when working with useState, useEffect, useCallback, useMemo, custom hooks, or debugging hook-related issues.\n---\n\nWall of text without examples\n\nIf any section goes more than 10 lines without a code block, it's too text-heavy. Break it up with examples.\n\nMissing cross-references\n\nIf your skill mentions another tool or concept that has its own skill, note it:\n\n# For Docker networking issues, see the `container-debug` skill.\n# For regex syntax details, see the `regex-patterns` skill.\n\nOutdated commands\n\nVerify every command works on current tool versions. Common traps:\n\nDocker Compose: docker-compose (v1) vs. docker compose (v2)\nPython: pip vs. pip3, python vs. python3\nNode.js: CommonJS (require) vs. ESM (import)\nSize Guidelines\nMetric\tTarget\tToo Short\tToo Long\nTotal lines\t300-550\t< 150\t> 700\nSections\t5-10\t< 3\t> 15\nCode blocks\t15-40\t< 8\t> 60\nTips\t5-10\t< 3\t> 15\n\nA skill under 150 lines probably lacks examples. A skill over 700 lines should be split into two skills.\n\nPublishing Checklist\n\nBefore publishing, verify:\n\nFrontmatter is valid YAML — test by pasting into a YAML validator\nDescription starts with what the skill does — not \"This skill...\" or \"A skill for...\"\nEvery section has at least one code block — no text-only sections in the main content\nCommands actually work — test in a clean environment\nNo placeholder values left — search for TODO, FIXME, example.com used as real URLs\nSlug is available — npx molthub@latest search \"your-slug\" returns no exact match\nrequires.anyBins lists real dependencies — tools the skill's commands actually invoke\nTips section exists — with 5+ actionable, non-obvious bullets\nPublishing\n# Publish a new skill\nnpx molthub@latest publish ./skills/my-skill \\\n  --slug my-skill \\\n  --name \"My Skill\" \\\n  --version 1.0.0 \\\n  --changelog \"Initial release\"\n\n# Update an existing skill\nnpx molthub@latest publish ./skills/my-skill \\\n  --slug my-skill \\\n  --name \"My Skill\" \\\n  --version 1.1.0 \\\n  --changelog \"Added new section on X\"\n\n# Verify it's published\nnpx molthub@latest search \"my-skill\"\n\nTips\nThe 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.\nLead 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.\"\nEvery code example should be copy-pasteable. If it needs setup that isn't shown, add the setup.\nWrite 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.\"\nTest 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.\nPrefer bash code blocks for commands, even in language-specific skills. The agent often operates via shell, and bash blocks signal \"run this.\"\nDon't duplicate what --help already provides. Focus on patterns, combinations, and the non-obvious things that --help doesn't teach.\nVersion your skills semantically: patch for typo fixes, minor for new sections, major for restructures. The registry tracks version history."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/gitgoodordietrying/skill-writer",
    "publisherUrl": "https://clawhub.ai/gitgoodordietrying/skill-writer",
    "owner": "gitgoodordietrying",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/skill-writer",
    "downloadUrl": "https://openagent3.xyz/downloads/skill-writer",
    "agentUrl": "https://openagent3.xyz/skills/skill-writer/agent",
    "manifestUrl": "https://openagent3.xyz/skills/skill-writer/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/skill-writer/agent.md"
  }
}