SuperAPI AI 工具集

auto-ship

部署与运维

查看项目

更新于 10-16 06:27

技能介绍

用途

Auto Ship 用于把一项已经“验证通过”的变更,以有纪律的方式推进到“已发布”状态。它的核心价值在于:让发布是“可证明已就绪”的,而不是因为跳过了门禁而“看起来就绪”。

主要能力

  • 发布前门禁(fail closed):运行常设的就绪门禁,任何未运行或未通过的门禁都算作 BLOCKER,包括:
    • 最终校验(final validate):在集成状态上运行整套 typecheck+lint+test,RED 或未运行即阻塞。
    • 评审干净(review clean):auto-review 中已确认的阻塞性发现已解决,否则阻塞。
    • 安全(security):审查不可信输入/认证/数据处理,无泄露密钥,依赖已审计。
    • 可观测性(observability):新增关键路径有日志/指标/追踪。
    • 回滚(rollback):任何有风险的变更都有回滚路径(开关、回退、分阶段发布、迁移回退)。
    • 文档(docs):用户可见/API 变更已记录,重要决策有 ADR。
  • 对抗性验证:对“可以发布”这一总体结论使用 adversarial-verify,让怀疑者尝试找出“名义上绿色”的门禁,并如实报告每个门禁的真实状态(已运行且通过 / 失败 / 未运行)。
  • 准备发布产物:原子提交、按项目方案(semver)做版本号提升、基于真实提交/差异生成变更日志与发布说明、最终确定文档。
  • 打开 PR / 暂存发布:默认通过 gh 推送分支并打开 PR(安全、可逆、自主完成);若走部署路径,则先呈现分阶段计划(先特性开关、增量放量、监控指标、回滚触发条件),部署本身需人类明确签字。
  • 报告:关闭检查点并报告门禁结果、发布产物、PR 链接/发布状态、回滚路径以及等待人类签字的事项。

使用方式

该技能按阶段运行:

  • Phase 0:预检——解析范围($target,默认当前分支)与要发布的变更(diff + commits);确认状态(干净的工作树、正确分支、构建检查点无阻塞任务);打开 checkpoint-resume 运行,并用 budget-guard 声明发布预算/升级点。
  • Phase 1:发布前门禁——运行就绪门禁,未运行或未通过即阻塞;用 adversarial-verify 检验总体就绪声明。
  • Phase 2:准备发布产物——组装发布内容(原子提交、版本号提升、变更日志/发布说明、文档),此阶段仍为自主、无不可逆操作。
  • Phase 3:打开 PR / 暂存发布——PR 路径默认自主完成;部署路径需在不可逆步骤前 STOP 并通过 AskUserQuestion 获得人类明确签字,部署后确认监控信号并保持回滚就绪。
  • Phase 4:报告——如实报告门禁结果、发布产物、PR 链接/发布状态、回滚路径及待人类签字事项。

适用场景

  • 需要把已验证的代码变更推进到可发布状态,并希望有可证明的就绪证据。
  • 需要确保发布前门禁真实运行、不被跳过。
  • 需要基于真实差异生成版本号、变更日志和文档。
  • 需要在部署等不可逆步骤前获得人类签字,并保留回滚路径。

限制与约束

  • 绝不把跳过/未运行的门禁当作干净;fail closed。
  • 绝不在未运行的情况下声称最终校验通过。
  • 绝不在没有人类明确批准的情况下执行不可逆步骤(部署/迁移/发布)。
  • 绝不发布没有回滚路径的高风险变更。
  • 绝不编写不基于真实变更的发布说明。
  • 优先小步、带开关、可回滚的发布,而非大爆炸式发布。
  • 该技能激活时,一个技能作用域的 PreToolUse 钩子会在每次 Bash 调用时运行 scripts/guard-ship-irreversibles.sh:普通的 git push --force(不带 --force-with-lease)和 git push --delete 会在工具层被阻止;部署本身仍由流程(Phase 3)进行人类门控。

相关参考

  • adversarial-verify(技能)——对总体“可以发布”声明施压,捕捉名义上绿色的门禁。
  • auto-review(技能)——若评审门禁尚未运行/完成,则运行/完成它。
  • checkpoint-resume(技能)——持久的发布运行状态。
  • budget-guard(技能)——人类门控部署的升级契约。

输出契约

报告内容:

  • 发布前门禁——每个门禁的真实状态(已运行且通过 / 失败 / 未运行 → 阻塞项)
  • 发布产物——版本号提升、变更日志/说明(基于真实变更)、文档
  • PR 链接或暂存发布计划 + 回滚路径
  • 等待人类签字的事项(不可逆步骤)及任何剩余阻塞项