Blocked-by: #18373
⚠️ 分诊席更正:本卡前提要等 #18373 的退役落地(现读 PR #18946 open)。依据与读数见评论 5727353849。
由 domain:devx 执行席在复核 #18373(退役 check-type-source-resolution,PR #18946)时,从施工席的 out_of_scope_findings 接出。⛔ 未分级。⚠️ 这是一张「该不该」的卡,⛔ 不是缺陷申报。
事实
scripts/typecheck-configs.mjs(导出 configsNamedByTypecheck / typecheckScriptChain)之所以存在,是因为两道门禁需要同一个谓词:check-type-check-coverage.mjs 与 check-type-source-resolution.mjs(#11490 把它抽出来时的原话:两份拷贝会漂移,而漂移的症状是两边都绿)。
后者已于 2026-09-18T04:13Z 按维护者裁决(批 #153 第 3 项,字母 E)退役。⇒ 它现在只剩一个消费者。
为什么本席⛔不替它决定
施工席明确没有顺手折回去,理由本席认为成立并原样转达:typecheck-configs.mjs 的用例floor 在它自己的 --self-test 电池里(PR #15327),而折回去不会继承那道地板。⇒ 「只剩一个消费者」是一个可以读到的事实,「所以该合并」是一个没人下过的判断,而这两者之间隔着一次floor 的得失。
PR #18946 已把这个状态写进文件的注释(逐字:「⛔ Folding the predicate back in here is a separate decision, not a consequence of that retirement」),所以下一个读到的人不会以为这是疏忽。本卡把那句注释接成一个可被裁决的问题。
至少三条路,本席⛔不选
① 维持现状——一个模块一个消费者,但保着自己的地板;② 折回 check-type-check-coverage.mjs,并把 typecheck-configs 的用例一并搬进目标文件的电池(地板不丢,成本是搬用例);③ 判定「一个消费者的共享模块」本身没有问题,关卡存档。
去重
REST /search/issues 对本席回 403,改用全量枚举:2026-09-18T07:33Z 枚举全部 open 非 PR issue 523 条。configsNamedByTypecheck / typecheckScriptChain / single consumer / #15327 各 0 命中;typecheck-configs 1 条 = #13799(讲的是 155/158 个 scripts/** 自检没有断言地板),非本卡。阳性对照 check-type-source-resolution 命中 [18936, 18373, 8249] ⇒ 零不是空读。
去重词:typecheck-configs · shared predicate module · single consumer · fold-in floor · PR #15327
读数时刻 2026-09-18T07:35Z
Generated by Claude Code
Blocked-by: #18373
由⚠️ 这是一张「该不该」的卡,⛔ 不是缺陷申报。
domain:devx执行席在复核 #18373(退役check-type-source-resolution,PR #18946)时,从施工席的out_of_scope_findings接出。⛔ 未分级。事实
scripts/typecheck-configs.mjs(导出configsNamedByTypecheck/typecheckScriptChain)之所以存在,是因为两道门禁需要同一个谓词:check-type-check-coverage.mjs与check-type-source-resolution.mjs(#11490 把它抽出来时的原话:两份拷贝会漂移,而漂移的症状是两边都绿)。后者已于 2026-09-18T04:13Z 按维护者裁决(批 #153 第 3 项,字母 E)退役。⇒ 它现在只剩一个消费者。
为什么本席⛔不替它决定
施工席明确没有顺手折回去,理由本席认为成立并原样转达:
typecheck-configs.mjs的用例floor 在它自己的--self-test电池里(PR #15327),而折回去不会继承那道地板。⇒ 「只剩一个消费者」是一个可以读到的事实,「所以该合并」是一个没人下过的判断,而这两者之间隔着一次floor 的得失。PR #18946 已把这个状态写进文件的注释(逐字:「⛔ Folding the predicate back in here is a separate decision, not a consequence of that retirement」),所以下一个读到的人不会以为这是疏忽。本卡把那句注释接成一个可被裁决的问题。
至少三条路,本席⛔不选
① 维持现状——一个模块一个消费者,但保着自己的地板;② 折回
check-type-check-coverage.mjs,并把typecheck-configs的用例一并搬进目标文件的电池(地板不丢,成本是搬用例);③ 判定「一个消费者的共享模块」本身没有问题,关卡存档。去重
REST
/search/issues对本席回 403,改用全量枚举:2026-09-18T07:33Z 枚举全部 open 非 PR issue 523 条。configsNamedByTypecheck/typecheckScriptChain/single consumer/#15327各 0 命中;typecheck-configs1 条 = #13799(讲的是 155/158 个scripts/**自检没有断言地板),非本卡。阳性对照check-type-source-resolution命中[18936, 18373, 8249]⇒ 零不是空读。去重词:typecheck-configs · shared predicate module · single consumer · fold-in floor · PR #15327
读数时刻 2026-09-18T07:35Z
Generated by Claude Code