skillhub-auto-publish — 全自动一键发布到 SkillHub
用途
将任意本地 Skill 目录一键发布到 SkillHub 社区平台(https://skillhub.cn)。Token 已预配置,全程无需手动登录。
何时使用
- 用户说"发布技能"、"上传到 SkillHub"、"publish skill"
- 用户完成技能开发后想一键分享到社区
- 用户想更新已发布的技能
前置条件
- SkillHub CLI 已安装于
~/.skillhub/cli/skills_store_cli.py - Token 已预配置(存放在
~/.skillhub/credentials.json) - Python:
C:\Users\wlb\.workbuddy\binaries\python\versions\3.13.12\python.exe
工作流程(严格按顺序执行)
Step 1:确定要发布的技能目录
若用户明确指定了技能目录,直接使用。否则根据上下文推断(当前正在编辑的技能目录),或询问用户。
Step 2:确保 CLI 和登录就绪
运行自动准备脚本:
"C:\Users\wlb\.workbuddy\binaries\python\versions\3.13.12\python.exe" "C:\Users\wlb\.workbuddy\skills\skillhub-auto-publish\scripts\auto_prepare.py"
该脚本自动完成:
- 检查 CLI 是否存在,不存在则自动下载安装
- 检查登录状态,未登录则自动用预配置 token 登录
- 输出当前登录用户信息
若登录失败(token 过期等),提示用户到 https://skillhub.cn 重新生成 token。
Step 3:检查并补全 SKILL.md frontmatter
用 Read 工具读取目标技能的 SKILL.md,检查 YAML frontmatter 是否包含 SkillHub 要求的必填字段:
| 字段 | 要求 | 说明 |
|---|---|---|
slug |
必填 | kebab-case,3-128 字符,如 my-awesome-skill |
version |
必填 | SemVer 格式(X.Y.Z),如 1.0.0 |
displayName |
必填 | 显示名称,如 "我的技能" |
name |
必填 | 技能标识符 |
description |
必填 | 技能描述(英文为主) |
summary |
选填 | 简短中文摘要 |
slug 规则:只能小写字母、数字、连字符,以字母/数字开头和结尾。
version 规则:严格 X.Y.Z 格式。
若缺少必填字段,用 Edit 工具自动补充:
- 缺 slug → 用 name 字段转 kebab-case 作为 slug
- 缺 version → 设为 1.0.0
- 缺 displayName → 用 name 字段值或目录名
- 缺 summary → 从 description 截取前 80 字
Step 4:检查文件合规性
用 Glob 检查目标技能目录:
pattern: "**/*.bat"
path: <技能目录>
规则:
- 禁止 .bat 文件 → 用 Bash 重命名为 .txt
- 禁止 .ps1 文件 → 用 Bash 重命名为 .ps1.txt
- 排除目录自动忽略:.git、.idea、.vscode、node_modules、__pycache__
- 排除文件自动忽略:*.pyc、.DS_Store、Thumbs.db
- 必须包含根目录的 SKILL.md
若有 .bat/.ps1 文件被重命名,同步更新 SKILL.md 中对这些文件的引用路径。
Step 5:执行发布
cd "C:\Users\wlb\.workbuddy\.skillhub\cli" && "C:\Users\wlb\.workbuddy\binaries\python\versions\3.13.12\python.exe" skills_store_cli.py publish "<技能目录绝对路径>" --changelog "<变更说明>"
变更说明格式:"<动作>: <简述>",如 "feat: 新增自动登录功能" 或 "update: 优化发布流程"。
若此前该技能未发布过,使用 "init: 首次发布"。
Step 6:报告结果
成功输出示例:✓ Published: skillId=12345 status=success
提取 skillId,告知用户:
- 发布成功的技能名称和版本
- SkillHub 上的审核状态(新技能需平台审核)
- 可在 https://skillhub.cn "我的技能" 页面查看
常见错误处理
| 症状 | 原因 | 解决 |
|---|---|---|
未登录 |
Token 过期 | 提示用户到 skillhub.cn 重新生成 token |
SKILL.md 缺少 slug |
frontmatter 不完整 | 执行 Step 3 自动补全 |
slug 不合法 |
格式错误 | 转为小写 kebab-case |
HTTP 401 |
Token 无效 | 重新生成 token |
HTTP 429 |
限流 | 等待 30 秒后重试 |
| 上传被拒 | 含 .bat 文件 | 执行 Step 4 重命名 |
技术参考
- API Host:
https://api.skillhub.cn - 发布端点:
POST /api/v1/community/skills/publish - 认证方式:
Authorization: Bearer skh_xxx - 凭证存储:
~/.skillhub/credentials.json
更新已发布的技能
若技能已发布过,只需递增 version 字段(如 1.0.0 → 1.0.1),再次执行发布流程即可。平台会识别为版本更新。