SkillHub 开源发布器 · Agent 一键上架
这个技能解决什么
你在 WorkBuddy 里自己做的 Agent(本质是 ~/.workbuddy/skills/<slug>/ 下的一个 Skill:含 SKILL.md + 可能有的 references/ data/ assets/),想让别人也能搜到、安装、使用。
SkillHub 提供了 skillhub publish 命令,但它对 SKILL.md 头部格式卡得很死。本技能帮你把格式一次性补对、本地校验通过、再安全上传——你不用懂代码。
发布前必知的格式规则(SkillHub 后端校验)
SKILL.md 顶部 --- 包裹的 frontmatter 里,以下字段缺一不可:
| 字段 | 规则 | 示例 |
|---|---|---|
slug |
只能小写字母/数字/中划线,2–128 字符,且不能以 - 开头或结尾 |
china-hit-drama-radar |
version |
必须是 SemVer 三段式 x.y.z |
1.0.0 |
displayName |
非空,展示给用户的名字 | 中国影视爆款雷达 · 编剧选题决策系统 |
以下字段可选但强烈建议填(会显示在 SkillHub 详情页,影响搜索/点击):
description:一句话能力说明(你的 Skill 通常已有,可直接复用)tags:[a, b]列表,影响搜索命中(如["影视", "编剧", "选题"])license:开源协议,个人作品常用MITsummary:比 description 更短的摘要(不填则后端用 description 兜底)homepage:项目主页/仓库链接(可选)
> ⚠️ 注意:本地已有的自建 Skill 往往只有 name + description + agent_created: true,没有 slug/version/displayName,直接 publish 会被拒。本技能第一步就是补这三项。
标准操作流程(照做即可)
第 0 步:确认 CLI 已装且登录
command -v skillhub && skillhub --version
skillhub auth whoami # 未登录会报错,见第 4 步
第 1 步:定位要发布的 Skill 目录
用户级 Skill 在:
~/.workbuddy/skills/<slug>/
本任务工作区级 Skill 在:
<workspace>/.workbuddy/skills/<slug>/
确认目录里根层级有 SKILL.md(这是后端硬性要求,缺了直接失败)。
第 2 步:补齐 frontmatter(最关键)
用 Edit 工具打开 SKILL.md,把头部 --- 之间补成下面这样(只动 frontmatter,正文不动):
---
name: <原名,可保留>
slug: <kebab-case,如 china-hit-drama-radar>
version: 1.0.0
displayName: <人类可读的名字>
description: <一句话能力,可抄原 description>
agent_created: true
tags:
- <标签1>
- <标签2>
license: MIT
---
校验要点:
- slug 必须是 ^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$,不能有大写、中文、下划线。
- version 必须是 1.0.0 这种三段数字。
- 列表写法 tags: 下面每行缩进两个空格加 - 值。
第 3 步:本地预检(不联网,先排错)
skillhub publish ~/.workbuddy/skills/<slug> --dry-run
- 通过 → 输出打包信息,无报错,进入第 4 步。
- 报错 → 按提示修 frontmatter(最常见:
缺少 slug/version 不是合法 SemVer/slug 不合法/缺少 displayName),回到第 2 步。
第 4 步:登录 SkillHub(拿 Token)
发布需要 skh_ 开头的个人 API Token。两种拿法:
方式 A(推荐,不暴露 token 在聊天里):让用户自己去 SkillHub 网站生成 PAT,然后在终端跑:
skillhub login --key skh_你的token
登录成功后 skillhub auth whoami 能显示身份。
方式 B:用户把 skh_xxx 发给你,你用 --token 直接带在发布命令里(仅本次,不落盘):
skillhub publish ~/.workbuddy/skills/<slug> --version 1.0.0 --changelog "首次开源发布" --token skh_xxx
第 5 步:正式发布
已登录(skillhub auth whoami 正常)后:
skillhub publish ~/.workbuddy/skills/<slug> --version 1.0.0 --changelog "首次开源发布"
成功后终端会返回 skillId 与 status。把这个结果告诉用户,并给出搜索/安装方式:
skillhub search <slug>
skillhub install <slug> --dir ~/.workbuddy/skills/
常见坑(排错速查)
| 报错信息 | 原因 | 解决 |
|---|---|---|
SKILL.md 缺少 slug |
frontmatter 没有 slug | 第 2 步补上 |
slug 不合法 |
含大写/中文/下划线,或首尾是 - |
改成纯小写 kebab-case |
version 不是合法 SemVer |
写成 v1.0 / 1.0 |
改成 1.0.0 |
SKILL.md 缺少 displayName |
缺展示名 | 补 displayName |
未登录 |
没有 token | 第 4 步登录 |
未找到 SKILL.md |
目录路径错或 SKILL.md 不在根层 | 核对路径 |
一键脚本(给熟练用户)
若想批量把多个自建 Skill 发布,可对每个 slug 循环执行:先确保 frontmatter 含 slug/version/displayName,再
skillhub publish ~/.workbuddy/skills/$s --version 1.0.0 --changelog "开源首版"
安全提醒
- 发布前检查
data/目录里有没有私密/未脱敏内容(如真实人名、内部数据)。SkillHub 会连同data/一起打包上传。 - 已排除:
.git.idea.vscodenode_modules__pycache__、*.pyc.DS_Store不会被上传(CLI 自动忽略)。 - 单包上限约 10MB(后端),普通文本 Skill 远不会超。