mcpField
V
verifying-production-changes

verifying-production-changes

github.com/bostonaholic云与 DevOps247 次安装1 天前更新
代码仓库

关于 verifying-production-changes

用于验证生产部署及一次性变更数据影响的 Skill。它根据生产请求样本核对目标提交,并为迁移、清理任务和部署顺序提供只读检查流程。

主要功能

  1. 01依据服务请求的提交 SHA 检查部署
  2. 02根据请求样本报告发布状态
  3. 03核验变更与未变更的数据组
  4. 04检查全量不变量和数据总数
  5. 05记录部署之间的安全顺序

适用场景

  1. 01检查抽样请求是否运行目标提交
  2. 02只读验证迁移或清理结果
  3. 03评估连续部署之间的依赖

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/bostonaholic/skills --skill verifying-production-changes

安装后在 Claude Code 中输入/verifying-production-changes确认已加载。

附带文件agents/openai.yamlscripts/deploy-gate.sh

详细介绍

验证生产环境中的变更

已合并不代表已部署,已部署也不代表已验证。

以部署为门槛

编写一条命令,打印生产请求实际使用的提交 SHA,而不是版本字符串;从服务暴露的信息中获取(状态端点、构建信息路由、引导清单)。如果平台直接报告实例修订版本,优先使用这种方式,并说明这一点。然后,在服务仓库的克隆中运行:

scripts/deploy-gate.sh --target <merged-sha> --baseline <prior-prod-sha> -- <command>

如果实例数量较多,请提高 --samples 或 --clean-polls 的值;也可以根据平台的发布节奏设置 --interval 和 --max-polls。脚本头部说明了门槛规则。

  • 退出码 0: 逐字写下最后一行:“在 N 个采样请求中未观察到过时实例”。

  • 退出码 1,rollout-in-progress: 报告发布仍在进行中,并说明已上线和未上线的数量,不要将其报告为失败。not-deployed: 报告没有任何采样请求运行此变更。

  • 退出码 2、3 或 5: 修正命令调用、SHA 或采样命令,然后重新运行。

  • 退出码 4: 基线已包含目标变更,因此请询问此次部署前生产环境运行的是哪个修订版本。

  • 关于生产环境运行内容的所有断言都必须以采样结果为限:绝不要说“已完全部署”或“生产环境已不再运行旧 SHA”。

  • 如果脚本无法运行,请阅读其头部,并根据现有采样结果应用其中的规则。

  • 即使所有采样结果都指向目标版本,也仍要写下上述句子;祖先关系检查尚未完成时也一样。

验证变更后的数据

适用于一次性迁移、回填或清理。验证过程必须只读:绝不要以写入模式重新运行任务,也不要修复数据。报告差异。

  • 使用报告模式日志。 写入完成后,只有该日志中的逐行预期值可作为变更前数据的记录。
  • 检查两类数据: 应当变更的行,以及不应变更的行。只有未变更的数据类别能发现任务是否触及了过多数据。沿各个变化维度对每类数据进行采样,包含报告中被特殊处理的行(部分处理、跳过、冲突),并使用只读查询对比预测值与实际值。
  • 检查一个全量不变量: 任务旨在清除的数据现在应为空。该计数涵盖采样遗漏的所有行。
  • 将报告中的汇总数与变更后的计数进行核对。
  • 明确列出证据: 报告与实际数据一致且不变量为空,是有力证据,但并非逐行的变更前记录。没有逐行记录,就没有被删除行原始内容的独立记录。请说明你掌握了哪些证据。

部署顺序

  • 一个部署必须先于另一个部署时,这种约束通常是不对称的。
  • 在 PR 正文中说明哪种顺序安全、另一种顺序会导致什么问题,以及损害是否会自行修复。
  • 根据两端的代码验证这一点:例如,客户端即使“能容忍任意顺序”,在某种顺序下仍可能丢失信号,因为上游存在无条件过滤器,而下游只有条件重标记。
  • 如果一次性任务删除了旧版渲染器仍会读取的行,则必须等两个部署都完成后再执行,而且不会自行修复;请在记录顺序的地方说明这一点,因为没有任何机制会强制执行这一顺序。

评论

支持 Markdown