用途
publish-repo 用于把当前 Agent Skills 仓库部署到 skills.sh 生态。资料明确指出:skills.sh 没有发布 API,所谓“部署”等于一个公开、可安装的仓库,再加上一次首次安装来为目录遥测播种。该技能的作用是把这一系列动作变得有意识、可复现,而不是临时拼凑。
该技能只能通过斜杠命令调用,因为它会翻转仓库可见性,而这一操作在社交层面很难撤销——任何曾被推送过的内容都会变为可见。
何时不要使用
- 编写或修复技能 → 使用 add-skill。
- 仓库的 skills/ 下没有任何技能 → 先构建;绝不要发布空目录。
- 对已经公开的仓库做日常推送 → 直接用普通 git。
工作流程
1. 预检(硬性门槛,任一失败即停止)
工作树必须干净且已由所有者推送——该技能从不运行 git commit 或 git push;如果有未提交的更改,应停止并把清单交给所有者。检查命令包括:
git status --porcelain # 必须为空 make check # 必须以 0 error(s) 结束 npx skills add . --list # skills/ 下每个技能都被发现 gh skill publish --dry-run # 规范校验(gh >= 2.90;公开预览) python3 -c "import json; json.load(open('skills.sh.json'))"
对 gh skill 的每条警告进行分诊:补上缺失的 license: MIT frontmatter;.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 审查 + validate 检查。同时为 v* 添加标签规则集(阻止更新 + 删除),使已发布的版本不可变。
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 徽章(,默认已脚手架化);设置主页(gh repo edit --homepage,例如设为 https://skills.sh/<owner>/<repo>);提醒社交预览图(手动 UI 步骤)。
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" 意味着 frontmatter 或布局有问题——依据 make check 输出修复,绝不要盲目重构。
- 排行榜/仓库页面滞后于播种安装;几分钟后仍未出现是正常的,不是失败。
- 不要在单人仓库上启用 require-PR 规则集,如果其工作流直接推送到 main——它会阻断所有者;请使用第 5 步中的分阶段默认值。