发布技能到 SkillHub

SKILLAI 工具
AI 工具 未标注权限 许可证不明确
安装这个技能

把本地 Skill 发布/上架到 SkillHub(skillhub.cn),让其他人能搜索到并一键安装。 当用户提出以下需求时使用本技能:把技能发布出去、上架技能市场、让同事能搜到我的 skill、 分享 skill 给别人安装、发布 Skill、上传技能、skillhub publish、技能上架、 技能怎么给别人用、把 skill 打包发布、更新已发布技能的版本。 重要:技能分发平台是 SkillHub(有官方 CLI),不是 git 仓库——不要去找 git remote 或 cnb 仓库。 本技能包含:CLI 安装、登录、SKILL.md 必填 frontmatter 字段清单、ZIP 打包规范、 dry-run 预检、正式发布、以及实名认证/slug 占用等常见拦截的处理方法。

一句话选型结论

按资料字段整理

发布技能到 SkillHub是AI 工具类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类AI 工具 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_1e6fb42a/skillhub-publish
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

AI 工具
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_1e6fb42a仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791625875
正文体量26.2 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
组合多个 AI 能力

把写作、检索、总结串成一条流程。

搭工作流

把固定流程做成可重复调用的步骤。

做提示词与评测

整理提示词并对比输出效果。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在AI 工具场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
发布技能到 SkillHub当前 未标注权限 未标注 未标注 未标注 有
执行计划 只读 GitHub 仓库 151.5 万 Codex、Claude、Cursor 有
Playwright MCP 测试 浏览器控制 ClawHub 市场 136.5 万 OpenClaw 有
完成前的验证 未标注权限 GitHub 仓库 131.9 万 Codex、Claude、Cursor 有
子 Agent 驱动开发 只读 GitHub 仓库 131.2 万 Codex、Claude、Cursor 有
前端设计 执行命令 GitHub 仓库 125.6 万 Codex、Claude、Cursor 有

SKILL.md 全文

26.2 KB
模型实际读到的说明书原文,来自技能仓库

SkillHub Publish

将任一 skill 准备好发布到 SkillHub。五步流水线:出发前确认 → 七维审计 → 确认修复 → 脱敏生成 → 打包交付;可选 Phase 5 经官方 CLI 自动上传(默认人工,逐字确认后才发布)。当前仅支持 WorkBuddy 发布。

> 文档入口:README.md(用户文档)| DESIGN.md(架构决策)| CHANGELOG.md(版本历史)
> 文件结构详见 README.md。

使用方式

发布 {skill名称} [版本号]

示例:发布 skill-creator-king v3.8.0

输入

  • 目标 skill 名称(必填):skill 目录名(平台根目录下的 skills/{name}/)
  • 目标版本号(可选):不提供时从 SKILL.md frontmatter 读取

目标路径:~/.workbuddy/skills/{name}/。用户显式提供本地 skill 目录时使用该目录;发布目标仍为 WorkBuddy。

依赖:Python 3.9+、Git(解析各级 .gitignore)。缺少依赖则停止并报告,不降级为未过滤复制。


Phase 0: 出发前确认(Pre-flight Checklist)

目标:在动手之前确认所有前提条件,避免走一半发现走不通。

步骤 0.1: 识别目标

  1. 在 ~/.workbuddy/skills/{name}/ 定位目标;如用户明确给出目录则使用该目录。
  2. 确认目标是目录,且包含可读的 SKILL.md。
  3. 读取 frontmatter,获取当前版本号;用户未指定时使用当前版本号。
  4. 目标平台固定为 WorkBuddy,无需询问平台。
  5. 以当前实际加载的本工具 SKILL.md 所在目录定位 scripts/ 和 references/;不得从目标 skill 的路径推导工具路径。资源缺失则停止并报告。

步骤 0.2: 出示机票

以固定格式向用户展示出发前状态:

🎫 出发前机票
━━━━━━━━━━━━━━━━━━━━━━
Skill:     {name}
当前版本:   {current_version}
目标版本:   {target_version}
目标平台:   WorkBuddy
目录文件数: {file_count}
SKILL.md:  ✅/❌(存在/缺失)
DESIGN.md: ✅/❌
README.md: ✅/❌
CHANGELOG: ✅/❌
状态:      ✅ 可以出发 / ❌ 阻塞(原因)

阻塞条件:
- SKILL.md 不存在 → 阻塞
- 目标 skill 目录不存在 → 阻塞
- README.md 不存在 → 警告但允许继续

步骤 0.3: 凭据前置扫描(机械、先于一切读取)

在 AI 打开目标 skill 的任何文件之前,运行本 skill 自带的本地扫描器:

python3 "{本skill目录}/scripts/secret_scan.py" "{target_skill_dir}"

路径解析规则:使用步骤 0.1 确定的本工具实际目录,与被发布 skill 的位置无关。

为什么这一步必须在最前:内容一旦进入模型上下文就已离开本机——「读出来再判断是不是凭据」本身就是泄漏动作。因此凭据检测只能由本地脚本做、在任何读取之前做;AI 全程只见掩码引用(文件、行号、形态族、长度),永远不见原值,也不得为「验证真伪」去打开命中文件。

退出码语义:
- 0 干净 → 继续后续 Phase
- 1 发现候选 → 阻断审计:把掩码发现列表原样交给用户,请用户本地核实并处置(移入外部凭据源或换成文档化占位符),处置后重跑本步;在用户确认处置完成前,不得进入 Phase 1,不得打开 files with hits 列出的任何文件
- 2 扫描器自身出错 → 报告错误并停止,不允许以「人工通读」顶替

注意:Phase 3.5 的脱敏替换只保护发布包,不保护上下文——凭据防线是本步。


Phase 1: 七维审计(只读)

目标:在不修改目标 skill 任何文件的前提下,进行七维度全面审计。输出分 P0/P1/P2 三级。

维度 0: 后台兼容性扫描 — 正则卡死预检 🆕

触发条件:目标 skill 包含 README.md 或 DESIGN.md。

执行:运行本 skill 自带的 regex-hang-check.py(位于本 skill 目录的 scripts/ 下,按当前平台实际安装路径定位):

python3 "{本skill目录}/scripts/regex-hang-check.py" "{target_skill_dir}"

路径解析规则:使用步骤 0.1 确定的本工具实际目录,与被发布 skill 的位置无关。

检查范围:在独立子进程中执行内置的历史 validate.py 文件树正则,超时后终止并回收子进程。它用于发现历史正则的回溯风险,不能证明线上当前审核器一定卡死或一定通过。

判断标准:
- 任意正则超时(>2 秒)或报告 ⛔ → P0,"README/DESIGN 触发内置历史正则超时"
- 报告 ⚠️(>0.5 秒)→ P1,"有回溯风险,建议精简"
- 报告 ✅ → 本项通过;退出码 2 表示无文档可检查,记录跳过;其他执行错误阻塞,不能当作通过

修复方案:精简 README/DESIGN 中的文件树,将同类文件合并:├── ... (12个文件) 替代逐行列出。

维度 1: 文件结构完整性

检查标准 skill 文件是否存在:SKILL.md, DESIGN.md, README.md, CHANGELOG.md

  • 缺失关键文件 → P0
  • 缺失非关键文件 → P1

维度 2: Frontmatter 字段检查

检查 SKILL.md frontmatter 字段:

字段 严重性 说明
name P0 必填,与原始 skill 名称一致;发布目录的版本或时间戳后缀不参与比较
version P0 必填,语义化版本;顶层或 metadata 嵌套均可(实测官方 CLI 认可嵌套读取)
description P0 YAML 解析后必须是非空字符串
template P1 推荐填写
triggers P2 推荐至少3个中英文触发词
token_budget P2 推荐声明

检查占位符:"待补充"、"TODO"、"FIXME"、"TBD" 等 → P1

维度 3: 内容质量检查

  • frontmatter 必须能被 YAML 安全解析,description 必须为非空字符串 → P0
  • description 按解析后的值去除首尾空白检查;应为单个文本段。源码可使用普通字符串、引号或 > / >- 折叠块,不按源码行数判错;值中仍有换行则列 P1,按确认清单整理
  • description 长度 80-200 字 → P1
  • description 人机双读体检 → P1:发布平台会直接展示该字段,但它同时是 AI 触发契约。要求三段式——首句为面向人的价值主张(回答「这工具帮我做什么」),中段核心能力,触发词集中在 Use when 尾段。动词堆砌开头、实现约束先于用户价值、缺 Use when 尾段 → 提示按三段式重写。落盘形式要求:Use when 尾段独立成段——folded 块中以两个空行与人读段分隔(单空行被 YAML 折叠为单个换行,无法按空行分切;两空行折叠为空白分隔,解析结果中机读段独占一行且人读/机读可按空行分切)
  • README.md 是否包含"适合谁"/"快速开始"章节 → P2
  • CHANGELOG.md 是否有最新版本的条目 → P1

维度 4: 版本一致性检查

交叉校验以下文件中的版本号:
- SKILL.md frontmatter version(顶层或 metadata 嵌套)
- DESIGN.md 版本号
- README.md 版本号
- CHANGELOG.md 最新条目版本号

不一致 → P0

维度 5: 安全扫描

扫描所有文件(scripts/ 下的 .py/.sh 文件深度检查):

  • 危险清理命令(如递归删除)未经保护 → P0
  • 硬编码 API key / token / secret → P0
  • 通过 subprocess 模块或 system 级调用执行外部命令 → P1
  • 网络请求到非标准域名 → P1
  • eval / exec 动态执行调用 → P1

维度 6: 外部依赖检查

  • 脚本引用了不在标准库中的 Python 包 → P1
  • SKILL.md 引用了不存在的 skill → P1
  • 引用了未声明的第三方工具(如 CLI 工具) → P2
  • frontmatter 中 bundled_files 引用的底座文件不存在 → P1
  • bundled_files 中底座文件比内嵌内容新(内容未同步)→ P2

输出格式

🔍 七维审计报告 — {skill_name} v{version}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
P0(必须修复): {count} 项
P1(强烈建议): {count} 项
P2(可选优化): {count} 项

各维度详情...

Phase 2: 讨论与确认

目标:用户审核审计结果,逐项决定修复策略。

> ⚠️ 执行约束:Phase 2 的 4 个步骤(2.1→2.2→2.3→2.4)必须逐个向用户确认,不可合并为一次交互。每步等用户回应后再进入下一步。

步骤 2.1: 展示审计结果

以结构化表格展示所有 P0/P1/P2 项,每项包含:
- 严重性标签
- 所属维度
- 问题描述
- 建议修复方案
- 预估影响

步骤 2.2: 逐项确认

用户决定:
- 修:接受建议修复方案
- 跳过:该问题不修复(P2 可跳过,P0 不可)
- 自定义:用户指定不同修复方案

P0 项不可跳过——这是硬约束。

步骤 2.3: 版本号确认

询问用户目标版本号:
- 保持当前版本(小修)
- 升 patch(bugfix)
- 升 minor(新功能/改进)
- 升 major(breaking change)

步骤 2.4: 生成修复清单 + 发布渠道确认

汇总所有"修"项的修复计划,用户确认后进入 Phase 3。

发布渠道二选一(必问,不可由 AI 代答或从其他指令推断):随修复清单一并询问——

  • 网页手动上传:流程终点为 Phase 4 交付报告,用户自行上网页发布
  • CLI 自动上传:Phase 4 后接 Phase 5(登录态前置检查此时做),5.3 逐字终确认仍不可省

用户仅在本次会话明确选定后才按该渠道走到底;未回答渠道问题不得进入 Phase 3。「打包发布」「发更新」等指令只授权打包与发布意图本身,不隐含渠道选择。


Phase 3: 自动修复 + 生成物料

目标:按确认清单自动修复 + 生成标准发布物料。所有操作在桌面发布副本上进行。

步骤 3.1: 创建发布副本

前置 — 共用底座同步:读取目标 skill 的 SKILL.md frontmatter 中 bundled_files 字段。若存在,对每个文件:读取底座文件内容,计算 hash 或关键词特征,与 SKILL.md 中的内嵌内容对比。若底座比内嵌内容新 → 提示用户「⚠️ {文件名} 已更新,内嵌内容可能过期。是否需要手动同步后再发布?」。用户选择「先同步」→ 停止发布流程,等用户更新。用户选择「跳过」→ 标注「⚠️ {文件名} 可能过期」,继续发布。无 bundled_files 则跳过此步。

  1. 目标为 ~/Desktop/{skill_name}-v{version}/。目标若已存在(包括链接),不得复用、合并或删除;改用带时间戳的新目录,并在交付报告中使用实际路径。
  2. 调用本工具的打包脚本,路径作为独立参数传递:

bash python3 "{本skill目录}/scripts/package-skill.py" "{target_skill_dir}" "{desktop_dest}"

脚本使用隔离 Git 索引解析源目录及子目录的 .gitignore,支持否定规则;不读取用户全局 Git 忽略设置,也不修改源目录。忽略规则同样作用于源仓库已跟踪文件。固定排除 .git、.gitignore、.gitkeep、.skillignore、__pycache__、.pyc/.pyo 和 .DS_Store,不复制空目录。拒绝未排除的符号链接及不支持的文件类型;失败则阻塞交付。
3. .skillignore 已停用。若目标仅有该文件,先报告并将其规则迁移到发布用的源副本 .gitignore,不得覆盖已有规则,经检查后再打包;不修改原始目录,也不能静默忽略其规则。新项目参考 templates/gitignore-template.md。
4. 文件类型白名单预检(2026-09-26 三次 400 学费):dry-run 不查文件类型,平台只在真发时逐个报 400(LICENSE / requirements.lock / .gitignore 实测),且每次炸在终确认之后。打包后立即运行:

bash python3 "{本skill目录}/scripts/adapt_file_types.py" "{desktop_dest}"

脚本处置发布副本内的黑名单命中:无扩展名文件加 .txt、.lock 改 -lock.txt、.gitignore/.skillignore 本体及伪装(.gitignore.tmp)删除,同步包内文本引用(.md/.yaml/.yml/.txt/.sh)。内容字节不变,源仓保留原名。变更清单进交付报告;发现新的黑名单类型(真发 400 实证)时把规则补进脚本并记录学费。
5. 从发布副本的 frontmatter 移除内部字段 bundled_files。保留 WorkBuddy 的其余字段,不执行跨平台字段剥离。

步骤 3.2: 按清单修复

根据 Phase 2 确认的修复清单,逐项执行:
- 更新 frontmatter 字段
- 修复占位符
- 统一版本号
- 修复安全问题
- 补充缺失文件
- description 修复:仅修复解析失败、空值或已确认的内容问题。不得仅因单行超过 120 字符而转换格式。需要折叠块时使用 >-,写回后重新解析并核对文本含义。按三段式体检:首句价值主张(人读)→ 核心能力(人读)→ Use when 触发尾段(机读)——发布平台会直接展示该字段,机器文体上架即「文笔差」。三段式落盘形式:人读段在前,Use when 尾段独立成段(folded 块内空一行分隔,解析结果中机读段独占一行)。
- 修复结束后再次确认内部字段 bundled_files 已移除,未误删 WorkBuddy 元数据。

步骤 3.3: 生成 README.md

参考 templates/readme-template.md 格式。如果 README.md 不存在或需要更新,生成包含以下章节的完整 README:
1. 一句话概述
2. 快速开始
3. 核心功能
4. 触发方式
5. 适合谁
6. 边界与注意事项
7. 文件结构

步骤 3.4: 生成 SkillHub 描述

参考 templates/description-template.md 格式。生成 80-200 字的 SkillHub 上架描述。落地方式按发布路径分流:

  • 人工上传(默认):网页上传发布副本文件并发布即可,无描述粘贴步骤——SkillHub 网页后台无描述编辑入口(2026-09-24 实证),详情页长描述由平台从包内容(README/SKILL)自动生成;描述文本随交付报告给出,供用户留档与发布后核对生成结果,不满意须改包内容(如 README 措辞)重新发布
  • CLI 自动上传(Phase 5):从描述中提炼一句话简介(含版本亮点),在步骤 5.1 以 --summary 注入发布副本 frontmatter——CLI 无描述参数,summary 是唯一随包带上去的简介;详情页长描述同样由平台从包内容生成,发布后在详情页核对,修正路径同上(改包重发,非网页编辑)

步骤 3.5: 生成版本更新说明

从 CHANGELOG.md 提取最新版本的条目,格式化为发布说明。


Phase 3.5: 内容脱敏

目标:对发布副本中的 .md 和 .yaml 文件执行内容脱敏,移除可能触发内容审核的敏感词。

步骤 3.5.1: 加载脱敏规则

按优先级加载:
1. 私有规则:~/.workbuddy/principles/sanitize_rules.yaml(用户自定义,优先)
2. 内置规则:references/sanitize_rules.yaml(通用基线,回退)

合并规则,私有规则同名覆盖内置规则。

步骤 3.5.2: 执行脱敏

对发布副本中所有 .md 和 .yaml 文件:
1. 读取文件内容
2. 按规则列表顺序应用正则替换
3. 写回文件

步骤 3.5.3: 脱敏报告

输出脱敏执行报告:

🛡️ 内容脱敏报告
━━━━━━━━━━━━━━━━━━
扫描文件: {count}
命中规则: {count}
替换次数: {count}

各规则命中详情...

注意:脱敏仅操作发布副本,不影响原始 skill 文件。脱敏替换只保护发布包,不保护上下文——凭据防线是步骤 0.3 的前置扫描。


Phase 4: 验证与交付

目标:最终验证发布包完整性,交付给用户。

步骤 4.1: 最终验证

对发布副本复查全部 P0 和本次已修复项;重新解析 frontmatter,确认目标版本、description 和 WorkBuddy 字段正确,内部 bundled_files 已移除。检查必需资源引用未因打包排除而丢失;失败则不得输出“发布包就绪”。未修复 P1/P2 如实记录。

步骤 4.2: 生成交付报告

📦 发布包就绪
━━━━━━━━━━━━━━━━━━━━━━━━━━━
位置:       {实际发布目录}
目标平台:   WorkBuddy
文件数:     {count}
审计状态:   ✅ P0 全部通过 / ⚠️ 有P1未修复
脱敏状态:   ✅ 已执行 / ⏭️ 未命中规则
元数据:     ✅ 已保留 WorkBuddy 字段并移除内部字段

📋 变更清单
- [修复] ...
- [生成] README.md
- [生成] SkillHub 描述

📤 下一步(网页手动渠道;CLI 渠道见下方分流注)
1. 打开 SkillHub 网页版
2. 上传实际发布目录中的全部文件并发布
3. 发布后核对详情页(长描述由平台从包内容生成,网页无描述编辑入口)

💡 或回复「自动发布」,经官方 CLI 上传(需已完成 skillhub login;正式发布前仍会向你逐字确认)

> 渠道分流(2026-09-26):步骤 2.4 已选「CLI 自动上传」时,「下一步」替换为——1. 个人中心 → 我的 Skill 查看审核进度;2. 审核通过后核对详情页长描述与 summary 卡片简介,并省略自动上传提示行(渠道已定,不再二次提示)。

步骤 4.3: 交付

  • 报告发布包位置
  • 提供 SkillHub 描述文本(供留档与发布后核对;网页无粘贴入口)
  • 如有未修复的 P1/P2,明确提示
  • 交付报告「下一步」中以静态一行提示自动上传选项(见 4.2 模板)——不主动追问、不重复提示、不诱导
  • 若用户已显式要求「自动发布/自动上传」(含看到提示后回复触发)→ 进入 Phase 5;否则到此结束

Phase 5: 自动上传(可选,默认跳过)

目标:仅在用户显式要求「自动发布/自动上传」时,通过 SkillHub 官方 CLI 上传发布副本。默认终点仍是 Phase 4 的发布包交付。

进入条件(满足其一):①步骤 2.4 用户明确选定「CLI 自动上传」渠道;②用户明确说出「自动发布」「直接发上去」等意图(包括看到交付报告的静态提示行后回复触发)。否则本 Phase 整体跳过。安全闸门不在入口可见性,在步骤 5.3 的逐字终确认。

凭据铁律:API Key 永不进入上下文。login 由用户在终端自行执行,或由脚本读取环境变量 $SKILLHUB_KEY;AI 不读取、不打印、不转述 key 值,命令输出含 key 时按掩码处理。

步骤 5.0: 前置检查

  1. CLI 存在性:command -v skillhub 或 ~/.local/bin/skillhub --version。缺失 → 出示安装命令并停止,不代装:

bash curl -fsSL https://skillhub.cn/install/install.sh | bash -s -- --cli-only

用户装完回报 command not found 时:引导新开终端窗口,或用全路径 ~/.local/bin/skillhub 验证(安装路径在 ~/.local/bin,需 PATH 生效)。

  1. 登录态:skillhub auth whoami 成功(输出 userId/handle/role)。失败 → 向用户出示下方首次发布决策树并停止,不得以「先发了试试」降级:

🔑 首次发布引导(API Token 获取) ━━━━━━━━━━━━━━━━━━━━━━ 1. 浏览器打开直链:https://skillhub.cn/dashboard/keys ├─ 被弹回首页 → 未登录:右上角「登录」,手机号+验证码 │ (首次登录自动注册),登录后重开直链 ├─ 页面在、但没有「创建 API key」按钮 → 实名认证未完成: │ 右上角头像 → 个人中心 → 实名认证(人脸核身,可手机扫码), │ 状态「已认证」后重开直链 └─ 页面正常 → 左下角「创建 API key」 2. 弹窗显示 skh_ 开头的完整 token——只显示这一次,立即复制 (丢失不慌:列表里删掉重建一把即可) 3. 二选一完成登录: ├─ 你在终端执行: │ skillhub login --key skh_你的token --host https://api.skillhub.cn │ 看到 ✓ Logged in as @你的handle 即完成 └─ 或提供环境变量 SKILLHUB_KEY 后让我重试 注意:SkillHub CLI 无浏览器 OAuth 登录,login 只接受 --key。

步骤 5.1: 发布元数据注入(仅发布副本)

官方 CLI 要求 frontmatter 含 slug / displayName,并建议含 summary(列表卡片简介),WorkBuddy 源文件通常没有。运行 scripts/inject_publish_meta.py(按本工具实际目录定位):

python3 "{本skill目录}/scripts/inject_publish_meta.py" "{发布副本目录}" [--slug xxx] [--display-name "名称"] [--summary "一句话简介"]
  • 缺省值取 frontmatter 的 name。已发布过的 skill 必须与线上 slug 一致才能发更新——不确定时先去线上详情页核对,再用 --slug 显式指定;displayName 建议用线上中文显示名。
  • summary 由 Agent 按 Phase 3.4 产物提炼提供(一句话、含版本亮点);缺失时脚本只警告不阻断——但走自动线时应提供,否则线上详情页沿用旧描述,叙事不更新。
  • 只补缺失字段,已有字段不动(幂等);只动发布副本。
  • 退出码非 0 → 报告并停止。

步骤 5.2: dry-run 守门

skillhub publish "{发布副本目录}" --dry-run

失败 → 原样转述错误并停止;不擅自改动字段后重试。

步骤 5.3: 发布前终确认(不可省略)

展示:slug、version、changelog 摘要、目标 host(api.skillhub.cn)。用户逐字回复「发布」才继续;其他任何回应(含沉默、犹豫、反问)都保持不发布。此确认不可与 Phase 2 的确认合并。

步骤 5.4: 正式发布

skillhub publish "{发布副本目录}" --changelog "{CHANGELOG 最新版本条目摘要}"

步骤 5.5: 输出与错误处置

成功输出:

🚀 已提交发布
━━━━━━━━━━━━━━━━━━
slug:    {slug}
版本:    {version}
状态:    pending_review(审核中)
下一步:  个人中心 → 我的 Skill 查看审核进度;CLI 不自动上传图标,无 iconUrl 时使用默认占位图

错误处置表:

错误 含义 处置
401 invalid api key token 失效/被撤销 网页重建 token,重新 login
403 未完成实名认证 回网页完成人脸核身后重试
409 slug 冲突 slug 被他人占用 更换 slug;若是本人资产,核对是否登错账号
429 平台限频 约 1 分钟后重试一次
400 不允许的文件类型 文件名/后缀不在平台白名单 按下方「400 文件类型处置」执行

400 文件类型处置(2026-09-26 定):平台一次只报一个坏文件,修复后重发是确定性动作,不占重试额度。处置 = 在发布副本内按 adapt_file_types.py 的同一规则改名(黑名单本体则删除)+ 同步包内引用,然后重新 publish;变更如实记入结果报告。同时把新类型补进脚本黑名单(只增不减需有真发 400 实证)。

终确认后自动适配的边界(A′ 枚举白名单,2026-09-26 觉者定):终确认的授权覆盖达成已确认目标所必需的枚举内机械适配;枚举只有一项——文件改名到平台白名单后缀(含引用同步)。硬性不变量,违任一条必须回来问:
- 内容零改动(改名 ≠ 改写)
- 对外文案(summary / changelog / description)一字不动
- 版本号不动

枚举外的一切(含措辞调整、字段增删、依赖变更)→ 回报用户,得其确认再动。原则一句话:传输层适配可自动,内容层决策必回问。

其他错误:保留原始输出,报告并停止;任何错误未改动原样重试不超过一次(本地修复后的重发见「400 文件类型处置」,不属此类)。


Output

每次发布流程结束,输出以下交付物:

📦 发布包就绪
━━━━━━━━━━━━━━━━━━━━━━━━━━━
位置:       {实际发布目录}
目标平台:   WorkBuddy
文件数:     {count}

📋 变更清单
- [修复] ...
- [生成] README.md
- [生成] SkillHub 描述

📤 下一步
1. 打开 SkillHub 网页版
2. 上传文件并发布
3. 发布后核对详情页(长描述由平台从包内容生成,网页无描述编辑入口)

💡 或回复「自动发布」,经官方 CLI 上传(正式发布前仍会向你逐字确认)

> 渠道分流(2026-09-26):步骤 2.4 选定 CLI 自动上传时,Output 的「下一步」替换为——1. 个人中心 → 我的 Skill 查看审核进度;2. 审核通过后核对详情页长描述(平台从包内容生成)与 summary 卡片简介,并省略自动上传提示行(已在渠道内)。网页手动渠道维持上方模板原样。


行为契约

不越界

  • 不修改原始 skill 目录中的文件(所有操作在桌面副本)
  • 默认不自动发布:Phase 5 仅在用户显式要求时进入,正式发布前须逐字确认
  • 不删除原始文件

不编造

  • 生成的 README 基于 SKILL.md + DESIGN.md 的实际内容
  • 无法从源文件推导的内容 → 标记 <!-- TODO: 请补充 -->
  • 审计报告仅报告事实

安全第一

  • P0 安全项不可跳过
  • 脱敏规则优先使用用户私有规则
  • 发布副本在桌面,不接触受保护路径
  • API Key 永不进入上下文:login 由用户终端执行或脚本读环境变量,AI 不见值

常见问题

5 问
答案由本站依据条目字段整理
发布技能到 SkillHub怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_1e6fb42a/skillhub-publish。安装方式为未标注。装完刷新技能列表或重开客户端。

发布技能到 SkillHub支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

发布技能到 SkillHub权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

发布技能到 SkillHub收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

发布技能到 SkillHub用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。