用途:这是 Squad 项目的发布运行手册(runbook),要求任何代理在发布 Squad 前必须按清单执行,不得即兴发挥。它源于 v0.8.22 发布事故(4 段版本号被 npm 破坏、草稿发布未触发 publish、NPM_TOKEN 类型错误、latest dist-tag 损坏 6 小时以上)。
主要能力与流程:
- 发布前校验:版本号必须是 3 段 semver(major.minor.patch)或预发布格式(major.minor.patch-tag.N),4 段版本无效;用 node -p "require('semver').valid('0.8.22')" 校验,返回 null 则停止。NPM_TOKEN 必须是 Automation 令牌(无需 2FA),用 npm token list 检查,User 令牌会在 CI 报 EOTP。确保在 main 分支、工作区干净、标签不存在,并设置 SKIP_BUILD_BUMP=1 跳过 bump-build.mjs。
- 发布工作流:用 npm version $VERSION --workspaces --include-workspace-root --no-git-tag-version 同步更新 3 个 package.json;提交并打 v 前缀标签推送;用 gh release create 创建已发布(非草稿)的 GitHub Release;监控 publish.yml 工作流;用 npm view 和 npm dist-tag ls 验证发布;在临时目录做安装冒烟测试;最后将 dev 分支同步到下一个预览版本。
- 回退与故障处理:提供 npm unpublish(24 小时限制)、npm deprecate、删除 Release 与标签、git revert 等回退步骤,并列出 EOTP、404 传播延迟、版本不匹配、4 段版本被破坏、草稿未触发工作流等常见故障及修复方式。
适用场景:Squad 项目维护者或代理执行正式发布、预览发布、手动发布(workflow_dispatch)及回退时使用。
限制:该技能高度绑定 Squad 的仓库结构、包名(@bradygaster/squad-sdk、@bradygaster/squad-cli)与 CI 配置,不适用于其他项目;npm unpublish 有时间限制且会烧毁版本槽位,应优先使用 deprecate 加热修复。资料未提供该技能的安装方式、收费或平台信息。