Path: none | instrument (PM dispatch derivation) | 北极星「优先级」4
由 domain:devx 执行席(座位贴 #6023)在复核 #15082 的形状切分轮时,从施工席的 out_of_scope_findings 接出。⛔ 未分级、未认领、无 domain:* —— 定级与路由是分诊的。
⚠️ 本席独立复核了下面两条决定性读数(施工席的表另有其出处,见〈证据边界〉)。
缺陷
scripts/pm/dispatch-gates.mjs 的「Artifact rosters」块对它印出的每一行断言同一条补救,逐字:
The fix is the gate's, not this tool's: declare the scan surface beside the roster (the subtree spelling), after which the family is MATCHED here and leaves this block.
树 origin/main @ 07c6f822e 上,这句话对它自己印出的 53 行里的 29 行为假(27 条 (c) + 2 条 (d) —— 它们没有 scan surface 可声明)。⇒ 一个照着这句话做的作者,会去给一个根本没有 population 的门禁写一份 population 声明。
⭐ 失效方向是指使写入错元数据:块印的不是一条观察,是一条处方,而处方对多数收件人无效。
⭐ 更硬的一半:它推荐的另一条出口对这个块机械无效
scripts/check-declared-population-live.mjs 的 remedyFor()(:144-158)给两个出口,其中 (b) 是打 dispatch-gates: no-path-population -- <reason> 标记。在这个块上,打这个标记不改变任何东西。
本席现读复核(⛔ 不是转述):
scripts/pm/dispatch-gates.mjs:7931 export function placeFamily(entry, paths) {
:7932 if (entry?.wholeTreeReason) return { verdict: 'always-runs', hits: [] };
:7952 if (entry?.widePopulationReason && placed.verdict !== 'matched') {
:7953 return { verdict: 'wide-population', hits: [] };
⇒ placeFamily 读 wholeTreeReason 与 widePopulationReason,从不读 noPopulationReason。而块的成员资格只由 artifactOnlySilence() 决定,它只读 entry.hints:
scripts/pm/dispatch-gates.mjs:8094 const declared = [...new Set(entry.hints ?? [])];
:8095 if (declared.length === 0) return null;
:8097 if (!artifacts.every(Boolean)) return null;
调用点 :14284 / :14697 就是块的渲染处。
⭐ 发火对照(证明 noPopulationReason 并非处处无效,所以上面的零是读数不是空读):同一个字段在 unnamedRootWalk() 里是承重的 ——
scripts/pm/dispatch-gates.mjs:4166 if (entry.wholeTreeReason || entry.noPopulationReason || entry.widePopulationReason) return null;
⇒ ⭐⭐ 同一个标记对「未具名根遍历」那一群承重,对「Artifact rosters」这一群完全无效。 处方读起来合理,正是因为它在隔壁是对的。
另一半也是假的:「把被误读成声明的那个路径形字面量去掉」
remedyFor() 的 (b) 还要求「stop spelling the path-shaped literal that is being read as a declaration (a slug, a sentinel, an example inside a message)」。施工席逐个探过,对上一轮归入 (b) 的 5 个成员里的 4 个为假 —— 那些字面量是真实输入,会产出真的 MATCHED 线索。本席复核了其中两个,带对照:
| 探针 |
读数 |
--files .github/labeler.yml |
node scripts/pr-labels.mjs --self-test [lint.yml, pr-automation.yml] **matched via .github/labeler.yml** ⇢ gate source |
--files .githooks/pre-push |
pnpm check:commit-card-trailers [lint.yml] **matched via .githooks/pre-push** ⇢ gate source |
对照 --files zzz/nope.zzz |
同两行落回块内,标 ⚠ checker-health only (--self-test) — NOT a PR verdict |
⇒ 照这句话做会删掉一条正在工作的线索。
⭐ 全 53 条里只有一条是真正的完整 (b):measure-test-shard-timings.mjs --self-test —— 它声明的字面量只出现在 :59 的头部注释和 :1277 的 help 串里,从不被打开。⇒ 它同时就是上面那个「4 of 5 为假」的反向对照。
⛔ 本卡不规定修法
施工席给了三条,本席不选(其中一条要动推导本身,而 #14880 的分诊对残渣排除恰有裁定 ⇒ 那需要它自己的裁决,⛔ 不是一个车道席位能拍的):
- A b2 成员只打标记、保留字面量 —— 诚实的文档,但实测不改变任何归位:块的计数一条不降。
- B b2 成员什么都不做,改的是
dispatch-gates.mjs 块的文字,让它对那 29 行为真。
- C 让
placeFamily() 也读 noPopulationReason,标记才真的把一族移出块 —— 动的是推导,需要维护者裁决。
证据边界(⛔ 明写)
关联
#15082(伞卡,本条从它的切分轮接出)· #19070(同一个函数的邻居缺陷:声明发霉会把一族整个掉出这个块并连警告一起丢掉 —— 那是「谁在块里」,本卡是「块对块里的人说了什么」,⛔ 两回事)· #14880(残渣排除的分诊裁定,C 选项会碰到它)· scripts/check-declared-population-live.mjs:144-158(remedyFor() 的两个出口)
查重
REST /search/issues 对本席回 403 ⇒ 全量枚举全部 open 非 PR issue 540 条,与本条同一动作内完成。placeFamily 0 命中;noPopulationReason|no-path-population 1 = #19070(已逐字读过标题与正文,是发霉那条,非本卡);Artifact roster 3 = #19070、#15082(伞卡)、#16160(spec 的 waiver 退役,逐字读过,无关)。同总体阳性对照:dispatch-gates 25、self-test 57 ⇒ 读法有反应,上面的零不是空读。
查重词:placeFamily noPopulationReason · artifact roster remedy false · no-path-population inert · dispatch-gates block prescription · remedyFor exit b
Generated by Claude Code
Generated by Claude Code
Path: none | instrument (PM dispatch derivation) | 北极星「优先级」4
由
domain:devx执行席(座位贴 #6023)在复核 #15082 的形状切分轮时,从施工席的out_of_scope_findings接出。⛔ 未分级、未认领、无domain:*—— 定级与路由是分诊的。缺陷
scripts/pm/dispatch-gates.mjs的「Artifact rosters」块对它印出的每一行断言同一条补救,逐字:树
origin/main@07c6f822e上,这句话对它自己印出的 53 行里的 29 行为假(27 条(c)+ 2 条(d)—— 它们没有 scan surface 可声明)。⇒ 一个照着这句话做的作者,会去给一个根本没有 population 的门禁写一份 population 声明。⭐ 失效方向是指使写入错元数据:块印的不是一条观察,是一条处方,而处方对多数收件人无效。
⭐ 更硬的一半:它推荐的另一条出口对这个块机械无效
scripts/check-declared-population-live.mjs的remedyFor()(:144-158)给两个出口,其中 (b) 是打dispatch-gates: no-path-population -- <reason>标记。在这个块上,打这个标记不改变任何东西。本席现读复核(⛔ 不是转述):
⇒
placeFamily读wholeTreeReason与widePopulationReason,从不读noPopulationReason。而块的成员资格只由artifactOnlySilence()决定,它只读entry.hints:调用点
:14284/:14697就是块的渲染处。⭐ 发火对照(证明
noPopulationReason并非处处无效,所以上面的零是读数不是空读):同一个字段在unnamedRootWalk()里是承重的 ——⇒ ⭐⭐ 同一个标记对「未具名根遍历」那一群承重,对「Artifact rosters」这一群完全无效。 处方读起来合理,正是因为它在隔壁是对的。
另一半也是假的:「把被误读成声明的那个路径形字面量去掉」
remedyFor()的 (b) 还要求「stop spelling the path-shaped literal that is being read as a declaration (a slug, a sentinel, an example inside a message)」。施工席逐个探过,对上一轮归入 (b) 的 5 个成员里的 4 个为假 —— 那些字面量是真实输入,会产出真的 MATCHED 线索。本席复核了其中两个,带对照:--files .github/labeler.ymlnode scripts/pr-labels.mjs --self-test [lint.yml, pr-automation.yml] **matched via .github/labeler.yml** ⇢ gate source--files .githooks/pre-pushpnpm check:commit-card-trailers [lint.yml] **matched via .githooks/pre-push** ⇢ gate source--files zzz/nope.zzz⚠ checker-health only (--self-test) — NOT a PR verdict⇒ 照这句话做会删掉一条正在工作的线索。
⭐ 全 53 条里只有一条是真正的完整 (b):
measure-test-shard-timings.mjs --self-test—— 它声明的字面量只出现在:59的头部注释和:1277的 help 串里,从不被打开。⇒ 它同时就是上面那个「4 of 5 为假」的反向对照。⛔ 本卡不规定修法
施工席给了三条,本席不选(其中一条要动推导本身,而 #14880 的分诊对残渣排除恰有裁定 ⇒ 那需要它自己的裁决,⛔ 不是一个车道席位能拍的):
dispatch-gates.mjs块的文字,让它对那 29 行为真。placeFamily()也读noPopulationReason,标记才真的把一族移出块 —— 动的是推导,需要维护者裁决。证据边界(⛔ 明写)
placeFamily的三行、artifactOnlySilence的三行、unnamedRootWalk:4166的发火对照、以及上表两条 MATCHED 探针 + 一条零对照。5735240531。⇒ 接手者先复现那个计数,⛔ 不要继承。关联
#15082(伞卡,本条从它的切分轮接出)· #19070(同一个函数的邻居缺陷:声明发霉会把一族整个掉出这个块并连警告一起丢掉 —— 那是「谁在块里」,本卡是「块对块里的人说了什么」,⛔ 两回事)· #14880(残渣排除的分诊裁定,C 选项会碰到它)·
scripts/check-declared-population-live.mjs:144-158(remedyFor()的两个出口)查重
REST
/search/issues对本席回 403 ⇒ 全量枚举全部 open 非 PR issue 540 条,与本条同一动作内完成。placeFamily0 命中;noPopulationReason|no-path-population1 = #19070(已逐字读过标题与正文,是发霉那条,非本卡);Artifact roster3 = #19070、#15082(伞卡)、#16160(spec 的 waiver 退役,逐字读过,无关)。同总体阳性对照:dispatch-gates25、self-test57 ⇒ 读法有反应,上面的零不是空读。查重词:
placeFamily noPopulationReason·artifact roster remedy false·no-path-population inert·dispatch-gates block prescription·remedyFor exit bGenerated by Claude Code
Generated by Claude Code