ClawHub 是 OpenClaw 的官方 Skill 注册中心,截至 2026 年 3 月,已收录 13,700+ 技能、2,868 个高质量精选、5,000+ 周活跃开发者,单个 Skill 最高安装量达 18 万次。但 ClawHub 也是一把双刃剑------同期约 12% 的 Skill 存在安全问题,1184 个被标记为恶意(含 crypto stealers、prompt injection、data exfiltration),所以"会发"和"发得对、发得安全"完全是两件事。本文给一份从打包、自检、上架到维护的完整方案,附零依赖的预发布自检器代码,照着做就能让 Skill 安全过审、稳定分发。
一、整体流程:六阶段流水线

整个发布流水线分 6 个阶段,纵向有两条贯穿全程的"脊柱":
| 阶段 | 关键产物 | 核心动作 |
|---|---|---|
| ① Skill Design | manifest schema | 边界、scope、advertise≤100t |
| ② Local Develop | SKILL.md / scripts / references | 四层加载:advertise → load → resources → run |
| ③ Validate & Test | lint 报告 / sandbox 试跑 | clawhub validate + 凭证测试 |
| ④ Package & Sign | zip artifact / SBOM | 语义化版本 + 签名 |
| ⑤ Submit to ClawHub | 上架元数据 / icon / 截图 | clawhub publish |
| ⑥ Review & Listing | ClawScan + 人工审核 | 安全扫描 + 公开上架 |
横贯上下两条脊柱:开发者体验脊柱 (skill_draft_create / credential / publish / 回滚)和 信任与安全脊柱(凭证白名单域名 / 沙箱隔离 / 签名校验 / CVE 扫描)。前者保证"快速发出来",后者保证"发出来不被下架"。
二、Skill 包结构:最小可发布单元
ClawHub 期望的目录结构非常克制:
my-skill/
├── SKILL.md # 必需:YAML frontmatter + Markdown 指令
├── clawhub.json # 推荐:元数据与上架信息
├── scripts/ # 可选:执行脚本(按需 run)
├── references/ # 可选:参考文档(按需 read)
└── README.md # 可选:作为商店落地页
SKILL.md 头部的 YAML frontmatter 是 Skill 的灵魂,三个字段决定生死:
markdown
---
name: github-crm-bridge
description: 把 GitHub Issue 同步到 OpenClaw CRM 联系人,自动派单与追踪
version: 1.0.0
tools: [Bash, Read, Write, WebSearch]
---
description 决定 OpenClaw 何时自动触发该 Skill ------描述越精准,触发越准;模糊到"general productivity"那种基本没人装也没人用。tools 字段建议显式声明所需工具,避免无意暴露 exec 这类高危接口。
三、预发布自检器:把问题挡在上传之前
ClawHub 上传后再修问题的成本极高(要重发 patch 版本、要重过审核),所以推荐在本地先跑一轮"医生体检"。下面是一个零依赖纯 Python 的 doctor,6 大类检查覆盖 ClawHub 最常见的 4 类拒收原因:Slug 大小写、污染文件、凭证硬编码、版本号格式。
python
SEMVER = re.compile(r"^\d+\.\d+\.\d+([\-+][0-9A-Za-z\-.]+)?$")
SLUG_OK = re.compile(r"^[a-z0-9]+(-[a-z0-9]+)*$")
SECRET_PATTERNS = [
re.compile(r"sk-[A-Za-z0-9_\-]{16,}"),
re.compile(r"AKIA[0-9A-Z]{16}"),
re.compile(r"(?i)bearer\s+[A-Za-z0-9_\-\.=]{20,}"),
re.compile(r"(?i)(api[_-]?key|secret|token)\s*[:=]\s*['\"][^'\"]{12,}"),
]
DIRTY_FILES = {".git", ".DS_Store", "node_modules", "__pycache__"}
打分规则简单粗暴:任何一项 CRIT 直接 BLOCK(一票否决),WARN 每项扣 8 分;100 分健康,60~89 分需修复,60 以下阻断发布。
我用一个故意"埋雷"的 Skill 跑了一遍 mock:Slug 写成 Github-CRM-Bridge、版本写成 1.0、scripts 里硬编码了 sk-prod-... 的 key、还带着 .git / .DS_Store / LICENSE 三类污染文件。doctor 输出:
[OK ] ✅ 必需文件 SKILL.md → 存在
[OK ] ✅ YAML frontmatter → name=github-crm-bridge, desc=43字
[CRIT] ❌ Slug 合规 → 'Github-CRM-Bridge' 不合规,必须小写+短横线
[WARN] ⚠️ 版本号 semver → '1.0' 非标准 semver,建议 X.Y.Z
[CRIT] ❌ 污染文件清理 → 检出 3 个: .git/HEAD, .DS_Store, LICENSE
[CRIT] ❌ 凭证泄露扫描 → 硬编码密钥 1 处: sk-prod-7H2k9X3LmQ...
─────────────────────────
健康分:0/100 (CRIT 3 / WARN 1)
发布决策:BLOCK
3 个 CRIT 直接挡住发布,是非常准确的------这 4 个雷只要中任意一个,到 ClawHub 网页表单就会立刻报红。
四、正式发布:两条上架路径
路径 A:CLI 发布(适合自动化与团队)
bash
npm i -g clawhub # 全局安装 CLI
clawhub login # 浏览器 OAuth 授权
clawhub validate ./my-skill # 服务端规则校验
clawhub publish ./my-skill \
--slug github-crm-bridge \
--name "GitHub CRM Bridge" \
--version 1.0.0 \
--changelog "Initial release" \
--dry-run # 先模拟发布预览
clawhub publish ./my-skill ... # 去掉 --dry-run 正式发布
--slug 决定 URL(clawhub.ai/{owner}/{slug}),上线后不可改 ;--version 必须严格 semver;--dry-run 一定要先跑一次,预览审查报告再正式发。
路径 B:网页发布(适合新手)
访问 https://clawhub.ai/import,两种模式:
- Drop a folder:直接拖目录上传,表单填 Slug / Display name / Version / Tags,勾选 MIT-0 许可证,写 Changelog 即可发布。
- Import from GitHub :填写公开仓库地址,点
Detect自动识别表单------这种方式会自动过滤.git/LICENSE等污染文件,更稳定。
官方限制:GitHub 账号必须创建满 1 周才能发布(防滥用机制),新账号要先攒一周时间。
五、安全与上架硬规则
ClawHub 在 2026 年初被 ClawHavoc 供应链攻击重创后,审核明显收紧。发布前请逐条对齐:
| 红线项 | 触发后果 | 修复 |
|---|---|---|
| Slug 含大写 / 下划线 | 表单直接报红 | 改全小写 + 短横线 |
包含 .git/.DS_Store/LICENSE |
Remove non-text files 错误 |
doctor 清单提前清理 |
| 硬编码 API Key / Token | ClawScan 静态扫描判 DANGEROUS | 走 skill_draft_credential 配凭证 |
tools 包含 exec 类高危接口 |
人工审核驳回 | YAML 显式声明 tools: deny: [exec] |
| 描述含"general"等泛词 | 触发率低 → 装机量低 → 沉底 | 写明"何时触发 + 解决什么痛" |
六、发布后维护:版本与社区
发布不是终点。后续维护建议遵循三条铁律:
- 语义化版本 :bug fix 走 patch(1.0.1)、新功能走 minor(1.1.0)、breaking 走 major(2.0.0),并在 changelog 写清
Added/Changed/Fixed/Deprecated四象限; - 回应 issue 不躺平:ClawHub 的 star / report 直接影响推荐权重;
- 向 awesome-openclaw-skills 仓库提 PR:4 万 star、5400+ 入选 Skill,被收录后流量提升明显。
七、避坑铁律
- API Key 永远不放 Skill 内 ------走
skill_draft_credential配置凭证,让 ClawHub 网关代为注入,否则一次泄露全网传播; - dry-run 永远先跑一次 ------
clawhub publish --dry-run看模拟报告再正式发,省下重发 patch 版本的时间; - 本地用 doctor 先体检------CRIT 项一律阻断,别等 ClawHub 服务端打回来;
- Slug 一发即定------上线后只能新发 Skill 改名,所以三思而后命名;
- 新账号攒满 1 周再发------别浪费第一次发布的"曝光位"在一个测试 Skill 上。