将任一 skill 准备好发布到 SkillHub。五步流水线:出发前确认 → 六维审计 → 确认修复 → 脱敏生成 → 打包交付。支持 WorkBuddy / OpenClaw / Hermes / Universal 四平台。
> 文档入口:README.md(用户文档)| DESIGN.md(架构决策)| CHANGELOG.md(版本历史)
> 文件结构详见 README.md。
发布 {skill名称} [版本号]
示例:发布 skill-creator-king v3.8.0
skills/{name}/)支持的平台路径:
~/.workbuddy/skills/{name}/~/.openclaw/skills/{name}/~/.hermes/skills/{name}/~/.agents/skills/{name}/目标:在动手之前确认所有前提条件,避免走一半发现走不通。
~/.workbuddy/skills/ → ~/.openclaw/skills/ → ~/.hermes/skills/ → ~/.agents/skills/以固定格式向用户展示出发前状态:
🎫 出发前机票
━━━━━━━━━━━━━━━━━━━━━━
Skill: {name}
当前版本: {current_version}
目标版本: {target_version}
目录文件数: {file_count}
SKILL.md: ✅/❌(存在/缺失)
SPEC.md: ❌ (已合并至 DESIGN.md)
DESIGN.md: ✅/❌
README.md: ✅/❌
CHANGELOG: ✅/❌
状态: ✅ 可以出发 / ❌ 阻塞(原因)
阻塞条件:
目标:在不修改目标 skill 任何文件的前提下,进行六维度全面审计。输出分 P0/P1/P2 三级。
检查标准 skill 文件是否存在:SKILL.md, DESIGN.md, README.md, CHANGELOG.md
检查 SKILL.md frontmatter 字段:
| 字段 | 严重性 | 说明 |
|---|---|---|
| ------ | -------- | ------ |
| name | P0 | 必填,必须与目录名一致 |
| version | P0 | 必填,语义化版本 |
| description | P0 | 必填,80-200 字 |
| template | P1 | 推荐填写 |
| triggers | P2 | 推荐至少3个中英文触发词 |
| token_budget | P2 | 推荐声明 |
检查占位符:"待补充"、"TODO"、"FIXME"、"TBD" 等 → P1
交叉校验以下文件中的版本号:
version不一致 → P0
扫描所有文件(scripts/ 下的 .py/.sh 文件深度检查):
subprocess 或 os.system 执行外部命令 → P1eval() 或 exec() → P1🔍 六维审计报告 — {skill_name} v{version}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
P0(必须修复): {count} 项
P1(强烈建议): {count} 项
P2(可选优化): {count} 项
各维度详情...
目标:用户审核审计结果,逐项决定修复策略。
> ⚠️ 执行约束:Phase 2 的 4 个步骤(2.1→2.2→2.3→2.4)必须逐个向用户确认,不可合并为一次交互。每步等用户回应后再进入下一步。
以结构化表格展示所有 P0/P1/P2 项,每项包含:
用户决定:
P0 项不可跳过——这是硬约束。
询问用户目标版本号:
汇总所有"修"项的修复计划,用户确认后进入 Phase 3。
目标:按确认清单自动修复 + 生成标准发布物料。所有操作在桌面发布副本上进行。
~/Desktop/{skill_name}-v{version}/```
rsync -av --exclude='_cache' --exclude='__pycache__' --exclude='*.pyc' \
--exclude='*.jsonl' --exclude='.skillignore' --exclude='.DS_Store' --exclude='.gitignore' --exclude='.git' \
{source}/ {desktop_dest}/
```
.skillignore 过滤规则:如源目录存在 .skillignore,将其内容追加到 rsync --exclude 参数中根据 Phase 2 确认的修复清单,逐项执行:
description: > YAML 块标量多行格式(保留下游 YAML 解析器兼容性)参考 templates/readme-template.md 格式。如果 README.md 不存在或需要更新,生成包含以下章节的完整 README:
参考 templates/description-template.md 格式。生成 80-200 字的 SkillHub 上架描述,可直接复制粘贴到 SkillHub 网页版。
从 CHANGELOG.md 提取最新版本的条目,格式化为发布说明。
目标:对发布副本中的 .md 和 .yaml 文件执行内容脱敏,移除可能触发内容审核的敏感词。
按优先级加载:
principles/sanitize_rules.yaml(用户自定义,优先)references/sanitize_rules.yaml(通用基线,回退)合并规则,私有规则同名覆盖内置规则。
对发布副本中所有 .md 和 .yaml 文件:
输出脱敏执行报告:
🛡️ 内容脱敏报告
━━━━━━━━━━━━━━━━━━
扫描文件: {count}
命中规则: {count}
替换次数: {count}
各规则命中详情...
注意:脱敏仅操作发布副本,不影响原始 skill 文件。
目标:最终验证发布包完整性,交付给用户。
对发布副本执行快速二次审计(仅 P0 项),确认所有 P0 已修复。
📦 发布包就绪
━━━━━━━━━━━━━━━━━━━━━━━━━━━
位置: ~/Desktop/{name}-v{version}/
文件数: {count}
审计状态: ✅ P0 全部通过 / ⚠️ 有P1未修复
脱敏状态: ✅ 已执行 / ⏭️ 未命中规则
📋 变更清单
- [修复] ...
- [生成] README.md
- [生成] SkillHub 描述
📤 下一步
1. 打开 SkillHub 网页版
2. 上传 ~/Desktop/{name}-v{version}/ 的全部文件
3. 粘贴描述文本
4. 点击发布
共 7 个版本