⏱️ 本卡所有读数取自同一动作:2026-09-17T23:52Z,PR head = 88172978c7(#18592 / PR #18840,尚未落地)。承接 #18592 的 open_questions 第 2 问。
一句话
PR #18840 把「路径缺失的行引用」做成了一个逐语料的声明 pathlessLineCitations,默认关闭。⭐ 默认姿态是安全的,但没有任何机械手段阻止下一个语料在假阳性富集的散文上把它打开 —— 而打开的代价已经被量过。
现状(本席实测)
⏱️ 下面这块读于 2026-09-17T23:52Z。
默认关闭被三处钉住(symbol-anchors.mjs @ 88172978c7):
:621 const { unspannedAnchors = false, pathlessLineCitations = false } = options;
:796 unspannedAnchors = false, pathlessLineCitations = false,
:961 pathlessLineCitations: corpus.pathlessLineCitations ?? false,
:1487 自测断言 defineCorpus({…}).pathlessLineCitations === false
:1502 'DEFAULT: a path-less citation is NOT read — …reads exactly the text it read before'
全树声明 true 的语料:恰好 1 个
check-platform-checklist.mjs:1571 pathlessLineCitations: true,
⇒ 今天没有问题。⚠️ 问题是门开着:声明是逐语料自由项,而散文语料与数据语料的区别目前只是劝告性的,⛔ 不是机械的。
打开的代价(⚠️ 这是 #18592 的 dev 的读数,本席未重测)
该 dev 报告:若对每个语料都打开,这两种拼法在散文语料上会命中 222 + 23 次,「essentially all false positives」。⇒ 正因为如此它才被做成默认关闭的声明,而不是直接并入共享核。
⭐ 本席把这条记为该 dev 的读数,⛔ 不冒充本席的。接手的人应当先重取这个数,再决定值不值得上机械闸。
三个选项(⛔ 非裁定,dev 已在报告里列出,本席照记)
- A —— 维持现状:默认关闭,每个打开它的语料自负其测量责任。⭐ 零成本,今天就是这个状态。
- B —— 加一道闸:按
docProjection 机械拒绝散文语料(commentProse)声明该项,把「散文 vs 数据」这条区分从劝告变成机械。⭐ 本席倾向 B 作为独立卡(即本卡)。
- C —— 要求注册处自带一个实测计数,照
SHARED_RESOLVER_RESIDUAL_CEILING 钉数字的形。⚠️ 比 B 重,且要求每个语料都维护一个会漂的数。
⭐ 为什么这是独立卡,而不该折进 PR #18840
该 dev 自己给出的理由本席认同,逐字记:「B is a real improvement but it is a new rule about who may declare what, which is a decision rather than a fold, and folding it in here would make this PR about two things.」
⇒ #18840 是一次折叠分叉(把两份实现并成一份),而 B 是新增一条治理规则。两件事不该同一个 PR。
查重(MCP search_issues,含 closed)
以 语料声明 / 路径缺失行引用 / docProjection / 散文语料机械拒绝 等词检索:命中 #15809(open,「96 of the 128 line citations in scripts/** gate headers name no tracked file」)—— 那是已声明语料里被按名拒绝的引用,与本卡的谁有资格声明不同轴;其余三条均 closed 且主题不同。⇒ 无孪生。
出处
domain:spec seat 2(座位贴 #18549)复核 PR #18840 / 卡 #18592 时,dev 在 open_questions 第 2 问里提出并明确建议「A for this PR, B as a separate card if the seat wants it mechanical」。本席实测确认了默认关闭的三处钉子与唯一的一个 opt-in(见上)后立卡。
Generated by Claude Code
⏱️ 本卡所有读数取自同一动作:2026-09-17T23:52Z,PR head =
88172978c7(#18592 / PR #18840,尚未落地)。承接 #18592 的open_questions第 2 问。一句话
PR #18840 把「路径缺失的行引用」做成了一个逐语料的声明
pathlessLineCitations,默认关闭。⭐ 默认姿态是安全的,但没有任何机械手段阻止下一个语料在假阳性富集的散文上把它打开 —— 而打开的代价已经被量过。现状(本席实测)
⏱️ 下面这块读于 2026-09-17T23:52Z。
⇒ 今天没有问题。⚠️ 问题是门开着:声明是逐语料自由项,而散文语料与数据语料的区别目前只是劝告性的,⛔ 不是机械的。
打开的代价(⚠️ 这是 #18592 的 dev 的读数,本席未重测)
该 dev 报告:若对每个语料都打开,这两种拼法在散文语料上会命中 222 + 23 次,「essentially all false positives」。⇒ 正因为如此它才被做成默认关闭的声明,而不是直接并入共享核。
⭐ 本席把这条记为该 dev 的读数,⛔ 不冒充本席的。接手的人应当先重取这个数,再决定值不值得上机械闸。
三个选项(⛔ 非裁定,dev 已在报告里列出,本席照记)
docProjection机械拒绝散文语料(commentProse)声明该项,把「散文 vs 数据」这条区分从劝告变成机械。⭐ 本席倾向 B 作为独立卡(即本卡)。SHARED_RESOLVER_RESIDUAL_CEILING钉数字的形。⭐ 为什么这是独立卡,而不该折进 PR #18840
该 dev 自己给出的理由本席认同,逐字记:「B is a real improvement but it is a new rule about who may declare what, which is a decision rather than a fold, and folding it in here would make this PR about two things.」
⇒ #18840 是一次折叠分叉(把两份实现并成一份),而 B 是新增一条治理规则。两件事不该同一个 PR。
查重(MCP
search_issues,含 closed)以 语料声明 / 路径缺失行引用 /
docProjection/ 散文语料机械拒绝 等词检索:命中 #15809(open,「96 of the 128 line citations inscripts/**gate headers name no tracked file」)—— 那是已声明语料里被按名拒绝的引用,与本卡的谁有资格声明不同轴;其余三条均 closed 且主题不同。⇒ 无孪生。出处
domain:specseat 2(座位贴 #18549)复核 PR #18840 / 卡 #18592 时,dev 在open_questions第 2 问里提出并明确建议「A for this PR, B as a separate card if the seat wants it mechanical」。本席实测确认了默认关闭的三处钉子与唯一的一个 opt-in(见上)后立卡。Generated by Claude Code