根 manifest 里有 12 个 check:* 门禁,没有任何 workflow、也没有任何其他脚本调用它们 —— 它们从不运行,而绿色的 CI 读起来像合规。
由 domain:devx 执行席(座位贴 #6023)在复核 PR #18223(卡 #17512)时量到 —— 起因是那个 PR 的 dev 声称「本仓 160 个 check:* 键每一个都被 workflow 点名,不存在没接线的门禁先例」。复核这条论据时发现它为假,顺手把真实数量量了出来。
⚠️ priority: 与 domain: 故意留空 —— 分诊的活,不是本席的。
读数(三通道,全部取自 origin/main,带发火与暗对照)
根 manifest 的 check:* 键 160
① 没有被 .github/workflows/*.yml 任何一个点名 12
② …也没有被 manifest 里任何其他 script 点名(聚合键) 12 ← 同一批,无一被聚合捞回
③ 全树 git grep:这 12 个只出现在 package.json、
它们自己的脚本、CHANGELOG 与散文里,无 workflow (抽查 2 个,见下)
发火对照 'check:nul-bytes' → 出现在 3 个 workflow(cut-rc / lint / release)
暗对照 'check:zznotreal' → 0
三通道抽查两个:
check:keyed-text-bounds → package.json · 自己的脚本 · 一个 changeset · 两个包内引用 ⛔ 无 workflow
check:undeclared-dep-imports → package.json · 自己的脚本 · 四个 CHANGELOG · 两处源码提及 ⛔ 无 workflow
check:nul-bytes(对照) → lint.yml / cut-rc.yml / release.yml + 26 处其他 ✅ 有 workflow
名单
check:adr-symbol-anchors check:registry-log-declared
check:scripts-symbol-anchors check:rest-log-declared
check:spec-docblock-symbol-anchors check:rest-log-spy-declared
check:prerelease-pins check:undeclared-dep-imports
check:adr-0087-registration check:keyed-text-bounds
check:system-context-census check:platform-object-tenancy-census
⚠️ 每一个的命令行都是 node scripts/<x>.mjs --self-test && node scripts/<x>.mjs —— 它们都带自检、都写得像在岗的门禁,只是没人叫它们。
为什么要紧:失败方向是「读作合规」
这与 #18211 同一类,而且更广:那张卡是一个普查器的 ERROR 方向到不了 CI;这张是 12 道门禁整个到不了 CI。两者的失败方向相同,也是最坏的那一种 —— 缺陷不会被误报成别的东西,它会被读成合规,因为 Lint & Repo Gates 是绿的。
其中几个名字提示它们守的不是小事(check:adr-0087-registration、check:platform-object-tenancy-census、check:undeclared-dep-imports)。⛔ 但本卡不主张它们今天会红 —— 见下。
⛔ 没量的部分,不许当读数用
- ⛔ 没有跑过这 12 个中的任何一个。 本卡不主张它们今天会红、也不主张会绿。「没人跑」与「跑了会红」是两件事。
- ⛔ 没查它们为什么没接线。 可能是有意的(太慢、需要凭据、季度跑一次),可能是接线时漏掉,可能是 workflow 重构时掉的。这三种的处置完全不同。
- ① 与 ② 是子串匹配。若某个 workflow 以本席想不到的方式间接调用(动态拼接键名、外部 action),这个 12 会偏高。③ 抽查了 2 个,没有抽全。
验收(⛔ 不规定实现)
- 先逐个跑一遍,记录退出码与耗时。零要有发火对照。⛔ 在知道它们今天是红是绿之前,不要决定怎么接线。
- 逐个裁定:接线 / 有意不接(那就把理由写进脚本自己的头注,让下一个读的人不必重查) / 退休。⛔ 不许默认全部接上 —— 一个跑起来要十分钟的普查器塞进 per-PR 门禁是另一种损害。
- ⭐ 接线的那些要两个方向都量:构造让它红,再复位让它绿。
- ⛔ 不许为了让新接上的门禁绿,去放宽它自己的判据或删自检用例。
来源与更正
PR #18223(Part of #17512)复核。其报告里「every one of them named by a workflow / no precedent for an unwired gate」一句经本席实测为假,更正已写在该 PR 的复核评论与 #18224 里。⚠️ 这条更正不改变 #18224 的裁定(那个新门禁仍然要接线),只是把拒绝「不接线」的理由换成正确的那条。
Refs:PR #18223 · #17512 · #18224 · #18211(同类,单个普查器的 ERROR 方向到不了 CI)
domain:devx 执行席 · 座位贴 #6023 · 读数取自 origin/main
Generated by Claude Code
根 manifest 里有 12 个
check:*门禁,没有任何 workflow、也没有任何其他脚本调用它们 —— 它们从不运行,而绿色的 CI 读起来像合规。由
domain:devx执行席(座位贴 #6023)在复核 PR #18223(卡 #17512)时量到 —— 起因是那个 PR 的 dev 声称「本仓 160 个check:*键每一个都被 workflow 点名,不存在没接线的门禁先例」。复核这条论据时发现它为假,顺手把真实数量量了出来。priority:与domain:故意留空 —— 分诊的活,不是本席的。读数(三通道,全部取自
origin/main,带发火与暗对照)三通道抽查两个:
名单
node scripts/<x>.mjs --self-test && node scripts/<x>.mjs—— 它们都带自检、都写得像在岗的门禁,只是没人叫它们。为什么要紧:失败方向是「读作合规」
这与 #18211 同一类,而且更广:那张卡是一个普查器的 ERROR 方向到不了 CI;这张是 12 道门禁整个到不了 CI。两者的失败方向相同,也是最坏的那一种 —— 缺陷不会被误报成别的东西,它会被读成合规,因为
Lint & Repo Gates是绿的。其中几个名字提示它们守的不是小事(
check:adr-0087-registration、check:platform-object-tenancy-census、check:undeclared-dep-imports)。⛔ 但本卡不主张它们今天会红 —— 见下。⛔ 没量的部分,不许当读数用
验收(⛔ 不规定实现)
来源与更正
PR #18223(⚠️ 这条更正不改变 #18224 的裁定(那个新门禁仍然要接线),只是把拒绝「不接线」的理由换成正确的那条。
Part of #17512)复核。其报告里「every one of them named by a workflow / no precedent for an unwired gate」一句经本席实测为假,更正已写在该 PR 的复核评论与 #18224 里。Refs:PR #18223 · #17512 · #18224 · #18211(同类,单个普查器的 ERROR 方向到不了 CI)
domain:devx执行席 · 座位贴 #6023 · 读数取自origin/mainGenerated by Claude Code