{
  "schemaVersion": "1.0",
  "item": {
    "slug": "skillcraft",
    "name": "Skillcraft",
    "source": "tencent",
    "type": "skill",
    "category": "通讯协作",
    "sourceUrl": "https://clawhub.ai/jmz1/skillcraft",
    "canonicalUrl": "https://clawhub.ai/jmz1/skillcraft",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/skillcraft",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=skillcraft",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "patterns/api-wrapper.md",
      "patterns/cli-wrapper.md",
      "patterns/composable-examples.md",
      "patterns/monitor.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-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.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/skillcraft"
    },
    "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/skillcraft",
    "agentPageUrl": "https://openagent3.xyz/skills/skillcraft/agent",
    "manifestUrl": "https://openagent3.xyz/skills/skillcraft/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/skillcraft/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": "Skillcraft — OpenClaw Skill Designer",
        "body": "An opinionated guide for creating OpenClaw skills. Focuses on OpenClaw-specific integration — message routing, cron scheduling, memory persistence, channel formatting, frontmatter gating — not generic programming advice.\n\nDocs: https://docs.openclaw.ai/tools/skills · https://docs.openclaw.ai/tools/creating-skills"
      },
      {
        "title": "Model Notes",
        "body": "This skill is written for frontier-class models (Opus, Sonnet). If you're running a cheaper model and find a stage underspecified, expand it yourself — the design sequence is a scaffold, not a script. Cheaper models should:\n\nRead the pattern files in {baseDir}/patterns/ more carefully before architecting\nSpend more time on Stage 2 (capability discovery) — enumerate OpenClaw features explicitly\nBe more methodical in Stage 4 (spec) — write out the full structure before implementing\nConsult https://docs.openclaw.ai when unsure about any OpenClaw feature"
      },
      {
        "title": "Stage 0: Inventory (Extraction Only)",
        "body": "Skip if building from scratch. Use when packaging existing functionality (scripts, TOOLS.md sections, conversation patterns, repeated instructions) into a skill.\n\nGather what exists, where it lives, what works, what's fragile. Then proceed to Stage 1."
      },
      {
        "title": "Stage 1: Problem Understanding",
        "body": "Work through with the user:\n\nWhat does this skill do? (one sentence)\nWhen should it load? Example phrases, mid-task triggers, scheduled triggers\nWhat does success look like? Concrete outcomes per example"
      },
      {
        "title": "Stage 2: Capability Discovery",
        "body": "Generalisability\n\nAsk early: Is this for your setup, or should it work on any OpenClaw instance?\n\nChoiceImplicationsUniversalGeneric paths, no local assumptions, ClawHub-readyParticularCan reference local skills, tools, workspace config\n\nSkill Synergy (Particular Only)\n\nScan <available_skills> from the system prompt for complementary capabilities. Read promising skills to understand composition opportunities.\n\nOpenClaw Features\n\nReview the docs with the skill's needs in mind. Think compositionally — OpenClaw's primitives combine in powerful ways. Key docs to check:\n\nNeedDocMessages/concepts/messagesCron/scheduling/automation/cron-jobsSubagents/tools/subagentsBrowser/tools/browserCanvas UI/tools/ (canvas)Node devices/nodes/Slash commands/tools/slash-commands\n\nSee {baseDir}/patterns/composable-examples.md for inspiration on combining these."
      },
      {
        "title": "Stage 3: Architecture",
        "body": "Based on Stages 1–2, identify which patterns apply:\n\nIf the skill...PatternWraps a CLI tool{baseDir}/patterns/cli-wrapper.mdWraps a web API{baseDir}/patterns/api-wrapper.mdMonitors and notifies{baseDir}/patterns/monitor.md\n\nLoad all that apply and synthesise. Most skills combine patterns.\n\nScript vs. instructions split: Scripts handle deterministic mechanics (API calls, data gathering, file processing). SKILL.md instructions handle judgment (interpreting results, choosing approaches, composing output). The boundary is: could a less intelligent system do this reliably? If yes → script."
      },
      {
        "title": "Stage 4: Design Specification",
        "body": "Present proposed architecture for user review:\n\nSkill structure — files and directories\nSKILL.md outline — sections and key content\nComponents — scripts, modules, wrappers\nState — stateless, session-stateful, or persistent (and where it lives)\nOpenClaw integration — which features, how they interact\nSecrets — env vars, keychain, config file (document in setup section, never hardcode)\n\nState locations:\n\n<workspace>/memory/ — user-facing context\n{baseDir}/state.json — skill-internal state (travels with skill)\n<workspace>/state/<skill>.json — skill state in common workspace area\n\nIf extracting: include migration notes (what moves, what workspace files need updating).\n\nValidate: Does it handle all Stage 1 examples? Any contradictions? Edge cases?\n\nIterate until the user is satisfied. This is where design problems surface cheaply."
      },
      {
        "title": "Stage 5: Implementation",
        "body": "Default: same-session. Work through the spec with user review at each step. Reserve subagent handoff for complex script subcomponents only — SKILL.md and integration logic stay in the main session.\n\nCreate skill directory + SKILL.md skeleton (frontmatter + sections)\nScripts (if any) — get them working and tested\nSKILL.md body — complete instructions\nTest against Stage 1 examples\n\nIf extracting: update workspace files, clean up old locations, verify standalone operation."
      },
      {
        "title": "Crafting the Frontmatter",
        "body": "The frontmatter determines discoverability and gating. Format follows the AgentSkills spec with OpenClaw extensions.\n\n---\nname: my-skill\ndescription: [description optimised for discovery — see below]\nhomepage: https://github.com/user/repo  # optional\nmetadata: {\"openclaw\":{\"emoji\":\"🔧\",\"requires\":{\"bins\":[\"tool\"],\"env\":[\"API_KEY\"]},\"primaryEnv\":\"API_KEY\",\"install\":[...]}}\n---\n\nCritical: metadata must be a single-line JSON object (parser limitation)."
      },
      {
        "title": "Description — Write for Discovery",
        "body": "The description determines whether the skill gets loaded. Include:\n\nCore capability — what it does\nTrigger keywords — terms users would say\nContexts — situations where it applies\n\nTest: would the agent select this skill for each of your Stage 1 example phrases?"
      },
      {
        "title": "Frontmatter Keys",
        "body": "KeyPurposenameSkill identifier (required)descriptionDiscovery text (required)homepageURL for docs/repouser-invocabletrue/false — expose as slash command (default: true)disable-model-invocationtrue/false — exclude from model prompt (default: false)command-dispatchtool — bypass model, dispatch directly to a toolcommand-toolTool name for direct dispatchcommand-arg-moderaw — forward raw args to tool"
      },
      {
        "title": "Metadata Gating",
        "body": "OpenClaw filters skills at load time using metadata.openclaw:\n\nFieldEffectalways: trueSkip all gates, always loademojiDisplay in macOS Skills UIosPlatform filter (darwin, linux, win32)requires.binsAll must exist on PATHrequires.anyBinsAt least one must existrequires.envEnv var must exist or be in configrequires.configConfig paths must be truthyprimaryEnvMaps to skills.entries.<name>.apiKeyinstallInstaller specs for auto-setup (brew/node/go/uv/download)\n\nSandbox note: requires.bins checks the host at load time. If sandboxed, the binary must also exist inside the container."
      },
      {
        "title": "Token Budget",
        "body": "Each eligible skill adds ~97 chars + name + description + location path to the system prompt. Keep descriptions informative but not bloated — every character costs tokens on every turn."
      },
      {
        "title": "Install Specs",
        "body": "\"install\": [\n  {\"id\": \"brew\", \"kind\": \"brew\", \"formula\": \"tap/tool\", \"bins\": [\"tool\"], \"label\": \"Install via brew\"},\n  {\"id\": \"npm\", \"kind\": \"node\", \"package\": \"tool\", \"bins\": [\"tool\"]},\n  {\"id\": \"uv\", \"kind\": \"uv\", \"package\": \"tool\", \"bins\": [\"tool\"]},\n  {\"id\": \"go\", \"kind\": \"go\", \"package\": \"github.com/user/tool@latest\", \"bins\": [\"tool\"]},\n  {\"id\": \"dl\", \"kind\": \"download\", \"url\": \"https://...\", \"archive\": \"tar.gz\"}\n]"
      },
      {
        "title": "Path Conventions",
        "body": "TokenMeaning{baseDir}This skill's directory (OpenClaw resolves at runtime)<workspace>/Agent's workspace root\n\nUse {baseDir} for skill-internal references (scripts, state, patterns)\nUse <workspace>/ for workspace files (TOOLS.md, memory/, etc.)\nNever hardcode absolute paths — workspaces are portable\nFor subagent scenarios, include path context in the task description (sandbox mounts differ)"
      },
      {
        "title": "References",
        "body": "Pattern files: {baseDir}/patterns/ (cli-wrapper, api-wrapper, monitor, composable-examples)\nOpenClaw docs: https://docs.openclaw.ai/tools/skills\nClawHub: https://clawhub.com"
      }
    ],
    "body": "Skillcraft — OpenClaw Skill Designer\n\nAn opinionated guide for creating OpenClaw skills. Focuses on OpenClaw-specific integration — message routing, cron scheduling, memory persistence, channel formatting, frontmatter gating — not generic programming advice.\n\nDocs: https://docs.openclaw.ai/tools/skills · https://docs.openclaw.ai/tools/creating-skills\n\nModel Notes\n\nThis skill is written for frontier-class models (Opus, Sonnet). If you're running a cheaper model and find a stage underspecified, expand it yourself — the design sequence is a scaffold, not a script. Cheaper models should:\n\nRead the pattern files in {baseDir}/patterns/ more carefully before architecting\nSpend more time on Stage 2 (capability discovery) — enumerate OpenClaw features explicitly\nBe more methodical in Stage 4 (spec) — write out the full structure before implementing\nConsult https://docs.openclaw.ai when unsure about any OpenClaw feature\nThe Design Sequence\nStage 0: Inventory (Extraction Only)\n\nSkip if building from scratch. Use when packaging existing functionality (scripts, TOOLS.md sections, conversation patterns, repeated instructions) into a skill.\n\nGather what exists, where it lives, what works, what's fragile. Then proceed to Stage 1.\n\nStage 1: Problem Understanding\n\nWork through with the user:\n\nWhat does this skill do? (one sentence)\nWhen should it load? Example phrases, mid-task triggers, scheduled triggers\nWhat does success look like? Concrete outcomes per example\nStage 2: Capability Discovery\nGeneralisability\n\nAsk early: Is this for your setup, or should it work on any OpenClaw instance?\n\nChoice\tImplications\nUniversal\tGeneric paths, no local assumptions, ClawHub-ready\nParticular\tCan reference local skills, tools, workspace config\nSkill Synergy (Particular Only)\n\nScan <available_skills> from the system prompt for complementary capabilities. Read promising skills to understand composition opportunities.\n\nOpenClaw Features\n\nReview the docs with the skill's needs in mind. Think compositionally — OpenClaw's primitives combine in powerful ways. Key docs to check:\n\nNeed\tDoc\nMessages\t/concepts/messages\nCron/scheduling\t/automation/cron-jobs\nSubagents\t/tools/subagents\nBrowser\t/tools/browser\nCanvas UI\t/tools/ (canvas)\nNode devices\t/nodes/\nSlash commands\t/tools/slash-commands\n\nSee {baseDir}/patterns/composable-examples.md for inspiration on combining these.\n\nStage 3: Architecture\n\nBased on Stages 1–2, identify which patterns apply:\n\nIf the skill...\tPattern\nWraps a CLI tool\t{baseDir}/patterns/cli-wrapper.md\nWraps a web API\t{baseDir}/patterns/api-wrapper.md\nMonitors and notifies\t{baseDir}/patterns/monitor.md\n\nLoad all that apply and synthesise. Most skills combine patterns.\n\nScript vs. instructions split: Scripts handle deterministic mechanics (API calls, data gathering, file processing). SKILL.md instructions handle judgment (interpreting results, choosing approaches, composing output). The boundary is: could a less intelligent system do this reliably? If yes → script.\n\nStage 4: Design Specification\n\nPresent proposed architecture for user review:\n\nSkill structure — files and directories\nSKILL.md outline — sections and key content\nComponents — scripts, modules, wrappers\nState — stateless, session-stateful, or persistent (and where it lives)\nOpenClaw integration — which features, how they interact\nSecrets — env vars, keychain, config file (document in setup section, never hardcode)\n\nState locations:\n\n<workspace>/memory/ — user-facing context\n{baseDir}/state.json — skill-internal state (travels with skill)\n<workspace>/state/<skill>.json — skill state in common workspace area\n\nIf extracting: include migration notes (what moves, what workspace files need updating).\n\nValidate: Does it handle all Stage 1 examples? Any contradictions? Edge cases?\n\nIterate until the user is satisfied. This is where design problems surface cheaply.\n\nStage 5: Implementation\n\nDefault: same-session. Work through the spec with user review at each step. Reserve subagent handoff for complex script subcomponents only — SKILL.md and integration logic stay in the main session.\n\nCreate skill directory + SKILL.md skeleton (frontmatter + sections)\nScripts (if any) — get them working and tested\nSKILL.md body — complete instructions\nTest against Stage 1 examples\n\nIf extracting: update workspace files, clean up old locations, verify standalone operation.\n\nCrafting the Frontmatter\n\nThe frontmatter determines discoverability and gating. Format follows the AgentSkills spec with OpenClaw extensions.\n\n---\nname: my-skill\ndescription: [description optimised for discovery — see below]\nhomepage: https://github.com/user/repo  # optional\nmetadata: {\"openclaw\":{\"emoji\":\"🔧\",\"requires\":{\"bins\":[\"tool\"],\"env\":[\"API_KEY\"]},\"primaryEnv\":\"API_KEY\",\"install\":[...]}}\n---\n\n\nCritical: metadata must be a single-line JSON object (parser limitation).\n\nDescription — Write for Discovery\n\nThe description determines whether the skill gets loaded. Include:\n\nCore capability — what it does\nTrigger keywords — terms users would say\nContexts — situations where it applies\n\nTest: would the agent select this skill for each of your Stage 1 example phrases?\n\nFrontmatter Keys\nKey\tPurpose\nname\tSkill identifier (required)\ndescription\tDiscovery text (required)\nhomepage\tURL for docs/repo\nuser-invocable\ttrue/false — expose as slash command (default: true)\ndisable-model-invocation\ttrue/false — exclude from model prompt (default: false)\ncommand-dispatch\ttool — bypass model, dispatch directly to a tool\ncommand-tool\tTool name for direct dispatch\ncommand-arg-mode\traw — forward raw args to tool\nMetadata Gating\n\nOpenClaw filters skills at load time using metadata.openclaw:\n\nField\tEffect\nalways: true\tSkip all gates, always load\nemoji\tDisplay in macOS Skills UI\nos\tPlatform filter (darwin, linux, win32)\nrequires.bins\tAll must exist on PATH\nrequires.anyBins\tAt least one must exist\nrequires.env\tEnv var must exist or be in config\nrequires.config\tConfig paths must be truthy\nprimaryEnv\tMaps to skills.entries.<name>.apiKey\ninstall\tInstaller specs for auto-setup (brew/node/go/uv/download)\n\nSandbox note: requires.bins checks the host at load time. If sandboxed, the binary must also exist inside the container.\n\nToken Budget\n\nEach eligible skill adds ~97 chars + name + description + location path to the system prompt. Keep descriptions informative but not bloated — every character costs tokens on every turn.\n\nInstall Specs\n\"install\": [\n  {\"id\": \"brew\", \"kind\": \"brew\", \"formula\": \"tap/tool\", \"bins\": [\"tool\"], \"label\": \"Install via brew\"},\n  {\"id\": \"npm\", \"kind\": \"node\", \"package\": \"tool\", \"bins\": [\"tool\"]},\n  {\"id\": \"uv\", \"kind\": \"uv\", \"package\": \"tool\", \"bins\": [\"tool\"]},\n  {\"id\": \"go\", \"kind\": \"go\", \"package\": \"github.com/user/tool@latest\", \"bins\": [\"tool\"]},\n  {\"id\": \"dl\", \"kind\": \"download\", \"url\": \"https://...\", \"archive\": \"tar.gz\"}\n]\n\nPath Conventions\nToken\tMeaning\n{baseDir}\tThis skill's directory (OpenClaw resolves at runtime)\n<workspace>/\tAgent's workspace root\nUse {baseDir} for skill-internal references (scripts, state, patterns)\nUse <workspace>/ for workspace files (TOOLS.md, memory/, etc.)\nNever hardcode absolute paths — workspaces are portable\nFor subagent scenarios, include path context in the task description (sandbox mounts differ)\nReferences\nPattern files: {baseDir}/patterns/ (cli-wrapper, api-wrapper, monitor, composable-examples)\nOpenClaw docs: https://docs.openclaw.ai/tools/skills\nClawHub: https://clawhub.com"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/jmz1/skillcraft",
    "publisherUrl": "https://clawhub.ai/jmz1/skillcraft",
    "owner": "jmz1",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/skillcraft",
    "downloadUrl": "https://openagent3.xyz/downloads/skillcraft",
    "agentUrl": "https://openagent3.xyz/skills/skillcraft/agent",
    "manifestUrl": "https://openagent3.xyz/skills/skillcraft/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/skillcraft/agent.md"
  }
}