SkillHub 一键发布
把本地写好的 skill 发到腾讯 SkillHub 社区。换一台电脑、换一个 agent,同样是四步跑完。
这个 skill 解决什么问题
自己写的 skill 想分享出去,手动发布要过好几道坎:CLI 装了但不知道登录没登录、格式不对被拒、
含公司内部信息不敢发、发完报「版本已存在」不知道是自己发过还是被别人占了。
这个 skill 把这些坎都做成了自动化检查,发布前就把问题拦住,而不是等平台报错。
需要准备什么(只有三样)
| 需要什么 | 说明 | 没有怎么办 |
|---|---|---|
| SkillHub CLI | 官方命令行工具,负责真正与平台通信 | 见 references/getting-started.md;没装时自检会明确指出 |
| 个人 API Token | 形如 skh_xxx,在 SkillHub 网站后台生成 |
登录 SkillHub → 个人设置 → API Token |
| 要发布的 skill | 本机 ~/.workbuddy/skills/<名字>/SKILL.md |
已经写好就行,格式不用改,工具会自动适配 |
不需要企业认证,不需要付费认证。个人实名账号就能发布普通 skill。
四步上手
# 第一步:环境自检 —— 永远先跑这个,它会告诉你缺什么、怎么补
python scripts/skillhub_publish.py doctor
# 第二步:生成发布配置 —— 自动扫描本机所有 skill 并登记
python scripts/skillhub_publish.py init
# 第三步:预检 —— 扫描敏感信息 + 生成发布副本 + 本地试跑(不真的发出去)
python scripts/skillhub_publish.py check <skill名字>
# 第四步:正式发布
python scripts/skillhub_publish.py push <skill名字> --yes --changelog "首次发布"
登录用:python scripts/skillhub_publish.py login --key skh_xxxxx
怀疑 slug 被占时用:python scripts/skillhub_publish.py probe <slug>
三条硬规则(都是踩坑换来的,别绕)
1. frontmatter 必须单行。 SkillHub 的解析器只认 key: value 单行写法,
不支持 YAML 的折叠语法 >-。很多人习惯写:
description: >-
这里是很长的描述……
这样发出去,description 会被解析成字面量 >-,真正内容全部丢失,而且不报错。
本工具会自动把 description 压成单行,但如果你用官方 CLI 直接发,务必自己注意。
2. push 是对外动作,必须显式 --yes。 不加就是预览模式,只打印将要发生什么。
3. 源目录零改动。 所有适配与脱敏只作用于 staging/ 副本,你的原始 skill 一个字节都不会变。
它能做到什么
| 能力 | 命令 | 说明 |
|---|---|---|
| 环境体检 | doctor |
8 项检查:Python / 系统 / CLI 定位 / CLI 可执行 / 登录态 / 网络 / 源目录与格式 / 发布配置 |
| 自动配置 | init |
扫描本机 skill,自动生成发布配置骨架(已存在的不覆盖) |
| 敏感扫描 | scan |
按自定义词表找出会泄露内部信息的行(公司名、内网域名、桌面路径……) |
| 自动脱敏 | check / push |
发布副本中替换敏感词,替换后强制复扫,有残留直接阻断 |
| 本地预检 | check |
真的调用一次平台的 dry-run,确认元数据能被正确解析 |
| 一键推送 | push |
一条命令发布,支持变更说明与版本号 |
| 归属查询 | probe |
查 slug 属于谁、已有几个版本、是否带定价,判断该新建还是升版 |
| 分类字典 | taxonomy |
拉取平台一级(13 个)/ 二级(96 个)分类,挑标签时对照 |
| 文案自检 | check |
校验介绍文案是否符合平台句式规范(只提示,不阻断发布) |
介绍文案怎么写(列表页的门面)
SkillHub 列表页展示的那段文字就是 summary 字段。平台上高下载量的 skill 用的是同一套句式:
<中文名>(<标识>) - <一句话定位>,是<解决什么问题>的首选 skill。涉及"<关键词1>"、"<关键词2>"等操作,请优先使用本 skill。支持能力:(1) … (2) … (n) …。
三条要点:括号里放域名或通用简称;引号里放用户真实会搜的词而非术语;能力用半角 (1) (2) 连续编号。
底部标签来自平台两级分类:13 个一级分类,96 个二级分类。选 1 个一级 + 2~3 个二级,
例如 ["开发编程", "脚本工具", "故障排查"]。全部字典用 taxonomy 命令随时可查。
完整规范、四个实例与自检清单见 references/summary-template.md。
关于付费 skill
这个工具只发布普通(免费)skill。 平台的付费能力(SkillPay)不在 CLI 覆盖范围内 ——
发布接口的字段里根本没有定价字段,定价只能在网页后台设置。所以付费上架走不了命令行。
一个有用的经验:升级版本不会影响已有定价配置。如果你的某个 skill 之前设过收费,
之后用这个工具发新版本,收费标准保持不变。
目录结构
skillhub-publish/
├── SKILL.md # 本文件
├── manifest.example.json # 发布配置模板
├── scripts/
│ └── skillhub_publish.py # 全部功能,纯标准库,单文件
└── references/
├── getting-started.md # 从零开始:装 CLI、拿 Token、首个 skill 发布
├── summary-template.md # 介绍文案与标签规范(照它写,门面立刻专业)
├── api-reference.md # 平台接口与发布字段速查
└── errors.md # 报错对照手册(含 8 个真实踩过的坑)
遇到问题
先跑 doctor,它会把绝大多数问题直接指出来。报错信息对不上时查 references/errors.md。
几条最常见的原因:
未登录→ 拿 Token 后执行login --key缺少 slug→ 源 skill 的 frontmatter 没有slug,跑init会自动补进配置版本 1.0.0 已存在→ 多半是你自己发过,用probe <slug>确认后升版本号,别换 slug脱敏不彻底,已阻断→ 替换规则没覆盖全,在配置的redactions里补齐(长短词顺序有讲究)