SkillHub 自动发布(备料 + 一键发布)
一句话:把本地写好的 skill,一键备成物料并真发布到 skillhub.cn——不用网页扫码、不用手动点提交。
> ⚠️ 2026-08-21 重大更正:旧版说"PAT 推不动、只备料不代提交"是错的。当年(08-13)用裸 curl 打 REST 接口才 401;实际 SkillHub 的发布通道是官方 skillhub CLI 的 auth+publish,key 能登录、能真发(已实测 knowledge-card-flywheel v1.1.1 发布成功,skillId=154381)。本 skill 升级为真·自动发布。
前置条件(首次配置一次)
- CLI 已装:
skillhub --version有输出(v2026.8.5+)。未装:
bash curl -fsSL https://skillhub-1388575217.cos.ap-guangzhou.myqcloud.com/install/install.sh | bash -s -- --cli-only - 已登录(key 存本地 CLI config):
skillhub auth whoami返回你的 userId。未登录:
bash skillhub login --key skh_xxx
key 只存~/.skillhub/本地 config,不进任何笔记/记忆文件(符合"敏感凭证不留盘"原意——原意指不写进我的长期记忆,CLI 自身登录态是工具标准存储)。
- key 获取:SkillHub 网页 → 账号 → API keys → 创建(仅在创建时可见,妥善保存)。 - SKILL.md frontmatter 合规(见下节,缺字段 dry-run 直接报错)。
SKILL.md 发布必填字段(实测硬门槛)
name: <english-slug> # 英文 slug,唯一
slug: <english-slug> # 必须!kebab-case,同 name
displayName: "<中文名>" # 必须!驼峰 displayName(不是 display_name,平台不认下划线版)
version: 1.0.0 # 必须!且每次真发必须 > 平台已有版本
description: <一句话简介> # 必须!
metadata:
author: <作者名> # 用户专属,缺了要问
platforms: [workbuddy]
license: MIT
> dry-run 会逐个校验,缺一个就报错(实测踩过:缺 slug → 报"缺少 slug";缺 displayName → 报"缺少 displayName")。
工作流(备料 6 步 + 发布 2 步)
备料(幂等,可重复跑)
① 读 ~/.workbuddy/skills/<name>/SKILL.md,校验并补全上述 frontmatter 字段(仅补字段,不改动正文)。
② mkdir -p "D:\skillhub发布\<name>\"(已存在则复用)。
③ 复制 SKILL.md + scripts/ 等非隐藏文件到发布文件夹(跳过 .git / __pycache__ / *.pyc / .DS_Store)。
④ 生成 D:\skillhub发布\<name>\发布信息稿.md(模板 references/publish-info-template.md,给用户参考/存档用)。
⑤ 打干净 zip 到 D:\skillhub发布\<name>.zip(顶层保留 <name>/,排除 zip 自身和发布信息稿)。
⑥ 更新 D:\skillhub发布\发布清单.md(状态=已发布·附 skillId/链接)。
发布(真·自动,2 步)
⑦ 预检:
bash
skillhub publish --dry-run "C:/Users/40280/.workbuddy/skills/<name>"
- 通过 → ✓ Dry-run passed: <name>@<version>
- 失败 → 按报错补字段(通常就是 slug / displayName / version)
⑧ 真发:
bash
skillhub publish --token skh_xxx "C:/Users/40280/.workbuddy/skills/<name>"
# 已登录态可省略 --token:
skillhub publish "C:/Users/40280/.workbuddy/skills/<name>"
# 也可用打好 zip:
skillhub publish --token skh_xxx "D:\skillhub发布\<name>.zip"
- 成功 → ✓ Published: skillId=xxxxxx
- 版本冲突 → "版本 X 已存在",把 frontmatter version 升一版再发
- Windows 路径用正斜杠或 C:/ 形式,避免 Git Bash 二次转义
完成后报告
- 物料:
D:\skillhub发布\<name>\(SKILL.md + scripts + 发布信息稿.md)与D:\skillhub发布\<name>.zip。 - 发布结果:
skillId=xxxxxx(贴回清单)。 - 平台强制安全审核:发上去后 SkillHub 自动跑 内容合规 + 漏洞扫描 + AI 安全评估,过审才公开(正常机制,非障碍,但非秒可见)。过审后把清单状态翻「已上架」+ 补链接。
安全 / 诚实计量
- API key 仅用于
skillhub login/publish --token,只存 CLI 本地 config(~/.skillhub/),绝不写进任何记忆/笔记文件、不在回复重复贴。 - 不要在上传 zip 里打包
发布信息稿.md(那是给用户参考的,不是 skillhub 要的文件)。 - 发布前确认这个 skill 是"该发的正式版",避免把草稿/测试 skill 推上去(CLI 不会替你判断内容是否就绪)。
- 若 key 疑似泄露:去 SkillHub 网页删除旧 key、重建一枚,重新
skillhub login --key 新key。