release-readiness

发布前的准出检查与发布计划:版本冻结、发布评审、构建与配置差异、升级脚本顺序、灰度与生产验证、回滚触发条件与演练。当用户要发布上线、准备发版、写发布说明或部署手册、做上线前检查、评估能不能发、安排灰度、设计回滚方案、版本冻结或冻结后变更时使用。本 skill 产出可评审的发布材料并给出明确的「可以发 / 不能发」结论与阻塞项。不要用于:① 推送代码到远程(用 push-remote);② 审查代码

SKILL.md

GitHub

发布准备与准出检查

把"这次到底能不能发"变成一个有证据、可评审的结论,而不是一句"应该没问题"。发布是整个生命周期里唯一不可轻易撤回的动作,因此本 skill 的核心不是写文档,而是把不能发的理由在发之前找出来。

先确定任务边界

  • 本 skill 产出发布材料并给出准出结论。不直接执行部署、不改生产配置、不动生产数据,除非用户明确要求并逐项授权。
  • 发布材料以文档形式交付,命名遵循 .docs/60-发布部署/ 的既有规范(见下文"交付内容")。
  • 回滚能力是准出的硬条件:如果这个版本需要回滚能力,而回滚方案没有被实际验证过(演练或等价证据),准出结论必须写"不能发",不能写成"建议补充演练"。缺少回滚路径的发布是在赌运气。
  • 涉及库表变更时,先确认 database-migration 已给出迁移与恢复口径,本 skill 只负责把它排进发布顺序与回滚路径。

准出检查路径

  1. 固定发布范围。 明确版本号、目标环境、包含的需求或缺陷编号、以及不包含什么。用 git log --oneline <上个发布点>..HEAD 或等价方式列出这次发布实际带上的提交。范围说不清的版本不准出。
  2. 版本冻结。 记录代码基线(提交 SHA 或 tag)与冻结时间点;冻结之后进入的每个变更都要有变更单与理由,并重新评估是否需要重跑验证。冻结后变更清单为空,是准出结论可以干净成立的前提。
  3. 逐项过准出清单,每项要么给证据、要么进阻塞项:
    • 质量门:约定的测试与检查是否全绿,最后一次运行对应的是哪个提交。
    • 构建产物:产物从哪个提交构建、校验值是否与评审时的基线一致。
    • 配置与环境差异:相对上一个版本的配置项增删改、依赖的服务与中间件版本、环境变量与密钥的来源(只写来源,不写值)。
    • 库表与数据:迁移脚本、执行顺序、是否向前兼容旧版本代码、回填耗时与失败处理。
    • 观测准备:这次发布需要重点盯哪些指标与日志,观测窗口多长,由谁看。缺观测手段的发布等于盲发。
    • 回滚:回滚触发条件、回滚步骤、回滚需要多久、回滚本身有什么副作用(例如字段已删除则无法靠反向迁移恢复数据)。
  4. 判定发布形态并写清顺序。 全量还是灰度、灰度分几批、每批的观察指标与放量条件、失败时停在哪一步。升级脚本要给出执行顺序与幂等性结论:重复执行会怎样、中途失败能否续跑、新旧版本并行期间读写是否都成立。
  5. 给出准出结论。 明确写「可以发」或「不能发」,并列阻塞项清单:每条写阻塞原因、影响、需要谁做什么才能解除。没有阻塞项时才写可以发,不要用"风险可控"这类无证据表述代替结论。

对回滚方案的额外要求

回滚最容易在纸面上成立、在现场失效,因此必须满足:

  • 触发条件是可观测的:写成"错误率超过某阈值持续多久""核心接口 P95 高于某值"这类可判断的条件,而不是"感觉不对"。
  • 步骤是可执行的:每一步写清命令或操作入口、执行人角色、预计耗时、以及执行后如何确认这一步生效。
  • 有不可回滚的部分就提前声明:删字段、删表、数据清洗、对外发布过的消息或文件,这些往往无法靠回滚恢复。这类内容必须单独列出并给出前向修复路径,不能笼统写进"回滚即可"。
  • 有演练或等价证据:至少在预发环境跑过一次回滚,或给出足以说明回滚可行的证据。只有步骤没有验证的预案,要如实标注为"未验证"。

交付内容

用简洁中文给出:

  1. 准出结论:可以发 / 不能发(+ 阻塞项清单与解除条件)。
  2. 发布说明:版本、范围、包含的变更清单、已知问题与不做的事。
  3. 发布检查单:逐项结论与证据位置。
  4. 回滚预案:触发条件、步骤、耗时、不可回滚项、验证状态。
  5. 灰度与生产验证计划:分批条件、观察指标、观测窗口、放量或停止的判据。
  6. 未验证项与需授权事项:哪些结论只是推断、哪些操作需要用户授权。

建议落点(沿用 .docs 命名规范):<版本>-版本冻结.md、<版本>-发布评审.md、<版本>-发布说明.md、<版本>-构建说明.md、<版本>-升级脚本清单.md、<版本>-部署手册.md、<版本>-回滚预案.md、YYYYMMDD-<环境>-上线记录.md。

不要声称未运行的检查已通过、未演练的回滚已可用、未验证的环境已验证。区分"已观察到""由证据推断""尚未验证"。

与相邻 skill 的边界

  • 推送代码到远程:push-remote(发布材料里可以引用它的推送结果,但不代替它)。
  • 代码质量与安全审查:code-review-deep-zh。
  • 库表迁移的设计与验证:database-migration。本 skill 负责把它排进发布顺序与回滚路径。
  • 线上问题的现场处置与止血:incident-response。发布后触发的故障走它。
  • 故障根因定位:systematic-debugging。
  • 监控指标、SLO 与告警规则的设计:observability-setup。本 skill 只确认观测手段是否就位。