release-readiness
发布前的准出检查与发布计划:版本冻结、发布评审、构建与配置差异、升级脚本顺序、灰度与生产验证、回滚触发条件与演练。当用户要发布上线、准备发版、写发布说明或部署手册、做上线前检查、评估能不能发、安排灰度、设计回滚方案、版本冻结或冻结后变更时使用。本 skill 产出可评审的发布材料并给出明确的「可以发 / 不能发」结论与阻塞项。不要用于:① 推送代码到远程(用 push-remote);② 审查代码
SKILL.md.claude/skills/release-readiness/SKILL.md
GitHub发布准备与准出检查
把"这次到底能不能发"变成一个有证据、可评审的结论,而不是一句"应该没问题"。发布是整个生命周期里唯一不可轻易撤回的动作,因此本 skill 的核心不是写文档,而是把不能发的理由在发之前找出来。
先确定任务边界
- 本 skill 产出发布材料并给出准出结论。不直接执行部署、不改生产配置、不动生产数据,除非用户明确要求并逐项授权。
- 发布材料以文档形式交付,命名遵循
.docs/60-发布部署/的既有规范(见下文"交付内容")。 - 回滚能力是准出的硬条件:如果这个版本需要回滚能力,而回滚方案没有被实际验证过(演练或等价证据),准出结论必须写"不能发",不能写成"建议补充演练"。缺少回滚路径的发布是在赌运气。
- 涉及库表变更时,先确认
database-migration已给出迁移与恢复口径,本 skill 只负责把它排进发布顺序与回滚路径。
准出检查路径
- 固定发布范围。 明确版本号、目标环境、包含的需求或缺陷编号、以及不包含什么。用
git log --oneline <上个发布点>..HEAD或等价方式列出这次发布实际带上的提交。范围说不清的版本不准出。 - 版本冻结。 记录代码基线(提交 SHA 或 tag)与冻结时间点;冻结之后进入的每个变更都要有变更单与理由,并重新评估是否需要重跑验证。冻结后变更清单为空,是准出结论可以干净成立的前提。
- 逐项过准出清单,每项要么给证据、要么进阻塞项:
- 质量门:约定的测试与检查是否全绿,最后一次运行对应的是哪个提交。
- 构建产物:产物从哪个提交构建、校验值是否与评审时的基线一致。
- 配置与环境差异:相对上一个版本的配置项增删改、依赖的服务与中间件版本、环境变量与密钥的来源(只写来源,不写值)。
- 库表与数据:迁移脚本、执行顺序、是否向前兼容旧版本代码、回填耗时与失败处理。
- 观测准备:这次发布需要重点盯哪些指标与日志,观测窗口多长,由谁看。缺观测手段的发布等于盲发。
- 回滚:回滚触发条件、回滚步骤、回滚需要多久、回滚本身有什么副作用(例如字段已删除则无法靠反向迁移恢复数据)。
- 判定发布形态并写清顺序。 全量还是灰度、灰度分几批、每批的观察指标与放量条件、失败时停在哪一步。升级脚本要给出执行顺序与幂等性结论:重复执行会怎样、中途失败能否续跑、新旧版本并行期间读写是否都成立。
- 给出准出结论。 明确写「可以发」或「不能发」,并列阻塞项清单:每条写阻塞原因、影响、需要谁做什么才能解除。没有阻塞项时才写可以发,不要用"风险可控"这类无证据表述代替结论。
对回滚方案的额外要求
回滚最容易在纸面上成立、在现场失效,因此必须满足:
- 触发条件是可观测的:写成"错误率超过某阈值持续多久""核心接口 P95 高于某值"这类可判断的条件,而不是"感觉不对"。
- 步骤是可执行的:每一步写清命令或操作入口、执行人角色、预计耗时、以及执行后如何确认这一步生效。
- 有不可回滚的部分就提前声明:删字段、删表、数据清洗、对外发布过的消息或文件,这些往往无法靠回滚恢复。这类内容必须单独列出并给出前向修复路径,不能笼统写进"回滚即可"。
- 有演练或等价证据:至少在预发环境跑过一次回滚,或给出足以说明回滚可行的证据。只有步骤没有验证的预案,要如实标注为"未验证"。
交付内容
用简洁中文给出:
- 准出结论:可以发 / 不能发(+ 阻塞项清单与解除条件)。
- 发布说明:版本、范围、包含的变更清单、已知问题与不做的事。
- 发布检查单:逐项结论与证据位置。
- 回滚预案:触发条件、步骤、耗时、不可回滚项、验证状态。
- 灰度与生产验证计划:分批条件、观察指标、观测窗口、放量或停止的判据。
- 未验证项与需授权事项:哪些结论只是推断、哪些操作需要用户授权。
建议落点(沿用 .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 只确认观测手段是否就位。