用途
publish-repo 用于把当前 Agent Skills 仓库部署到 skills.sh 生态。该生态没有发布 API,所谓「部署」等于两件事:一是让仓库变成公开且可安装,二是完成首次安装,从而为该仓库写入目录遥测数据。本技能的作用就是把这条链路从临时操作变成有步骤、有闸门的流程。
它仅限斜杠调用:流程会翻转仓库可见性,而这一动作在社会层面很难撤销——任何曾经推送过的内容都会变得可见。
不适用的情况
- 编写或修复某个技能:应使用 add-skill。
skills/下没有任何技能:先构建,绝不要发布空目录。- 对已经公开的仓库做日常推送:直接用普通 git 即可。
工作流程
1. 发布前检查(硬性闸门,任一失败即停止)
工作区必须干净,且由仓库所有者推送完成——本技能从不会执行 git commit 或 git push;若存在未提交改动,应停止并把改动列表交给所有者。
git status --porcelain # must be empty
make check # must end: 0 error(s)
npx skills add . --list # every skill under skills/ discovered
gh skill publish --dry-run # spec validation (gh >= 2.90; public preview)
python3 -c "import json; json.load(open('skills.sh.json'))"
需逐条处理 gh skill 的所有警告:补充缺失的 license: MIT 前台信息;.claude/skills/ 的警告在此处属预期情况(这是随仓库捆绑的一手开发技能,按设计提交,不是第三方内容)。同时核对:README 目录、CHANGELOG 是否为最新;每个技能的描述是否以收益为先导(该描述就是列表页文案);最新提交的 CI 是否通过。
2. 需要人工确认的阻塞项
必须获得用户明确确认,不得自行假设:
- 全历史密钥扫描(gitleaks / trufflehog)已完成;
- 个人/私密文件审查已完成(曾经提交过的一切都会公开)。
若 $ARGUMENTS 中带有 --dry-run,在此停止并只报告就绪状态。
3. 分组
确认 skills.sh.json 中每个技能都恰好归属一个分组,且每个分组都有一句有吸引力的描述(参见 docs/deploying.md)。
4. 翻转可见性(翻转前需立即与用户确认)
gh repo edit <owner>/<repo> --visibility public --accept-visibility-change-consequences
5. 保护措施(仓库公开后才可启用)
gh api repos/<owner>/<repo>/private-vulnerability-reporting --method PUT
添加默认分支规则集。单人维护者的默认选择是:仅阻止强制推送与删除(require-PR 规则会阻断所有者直接推送的工作流);当出现外部贡献者时,再升级为 require-PR + code-owner review + validate 检查。同时为 v* 添加标签规则集(阻止更新与删除),使已发布的 release 保持不可变。
6. 发布
切出与 .claude-plugin/plugin.json 匹配的带版本 GitHub Release:
gh skill publish --tag v<version>
它会重新校验、在缺失时补上 agent-skills 主题标签,并以自动生成的说明创建 release。同时补上 skills-sh 主题:
gh repo edit <owner>/<repo> --add-topic skills-sh
7. 以消费者身份验证并写入目录种子
在本地运行,不要在 CI 中运行——CI 会禁用遥测,而首次真实安装才是让仓库进入列表的关键:
npx skills add <owner>/<repo> --list
mkdir -p /tmp/skills-verify && cd /tmp/skills-verify
npx skills add <owner>/<repo> --skill '*' -a claude-code -y
npx skills list -a claude-code
8. 收尾
README 需带 skills.sh 徽章(默认脚手架已生成):
[](https://skills.sh/<owner>/<repo>)
设置 homepage(gh repo edit --homepage,例如指向 https://skills.sh/<owner>/<repo>);提醒社交预览图需在界面中手动设置。
9. 报告
输出仓库 URL、skills.sh 页面 URL、安装命令、release 标签、已应用的保护措施、被跳过的项(及其解锁条件),并说明:skills.sh 页面会在遥测处理完种子安装后才出现(页面有缓存)。
输出规格
公开仓库可通过 npx skills add <owner>/<repo> 安装(需经真实安装验证)、PVR 已启用、规则集生效、skills.sh.json 有效且每个技能都已分组、种子安装已执行、并已明确告知用户接下来会发生什么。
注意事项
- 可见性翻转是历史层面的不可逆点——这正是第 2 步要求明确确认、且从不自我认证的原因。
npx skills add . --list若报 “No skills found”,说明是前台信息或目录布局问题——应依据make check的输出修复,绝不要盲目重构结构。- 排行榜/仓库页面相对种子安装有延迟;几分钟后仍未出现属正常现象,不是失败。
- 不要在直接向 main 推送的单人仓库上启用 require-PR 规则集——它会阻断所有者;请使用第 5 步中的分阶段默认配置。