SuperAPI AI 工具集

publish-repo

部署与运维

查看项目

更新于 10-16 07:48

技能介绍

publish-repo 用于把当前仓库部署到 skills.sh 生态。该生态没有发布 API——部署的含义是:一个公开、可安装的仓库,加上一次真实安装来为目录遥测播种。这个技能让这一系列动作变得有意识、有顺序。它只能通过斜杠命令调用,因为它会翻转仓库可见性,而这一操作在社交层面很难撤销(所有曾经推送过的内容都会变为可见)。

不适用场景

编写或修复技能 → 用 add-skill。

搭建新仓库 → 用 create-skill-repo。

skills/ 下没有任何技能 → 先构建;绝不要发布空目录。

对已公开仓库的日常推送 → 普通 git(由仓库所有者完成)。

工作流程

预检(硬性门槛——任何失败即停止):工作树必须干净且已由所有者推送——本技能从不运行 git commit 或 git push;若有未提交更改,停止并把清单交给所有者。

git status --porcelain # 必须为空 make check 2>/dev/null || python3 scripts/validate_skills.py # 仓库校验器(若存在) npx skills@latest add . --list # 发现 skills/ 下的每个技能(@latest:过期的 npx 缓存会撒谎) gh skill publish --dry-run # 规范校验(需要 gh >= 2.90;更旧版本跳过,用第 6 步的替代方案) env | grep -E 'DISABLE_TELEMETRY|DO_NOT_TRACK|^CI=' || true # 任何命中 -> 第 7 步的种子安装必须使用 env -u

skills.sh.json 若存在,必须符合 schema 形状——顶层分组(必需),每组含 title/description/skills;schema 会拒绝 groups/name 之类的未知键,且 skills.sh 会静默忽略不符合规范的文件。 逐一处理 gh skill 的每个警告:补上缺失的 license: frontmatter;当仓库有意捆绑自己的第一方开发技能时,出现 .claude/skills/ 警告是预期内的。捆绑的开发技能必须在其 frontmatter 中带有 metadata.internal: true,以便消费者安装时跳过它们(它们不应出现在 add . --list 中;维护者可用 INSTALL_INTERNAL_SKILLS=1 或 --include-internal 重新选择加入)。确认 README 目录与 CHANGELOG 是最新的,且每个技能描述以收益为导向(它就是列表文案);CI 为绿色。

人工阻塞项——需要用户明确确认,绝不假设:

已完成全历史密钥扫描(gitleaks/trufflehog);

已完成个人/私有文件审查(所有曾经提交过的内容都会公开)。 若 $ARGUMENTS 中带 --dry-run,则在此停止并报告就绪状态。

分组:确保 skills.sh.json 把每个技能恰好列在一个分组中,并为每个分组写一句有吸引力的描述——它是仓库在 skills.sh 上的落地文案。

翻转可见性(在操作前立即与用户确认):

gh repo edit <owner>/<repo> --visibility public --accept-visibility-change-consequences

保护措施(公开仓库后才能启用):

gh api repos/<owner>/<repo>/private-vulnerability-reporting --method PUT

添加默认分支规则集——单人维护者默认:仅阻止强制推送和删除(要求 PR 会阻断所有者的直接推送工作流);当有外部贡献者加入时,升级为 require-PR + code-owner 审查 + 必需检查。为 v* 添加标签规则集(阻止更新 + 删除),使发布不可变。

发布——切一个与 .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。 gh < 2.90 没有 gh skill——等效替代方案:

gh release create v<version> --generate-notes gh repo edit <owner>/<repo> --add-topic agent-skills --add-topic skills-sh

像消费者一样验证,并为目录播种。第一次真实安装才会把仓库列入目录——而 CLI 仅在 DISABLE_TELEMETRY、DO_NOT_TRACK 和 CI 变量全部完全未设置时才会报告(任何值都会禁用,即使是 0 或 false——环境字符串为真值)。在本地运行,绝不要在 CI 中运行,仅对这些命令显式取消 opt-out:

npx skills@latest add <owner>/<repo> --list mkdir -p /tmp/skills-verify && cd /tmp/skills-verify env -u DISABLE_TELEMETRY -u DO_NOT_TRACK npx skills@latest add <owner>/<repo> -a claude-code -y # 不要用 --skill '*':通配符会选入内部开发技能 npx skills list -a claude-code

然后确认列表:curl -sIL https://skills.sh/<owner>/<repo> 在有效播种后几分钟内返回 200(规范 URL 在 www.skills.sh 上为小写;搜索 API 滞后于页面)。约 15 分钟后仍为 404 意味着遥测从未触发——重新检查环境,不要等“缓存”。 要发布多个仓库?一次播种一个,间隔约 5 分钟,并在下一个之前确认每个页面:来自同一台机器的多个未列出仓库的突发安装事件会被服务端限流——安全审计仍会运行,但列表永远不会出现,且在突发期间重新播种无效。单个间隔事件约 5 分钟内列出。

润色:README 徽章 skills.sh; 通过 gh repo edit --homepage 设置主页(例如 skills.sh 页面);社交预览图(手动 UI 步骤——提醒所有者)。

报告:仓库 URL、skills.sh 页面 URL、安装命令、release 标签、已应用的保护措施、任何跳过项及其解锁条件,以及说明:skills.sh 页面仅在遥测处理种子安装后出现(页面有缓存)。

输出规范

公开仓库可通过 npx skills add <owner>/<repo> 安装(经实际安装验证),PVR 已启用,规则集生效,分组有效,release 已切,种子安装已执行,所有者被告知接下来确切会发生什么。

注意事项

可见性翻转是历史记录的不归点——第 2 步要求明确确认,绝不自我认证。

npx skills add . --list 报告“No skills found”意味着 frontmatter 或布局有问题——通过仓库校验器的输出修复,绝不盲目重构。

遥测 opt-out 会静默杀死列表:DISABLE_TELEMETRY 或 DO_NOT_TRACK 设为任何值(即使是 0/false)都会停止安装报告——页面随后永远 404,而每次安装都“成功”。始终通过 env -u DISABLE_TELEMETRY -u DO_NOT_TRACK 播种。

固定 npx skills@latest——npx 会乐于复用过期的缓存 CLI 版本。

徽章端点(skills.sh/b/...)即使对未列出仓库也返回 200——它证明不了什么;只有仓库页面 URL 才能证明。

页面在有效种子安装后几分钟内出现;搜索 API 和排行榜滞后更久。超过约 15 分钟仍 404 = 遥测被抑制——或者是突发:从一台机器连续播种多个未列出仓库会被限流;把播种间隔约 5 分钟,一次一个仓库。

Agent 执行环境可能会权限阻止可见性翻转和 release 命令(公开表面操作):把确切命令交给所有者自行运行,而不是重试。

机器上没有 Node?消费者验证和种子安装必须在有 Node ≥18 的地方运行——将其报告为待处理,绝不报告为已完成。