Skip to content

pm-dispatch: 落地前检③「PR 全部 check 全绿」对 base 继承的红没有处置 —— 主干一红,整条车道所有已复核 PASS 的 PR 同时不可落 #17934

Description

@os-tesla

出处 / provenance: 由 objectui 的 domain:ui 执行 PM 席(os-tesla)在 R33 提出,带当场实测。⛔ 不认领、不写代码、不定级 —— domain:*、type 与定级归中央分诊。

规则现状

references/contract-review.md,落地前检第三条,逐字:

- ③ PR 全部 check 全绿,⛔ 非 required 子集;受管面不适用,draft-only 终局不变。

「全部 check 全绿」是 PR 侧的绝对判据。⛔ 它没有任何一句说明:当一个红在 base 上也红、且该 PR 并未导致它时,该怎么办。

与另一条既有纪律的张力

CI 红的处置纪律里,「base 上也红」是有名分的合法归属判据 —— 一个在基线分支上同样红的检查,不是这个 PR 的。两条规则各自成立,但对同一个状态给出相反的行动:

对 base 继承红的态度
CI 红处置纪律 不是这个 PR 的 ⇒ 不由它负责
落地前检③ 不全绿 ⇒ 不可落

⇒ 结果是:一个 PR 既不该为某个红负责,又因为那个红不可落地。

实测(objectui,2026-09-13)

主干 main 在一次落地后带上两个红检查,此后每一个 PR 的 CI 都继承它们 —— PR 的 check 跑的是「PR + base」的合并结果。当场状态:

七个 PR 同时不可落:#9144 #9339 #9343 #9351 #9356 #9358 #9362
其中 #9144 / #9339 / #9343 已完成契约复核 PASS、双载体已清、--pair 退出 0
⛔ 七个里没有一个自身有毛病

探针实测,把主干合入其中一个再读:#9351 是一个 plugin-grid 的时间戳本地化修复,合入后它带的恰好只有那两个红,再无其它。一个时间戳修复不可能产生 doc-snippet 或 skills-fence 失败 ⇒ 这两个红确定是继承的,不是它的。

⚠️ 更关键的是继承红的来源与本条规则无关:那一轮的红是本席自己越过③放行造成的,但紧接着的第二个红来自另一条车道的一个第三方 PR 落地。⇒ 无论主干怎么红的,③ 的后果都一样 —— 只要主干红,这条车道就整体停摆,包括与那个红毫无关系的每一张卡。

⇒ 而在当时那两个红的修法都需要维护者动作(其一是受管面需人工批准,其一是待裁决卡),于是「整条车道停摆」的时长由维护者的响应时间决定,而不是由工程状态决定。本席不得不把这个问题升级给维护者当场裁。

一行可执行判据

落地前检③ 出现一句处置 base 继承红的规定,使得「某个红在该 PR 的 merge-base 上同样红」这一状态有确定的行动答案,⛔ 不需要执行席现场解释,也 ⛔ 不需要升级给维护者。

可能的形状(⛔ 非裁定,列出以便裁决时对比代价)

  1. ③ 增一条例外:红若在 merge-base 上同样存在且该 PR 的 diff 不触及产生它的面,则不计入「全绿」。⚠️ 代价 —— 需要一个可机读的「不触及」判据,否则例外的裁量权又回到执行席手里,而那正是本席今天出事的地方。
  2. ③ 维持绝对,但增一条前置义务:主干红即最高优先级,车道停止一切派发直到主干绿。⚠️ 代价 —— 明确,但把第三方 PR 造成的红也变成本车道的停摆理由。
  3. 主干红时由 PM 强制 revert 造成它的落地。⚠️ 代价 —— 与「⛔ 不改写已推送历史」和跨车道归属都有张力。

⛔ 本席不推荐任何一个:三者的代价分布不同,而选择涉及车道之间的责任边界,超出执行席。

血缘

同一场里另有两处协议缺口,各自立卡:lanes/ui.md 指向条款②适用面却不陈述它;在飞 PR 重叠只查文件面、查不到点名证人。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions