{
  "schemaVersion": "1.0",
  "item": {
    "slug": "marila-skill-publish",
    "name": "Marila Skill Publish",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/aliramw/marila-skill-publish",
    "canonicalUrl": "https://clawhub.ai/aliramw/marila-skill-publish",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/marila-skill-publish",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=marila-skill-publish",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "CHANGELOG.md",
      "README.md",
      "SKILL.md",
      "package.json",
      "references/clawhub-review-checklist.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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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/marila-skill-publish"
    },
    "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/marila-skill-publish",
    "agentPageUrl": "https://openagent3.xyz/skills/marila-skill-publish/agent",
    "manifestUrl": "https://openagent3.xyz/skills/marila-skill-publish/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/marila-skill-publish/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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "ClawHub 技能发布流程",
        "body": "本文档总结了从 0 到发布一个 ClawHub 技能的完整流程和经验。"
      },
      {
        "title": "📋 前置要求",
        "body": "Node.js >= 18\nclawhub CLI (npm install -g clawhub)\nGit\nGitHub CLI (gh)\nClawHub 账号（已登录）\nGitHub 账号（用于 push 和 GitHub Release）"
      },
      {
        "title": "🧰 环境检查与补装",
        "body": "先检查命令是否存在：\n\nwhich git\nwhich gh\nwhich clawhub\n\n如果缺命令：\n\n# macOS（推荐）\nbrew install git gh\nnpm install -g clawhub\n\n# Ubuntu / Debian\nsudo apt update\nsudo apt install -y git gh\nnpm install -g clawhub\n\n验证：\n\ngit --version\ngh --version\nclawhub --version"
      },
      {
        "title": "🔐 GitHub 鉴权与 Git 初始化",
        "body": "如果用户还没登录 GitHub，先做这个：\n\n# 登录 GitHub CLI\ngh auth login\n\n# 验证登录状态\ngh auth status\n\n如果用户本机 Git 还没初始化身份，先配置：\n\ngit config --global user.name \"你的名字\"\ngit config --global user.email \"you@example.com\"\n\n如果仓库还没绑远程：\n\ngit remote add origin https://github.com/<user>/<repo>.git\n# 或\n# git remote add origin git@github.com:<user>/<repo>.git\n\n发布前最少确认这 4 件事：\n\ngit status\ngit remote -v\ngh auth status\nclawhub whoami"
      },
      {
        "title": "✅ 发布顺序（必须按此顺序，不能错）",
        "body": "发布前，先检查 references/clawhub-review-checklist.md，确认元数据、README、脚本行为、凭证声明和示例参数已经一致。\n\n确定版本号 — 同步修改 SKILL.md 和 package.json 的 version 字段\n更新 CHANGELOG.md — 在顶部追加新版本记录\n先过一遍 checklist — 特别检查 requires.bins / requires.env / primaryEnv / 本地文件行为说明\npush + GitHub Release — git add -A && git commit && git push，然后 gh release create v0.x.x --title \"v0.x.x\" --notes \"...\"\n发布到 ClawHub — clawhub publish <路径> --slug <名> --version x.x.x --changelog \"...\"\n如需立即让当前 agent 使用最新技能定义，再手动同步到 agent 工作空间 — cp <技能目录>/SKILL.md ~/.openclaw/workspace/skills/技能名/SKILL.md\n\n硬规则： 以后凡是发布 OpenClaw 技能，每次 ClawHub 发布都必须同步创建对应的 GitHub Release。不允许只发技能不发 release。\n\n新增硬规则： 发布前必须过一遍 references/clawhub-review-checklist.md。尤其是带脚本、凭证、工作区文件读写的技能，不检查就发，极容易被 ClawHub 审核打回。\n\n敏感操作提示： 同步到 ~/.openclaw/workspace/skills 属于对 agent 工作区的写操作，只应在受信任环境中显式执行，不应在公共或不受信任场景下默认执行。"
      },
      {
        "title": "1. 准备技能文件夹",
        "body": "# 创建技能目录\nmkdir -p ~/my-skill\ncd ~/my-skill\n\n# 初始化 Git\ngit init"
      },
      {
        "title": "2. 创建必需文件",
        "body": "SKILL.md（必需）\n\n---\nname: my-skill\ndescription: 简短描述技能功能\nversion: 1.0.0\nmetadata:\n  openclaw:\n    requires:\n      env:\n        - MY_API_KEY\n      bins:\n        - curl\n    primaryEnv: MY_API_KEY\n    homepage: https://github.com/username/my-skill\n---\n\n# 技能说明文档\n\n## 功能描述\n...\n\n## 使用方法\n...\n\n⚠️ 关键：元数据必须准确声明\n\nClawHub 安全分析会检查声明与实际代码是否一致：\n\nrequires.env - 代码中引用的所有环境变量\nrequires.bins - 代码中调用的所有 CLI 工具\nprimaryEnv - 主要凭证变量名\n\npackage.json\n\n{\n  \"name\": \"my-skill\",\n  \"version\": \"1.0.0\",\n  \"description\": \"技能描述\",\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/username/my-skill.git\"\n  },\n  \"clawhub\": {\n    \"requiresBinaries\": [\"curl\"],\n    \"credentials\": [\n      {\n        \"name\": \"MY_API_KEY\",\n        \"description\": \"API 密钥说明\",\n        \"docs\": \"https://example.com/docs\"\n      }\n    ]\n  }\n}\n\nREADME.md\n\n# my-skill\n\n简短介绍。\n\n## 安装\n\n```bash\nclawhub install my-skill"
      },
      {
        "title": "配置",
        "body": "获取凭证...\n配置环境变量..."
      },
      {
        "title": "使用",
        "body": "...\n\n#### CHANGELOG.md\n\n```markdown\n# Changelog\n\n## [1.0.0] - 2026-02-27\n\n### 新增\n- 初始版本"
      },
      {
        "title": "3. 推送到 GitHub",
        "body": "git add -A\ngit commit -m \"Initial commit\"\ngit remote add origin https://github.com/username/my-skill.git\ngit push -u origin main"
      },
      {
        "title": "4. 发布到 ClawHub",
        "body": "# 方式一：直接发布\nclawhub publish . --slug my-skill --name \"My Skill\" --version 1.0.0 --changelog \"初始版本\"\n\n# 方式二：使用 sync（推荐）\nclawhub sync"
      },
      {
        "title": "5. 验证发布",
        "body": "# 检查技能信息\nclawhub inspect my-skill\n\n# 查看网页\nopen https://clawhub.ai/username/my-skill"
      },
      {
        "title": "问题 1: fetch failed 错误",
        "body": "症状：\n\n✖ fetch failed\nError: fetch failed\n\n原因： 网络问题、服务端暂时不可达或本机登录状态异常\n\n解决：\n\n# 检查网络连接\ncurl -I https://clawhub.ai\n\n# 重新登录\nclawhub login\nclawhub whoami"
      },
      {
        "title": "问题 2: SKILL.md required 错误",
        "body": "症状：\n\nError: SKILL.md required\n\n原因：\n\n文件不存在\n文件名大小写错误（必须是 SKILL.md 或 skill.md）\n当前目录错误\n\n解决：\n\nls -la SKILL.md\npwd\nclawhub publish /absolute/path/to/skill --slug my-skill ..."
      },
      {
        "title": "问题 3: 发布超时（Timeout）",
        "body": "症状：\n\n✖ Timeout\nError: Timeout\n\n原因： 服务器响应慢或网络问题\n\n解决：\n\n# 检查服务器状态\ncurl -I https://clawhub.ai\n\n# 重试发布\nclawhub publish . --slug my-skill ...\n\n# 或使用 sync\nclawhub sync"
      },
      {
        "title": "问题 4: 元数据不一致（审核失败）",
        "body": "症状： 审核反馈 \"metadata mismatch\"\n\n原因： SKILL.md frontmatter 声明与实际代码不符\n\n解决： 确保 frontmatter 准确声明：\n\n---\nname: my-skill\nversion: 1.0.0\nmetadata:\n  openclaw:\n    requires:\n      env:\n        - ACTUAL_ENV_VAR_USED_IN_CODE\n      bins:\n        - actual_binary_used_in_code\n    primaryEnv: ACTUAL_ENV_VAR_USED_IN_CODE\n    homepage: https://github.com/username/repo\n---"
      },
      {
        "title": "问题 5: ClawHub 登录失败",
        "body": "症状：\n\n- Verifying token\n✖ fetch failed\n\n解决：\n\n# 重新登录\nclawhub login\nclawhub whoami\n\n# 如仍失败，在受信任环境中人工检查本机 ClawHub 登录状态"
      },
      {
        "title": "问题 6: gh release create 或 git push 失败",
        "body": "常见原因：\n\n没安装 gh\nGitHub CLI 未登录\nGit 没配置 user.name / user.email\n仓库没配置 origin\n当前账号对仓库无 push 权限\n\n排查顺序：\n\nwhich gh\ngh auth status\ngit config --global --get user.name\ngit config --global --get user.email\ngit remote -v\n\n解决：\n\n# 安装 gh\nbrew install gh\n\n# 登录 GitHub\ngh auth login\n\n# 配置 Git 身份\ngit config --global user.name \"你的名字\"\ngit config --global user.email \"you@example.com\"\n\n# 补 remote\ngit remote add origin https://github.com/<user>/<repo>.git"
      },
      {
        "title": "问题 7: SKILL.md required / acceptLicenseTerms: invalid value",
        "body": "症状 1：\n\nError: SKILL.md required\n\n先判断：\n\n如果目录里真的没有 SKILL.md，那就是路径或文件问题\n如果目录里明明有 SKILL.md，但后续又报 acceptLicenseTerms: invalid value，那真正的问题通常不是技能文件缺失，而是 ClawHub CLI 与服务端 publish payload 兼容有坑\n\n症状 2：\n\nPublish payload: acceptLicenseTerms: invalid value\n\n结论：\n\n这类问题不要盲重试 clawhub publish\n先确认：\npwd\nls -la\nsed -n '1,20p' SKILL.md\nclawhub whoami\n\n\n如果 SKILL.md 存在、登录正常，基本可判定为 CLI publish payload bug，而不是技能目录缺文件\n\n兜底方案（实测可用）：\n\n正常完成 git push 和 gh release create\n从本机 ClawHub 配置里读取 token：\n\nmacOS 实测路径：~/Library/Application Support/clawhub/config.json\n\n\n手工向 https://clawhub.ai/api/v1/skills 发 multipart/form-data 请求：\n\npayload 内显式带：slug、displayName、version、changelog、tags、acceptLicenseTerms: true\n将技能目录中的文本文件逐个作为 files 上传\n\n\n发布成功后，用 clawhub inspect <slug> 验证最新版本\n\n规则更新：\n\n以后遇到 acceptLicenseTerms: invalid value，默认按 CLI bug 排查，不再把时间浪费在反复重试上\nGitHub Release 成功 + ClawHub CLI 失败，不代表技能不能发布；优先切到手工 API 发布兜底"
      },
      {
        "title": "问题 8: ClawHub 审核提示 metadata mismatch",
        "body": "典型反馈：\n\n功能本身是对的\n但 registry metadata 没声明实际依赖的二进制或环境变量\n\n高频遗漏项：\n\nrequires.bins\nrequires.env\nprimaryEnv\npackage.json 里的 requiresBinaries / requiredEnv / credentials\n\n处理顺序：\n\n对照代码、脚本、README、SKILL.md，列出真实依赖\n同步修复：\n\nSKILL.md frontmatter\npackage.json\nREADME / 示例命令\n\n\n升一个 patch 版本\n重新走：git push → gh release create → ClawHub publish\n\n硬规则：\n\n只要 skill 里用了 CLI、环境变量、本地沙箱目录，就必须把声明写全；不写全，审核很容易打回"
      },
      {
        "title": "📝 版本更新流程",
        "body": "# 1. 更新版本号\n# 修改 SKILL.md frontmatter 中的 version\n# 修改 package.json 中的 version\n\n# 2. 更新 CHANGELOG.md\n# 在顶部添加新版本记录\n\n# 3. 提交并推送\ngit add -A\ngit commit -m \"chore: bump version to 1.0.1\"\ngit push\n\n# 4. 先发 GitHub Release（必做）\ngh release create v1.0.1 --title \"v1.0.1\" --notes \"修复 xxx\"\n\n# 5. 再发布新版本到 ClawHub\nclawhub publish . --slug my-skill --version 1.0.1 --changelog \"修复 xxx\"\n\n# 或使用 sync（前提：GitHub Release 也要同步创建）\nclawhub sync"
      },
      {
        "title": "🔐 安全注意事项",
        "body": "凭证安全\n\n不要在代码中硬编码密钥\n使用环境变量或 mcporter config 存储\n在 .gitignore 中排除敏感文件\n\n\n\n脚本审查\n\n如果包含脚本文件，建议在文档中说明需要审查\n建议用户先在测试环境验证\n\n\n\n元数据准确性\n\n准确声明所有依赖的环境变量和二进制文件\n这有助于安全分析和用户理解"
      },
      {
        "title": "📚 参考资源",
        "body": "技能格式规范：https://github.com/openclaw/clawhub/blob/main/docs/skill-format.md\n安全规范：https://github.com/openclaw/clawhub/blob/main/docs/security.md\nClawHub 技能市场：https://clawhub.ai/skills"
      },
      {
        "title": "💡 最佳实践",
        "body": "小步迭代 - 每次发布只做一个主要改动\n详细 Changelog - 清晰记录每个版本的变更\n测试先行 - 在发布前充分测试技能功能\n文档完善 - 好的文档减少用户问题\n语义化版本 - 遵循 semver (major.minor.patch)\n\n最后更新：2026-02-27\n作者：马锐拉 (@aliramw)"
      }
    ],
    "body": "ClawHub 技能发布流程\n\n本文档总结了从 0 到发布一个 ClawHub 技能的完整流程和经验。\n\n📋 前置要求\nNode.js >= 18\nclawhub CLI (npm install -g clawhub)\nGit\nGitHub CLI (gh)\nClawHub 账号（已登录）\nGitHub 账号（用于 push 和 GitHub Release）\n🧰 环境检查与补装\n\n先检查命令是否存在：\n\nwhich git\nwhich gh\nwhich clawhub\n\n\n如果缺命令：\n\n# macOS（推荐）\nbrew install git gh\nnpm install -g clawhub\n\n# Ubuntu / Debian\nsudo apt update\nsudo apt install -y git gh\nnpm install -g clawhub\n\n\n验证：\n\ngit --version\ngh --version\nclawhub --version\n\n🔐 GitHub 鉴权与 Git 初始化\n\n如果用户还没登录 GitHub，先做这个：\n\n# 登录 GitHub CLI\ngh auth login\n\n# 验证登录状态\ngh auth status\n\n\n如果用户本机 Git 还没初始化身份，先配置：\n\ngit config --global user.name \"你的名字\"\ngit config --global user.email \"you@example.com\"\n\n\n如果仓库还没绑远程：\n\ngit remote add origin https://github.com/<user>/<repo>.git\n# 或\n# git remote add origin git@github.com:<user>/<repo>.git\n\n\n发布前最少确认这 4 件事：\n\ngit status\ngit remote -v\ngh auth status\nclawhub whoami\n\n✅ 发布顺序（必须按此顺序，不能错）\n\n发布前，先检查 references/clawhub-review-checklist.md，确认元数据、README、脚本行为、凭证声明和示例参数已经一致。\n\n确定版本号 — 同步修改 SKILL.md 和 package.json 的 version 字段\n更新 CHANGELOG.md — 在顶部追加新版本记录\n先过一遍 checklist — 特别检查 requires.bins / requires.env / primaryEnv / 本地文件行为说明\npush + GitHub Release — git add -A && git commit && git push，然后 gh release create v0.x.x --title \"v0.x.x\" --notes \"...\"\n发布到 ClawHub — clawhub publish <路径> --slug <名> --version x.x.x --changelog \"...\"\n如需立即让当前 agent 使用最新技能定义，再手动同步到 agent 工作空间 — cp <技能目录>/SKILL.md ~/.openclaw/workspace/skills/技能名/SKILL.md\n\n硬规则： 以后凡是发布 OpenClaw 技能，每次 ClawHub 发布都必须同步创建对应的 GitHub Release。不允许只发技能不发 release。\n\n新增硬规则： 发布前必须过一遍 references/clawhub-review-checklist.md。尤其是带脚本、凭证、工作区文件读写的技能，不检查就发，极容易被 ClawHub 审核打回。\n\n敏感操作提示： 同步到 ~/.openclaw/workspace/skills 属于对 agent 工作区的写操作，只应在受信任环境中显式执行，不应在公共或不受信任场景下默认执行。\n\n🚀 完整流程\n1. 准备技能文件夹\n# 创建技能目录\nmkdir -p ~/my-skill\ncd ~/my-skill\n\n# 初始化 Git\ngit init\n\n2. 创建必需文件\nSKILL.md（必需）\n---\nname: my-skill\ndescription: 简短描述技能功能\nversion: 1.0.0\nmetadata:\n  openclaw:\n    requires:\n      env:\n        - MY_API_KEY\n      bins:\n        - curl\n    primaryEnv: MY_API_KEY\n    homepage: https://github.com/username/my-skill\n---\n\n# 技能说明文档\n\n## 功能描述\n...\n\n## 使用方法\n...\n\n\n⚠️ 关键：元数据必须准确声明\n\nClawHub 安全分析会检查声明与实际代码是否一致：\n\nrequires.env - 代码中引用的所有环境变量\nrequires.bins - 代码中调用的所有 CLI 工具\nprimaryEnv - 主要凭证变量名\npackage.json\n{\n  \"name\": \"my-skill\",\n  \"version\": \"1.0.0\",\n  \"description\": \"技能描述\",\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/username/my-skill.git\"\n  },\n  \"clawhub\": {\n    \"requiresBinaries\": [\"curl\"],\n    \"credentials\": [\n      {\n        \"name\": \"MY_API_KEY\",\n        \"description\": \"API 密钥说明\",\n        \"docs\": \"https://example.com/docs\"\n      }\n    ]\n  }\n}\n\nREADME.md\n# my-skill\n\n简短介绍。\n\n## 安装\n\n```bash\nclawhub install my-skill\n\n配置\n获取凭证...\n配置环境变量...\n使用\n\n...\n\n\n#### CHANGELOG.md\n\n```markdown\n# Changelog\n\n## [1.0.0] - 2026-02-27\n\n### 新增\n- 初始版本\n\n3. 推送到 GitHub\ngit add -A\ngit commit -m \"Initial commit\"\ngit remote add origin https://github.com/username/my-skill.git\ngit push -u origin main\n\n4. 发布到 ClawHub\n# 方式一：直接发布\nclawhub publish . --slug my-skill --name \"My Skill\" --version 1.0.0 --changelog \"初始版本\"\n\n# 方式二：使用 sync（推荐）\nclawhub sync\n\n5. 验证发布\n# 检查技能信息\nclawhub inspect my-skill\n\n# 查看网页\nopen https://clawhub.ai/username/my-skill\n\n⚠️ 常见问题与解决方案\n问题 1: fetch failed 错误\n\n症状：\n\n✖ fetch failed\nError: fetch failed\n\n\n原因： 网络问题、服务端暂时不可达或本机登录状态异常\n\n解决：\n\n# 检查网络连接\ncurl -I https://clawhub.ai\n\n# 重新登录\nclawhub login\nclawhub whoami\n\n问题 2: SKILL.md required 错误\n\n症状：\n\nError: SKILL.md required\n\n\n原因：\n\n文件不存在\n文件名大小写错误（必须是 SKILL.md 或 skill.md）\n当前目录错误\n\n解决：\n\nls -la SKILL.md\npwd\nclawhub publish /absolute/path/to/skill --slug my-skill ...\n\n问题 3: 发布超时（Timeout）\n\n症状：\n\n✖ Timeout\nError: Timeout\n\n\n原因： 服务器响应慢或网络问题\n\n解决：\n\n# 检查服务器状态\ncurl -I https://clawhub.ai\n\n# 重试发布\nclawhub publish . --slug my-skill ...\n\n# 或使用 sync\nclawhub sync\n\n问题 4: 元数据不一致（审核失败）\n\n症状： 审核反馈 \"metadata mismatch\"\n\n原因： SKILL.md frontmatter 声明与实际代码不符\n\n解决： 确保 frontmatter 准确声明：\n\n---\nname: my-skill\nversion: 1.0.0\nmetadata:\n  openclaw:\n    requires:\n      env:\n        - ACTUAL_ENV_VAR_USED_IN_CODE\n      bins:\n        - actual_binary_used_in_code\n    primaryEnv: ACTUAL_ENV_VAR_USED_IN_CODE\n    homepage: https://github.com/username/repo\n---\n\n问题 5: ClawHub 登录失败\n\n症状：\n\n- Verifying token\n✖ fetch failed\n\n\n解决：\n\n# 重新登录\nclawhub login\nclawhub whoami\n\n# 如仍失败，在受信任环境中人工检查本机 ClawHub 登录状态\n\n问题 6: gh release create 或 git push 失败\n\n常见原因：\n\n没安装 gh\nGitHub CLI 未登录\nGit 没配置 user.name / user.email\n仓库没配置 origin\n当前账号对仓库无 push 权限\n\n排查顺序：\n\nwhich gh\ngh auth status\ngit config --global --get user.name\ngit config --global --get user.email\ngit remote -v\n\n\n解决：\n\n# 安装 gh\nbrew install gh\n\n# 登录 GitHub\ngh auth login\n\n# 配置 Git 身份\ngit config --global user.name \"你的名字\"\ngit config --global user.email \"you@example.com\"\n\n# 补 remote\ngit remote add origin https://github.com/<user>/<repo>.git\n\n问题 7: SKILL.md required / acceptLicenseTerms: invalid value\n\n症状 1：\n\nError: SKILL.md required\n\n\n先判断：\n\n如果目录里真的没有 SKILL.md，那就是路径或文件问题\n如果目录里明明有 SKILL.md，但后续又报 acceptLicenseTerms: invalid value，那真正的问题通常不是技能文件缺失，而是 ClawHub CLI 与服务端 publish payload 兼容有坑\n\n症状 2：\n\nPublish payload: acceptLicenseTerms: invalid value\n\n\n结论：\n\n这类问题不要盲重试 clawhub publish\n先确认：\npwd\nls -la\nsed -n '1,20p' SKILL.md\nclawhub whoami\n\n如果 SKILL.md 存在、登录正常，基本可判定为 CLI publish payload bug，而不是技能目录缺文件\n\n兜底方案（实测可用）：\n\n正常完成 git push 和 gh release create\n从本机 ClawHub 配置里读取 token：\nmacOS 实测路径：~/Library/Application Support/clawhub/config.json\n手工向 https://clawhub.ai/api/v1/skills 发 multipart/form-data 请求：\npayload 内显式带：slug、displayName、version、changelog、tags、acceptLicenseTerms: true\n将技能目录中的文本文件逐个作为 files 上传\n发布成功后，用 clawhub inspect <slug> 验证最新版本\n\n规则更新：\n\n以后遇到 acceptLicenseTerms: invalid value，默认按 CLI bug 排查，不再把时间浪费在反复重试上\nGitHub Release 成功 + ClawHub CLI 失败，不代表技能不能发布；优先切到手工 API 发布兜底\n问题 8: ClawHub 审核提示 metadata mismatch\n\n典型反馈：\n\n功能本身是对的\n但 registry metadata 没声明实际依赖的二进制或环境变量\n\n高频遗漏项：\n\nrequires.bins\nrequires.env\nprimaryEnv\npackage.json 里的 requiresBinaries / requiredEnv / credentials\n\n处理顺序：\n\n对照代码、脚本、README、SKILL.md，列出真实依赖\n同步修复：\nSKILL.md frontmatter\npackage.json\nREADME / 示例命令\n升一个 patch 版本\n重新走：git push → gh release create → ClawHub publish\n\n硬规则：\n\n只要 skill 里用了 CLI、环境变量、本地沙箱目录，就必须把声明写全；不写全，审核很容易打回\n📝 版本更新流程\n# 1. 更新版本号\n# 修改 SKILL.md frontmatter 中的 version\n# 修改 package.json 中的 version\n\n# 2. 更新 CHANGELOG.md\n# 在顶部添加新版本记录\n\n# 3. 提交并推送\ngit add -A\ngit commit -m \"chore: bump version to 1.0.1\"\ngit push\n\n# 4. 先发 GitHub Release（必做）\ngh release create v1.0.1 --title \"v1.0.1\" --notes \"修复 xxx\"\n\n# 5. 再发布新版本到 ClawHub\nclawhub publish . --slug my-skill --version 1.0.1 --changelog \"修复 xxx\"\n\n# 或使用 sync（前提：GitHub Release 也要同步创建）\nclawhub sync\n\n🔐 安全注意事项\n\n凭证安全\n\n不要在代码中硬编码密钥\n使用环境变量或 mcporter config 存储\n在 .gitignore 中排除敏感文件\n\n脚本审查\n\n如果包含脚本文件，建议在文档中说明需要审查\n建议用户先在测试环境验证\n\n元数据准确性\n\n准确声明所有依赖的环境变量和二进制文件\n这有助于安全分析和用户理解\n📚 参考资源\n技能格式规范：https://github.com/openclaw/clawhub/blob/main/docs/skill-format.md\n安全规范：https://github.com/openclaw/clawhub/blob/main/docs/security.md\nClawHub 技能市场：https://clawhub.ai/skills\n💡 最佳实践\n小步迭代 - 每次发布只做一个主要改动\n详细 Changelog - 清晰记录每个版本的变更\n测试先行 - 在发布前充分测试技能功能\n文档完善 - 好的文档减少用户问题\n语义化版本 - 遵循 semver (major.minor.patch)\n\n最后更新：2026-02-27 作者：马锐拉 (@aliramw)"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/aliramw/marila-skill-publish",
    "publisherUrl": "https://clawhub.ai/aliramw/marila-skill-publish",
    "owner": "aliramw",
    "version": "1.0.8",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/marila-skill-publish",
    "downloadUrl": "https://openagent3.xyz/downloads/marila-skill-publish",
    "agentUrl": "https://openagent3.xyz/skills/marila-skill-publish/agent",
    "manifestUrl": "https://openagent3.xyz/skills/marila-skill-publish/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/marila-skill-publish/agent.md"
  }
}