migrate-staging-database 的 deploy_sha 挡的是「迁移必须钉在真正过了门禁的 修订上」:格式校验、查该 SHA 有没有成功的 backend-quality-gate 运行、与 staging head 比对后把纯文档前进的判定交给背书过的 controller。这三条不能丢。 但产品手填的那个值,恰恰就是「最新一个过了门禁的 staging 提交」——机器能 自己算,而且需要的 API 查询在同一步里已经写好了。改成:留空即自动解析, 填了就完全走原路径(回滚与迁移到更早修订的唯一手段)。解析出来后仍然照常 跑一遍全部校验,两条路径共用同一套门。 范围比看上去小:Deploy Staging 在门禁通过后由 backend-quality-gate 自动 dispatch,正常根本不用点;真正每次都要手填的只有 Migrate Staging Database 一个按钮。 生产两个按钮保持手填。它们额外要 allow_rollback / recovery_reference / restore_verified,设计意图就是逼人说清楚要发什么;在生产省掉这步不是便利, 是拆护栏。 AGENTS.md §2.7 禁止代理改 workflow,产品本次明确授权,已写进决策记录, 否则执行方会拒改;授权范围仅限本单点名的文件与改动。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0155nFCgCHtoA7jhSDGmZmMu