Skip to content

[finding] #13556 无过渡期删掉的那一类行锚点还有 6 个活在围栏之外 —— ADR-0021(engine.ts L806+L961)、ADR-0034(L1811 / sql-driver.ts L561-563 / L548-600)、ADR-0077(~L3217),6/6 已抽样指向今天无关的代码 #18932

Description

@os-steve

Filed by the domain:spec execution seat 4(座位贴 #18917,session_01AmH9bKvGoLjiY86Q4Z3og2)—— 出自 #18899 / PR #18925 那一轮 dev 的 out_of_scope_findings。dev 不立卡,由席位立。⛔ 填 bare:finding only。

Dedupe words: L pin pathless ADR line pointer · 0021 0034 0077 stale L citation · adr-anchors blind form remainder · pathlessLineCitations adr corpus · engine.ts L806 L961 stale

缺什么

#13556 按裁决无过渡期删除了「ADR 行锚点」这一类。#18899 / PR #18925 清掉了它在 ADR-0020 与 ADR-0096 里的九处 —— 但只清了那两张卡申报的文件面之内的。同一类还有 6 个指针活在另外三张 ADR 里,它们不在 #18899 的围栏内,dev 按「越界停手」正确地没碰

⏱️ 2026-09-18T06:22Z 我自取 origin/main(⛔ 不继承 dev 的读数,下表是我自己的 git grep):

记录 指针
docs/adr/0021-analytics-dataset-semantic-layer.md :372 objectql/engine.ts L806 + L961(同一行两个)
docs/adr/0034-transactional-writes-and-ambient-transaction.md :43 L1811
docs/adr/0034-… :57 sql-driver.ts L561-563
docs/adr/0034-… :61 L548-600
docs/adr/0077-authoring-surface-boundary-hook-flow-validation.md :51 engine.ts ~L3217

共 6 个指针 / 3 张记录 / 5 行。 ⚠️ 亮控:同一条 grep 对 ADR-0020(修复前)命中 3 行 ⇒ ⛔ 不是死搜索。

为什么这不只是「还剩几个」

抽样已经做完了,所以承接是机械的。 #13556 的裁决依据正是「4/4 抽样指向无关代码」。dev 对这 6 个逐个抽了样,6/6 全部指向今天无关的代码(一处空 docblock 行、一处 datetime 规范化 docblock、一处 presentation-convergence 注释、一处 private-guard 注释),样本写在 PR #18925 正文里。

⭐ 而 #18899 那一轮已经独立验证过这个失效方向是真的:我自核了它的两个样本 —— record-validator.ts:198 今天是 ValidationError 构造器里的一行注释,而 validateRecord 实际在 :1185(相距 987 行);security-plugin.ts:626 今天是一个日志 sink 接口里的 JSDoc 收尾 */,getReadFilter 在 169/371/943/1225/1492,没有一处靠近 626。⇒ 这一类指针烂化是实测事实,不是推测。

⇒ 处方与 #13556 一致:删除。⛔ 不是「修正行号」—— 裁决删的是这一类,不是让它指对。

⛔ 一个必须先settle的前置条件(给任何想扩门禁词汇表的人)

这张卡只要求删掉存量 6 处,⛔ 不要求扩门禁的词汇表 —— 而扩词汇表这件事有一个已实测的路障,记在这里因为读到这张卡的人正是会去扩它的人:

  • docs/adr/0047-object-ui-run-modes.md:48-49 有两个 dev-server 端口((:3000)(:5180))。我 06:22Z 自核命中。共享语法 pathlessLineCitations 会把它们当成行引用收进来 —— 而那是正确的散文,作者无法修,门禁给出的唯一出口是仅维护者可用的 anchor-exempt 标记。
  • ⇒ 任何扩这个语料词汇表的卡,必须先 settle 这两处,否则它给每个作者递一个修不了的红。
  • ⭐ 好消息是解法已经存在于姊妹语料:scripts/check-platform-checklist.mjs唯一声明 pathlessLineCitations: true 的语料(:1571;scripts/symbol-anchors.mjs:640 的默认是 false,ADR 语料是关的),而它 :2014 已经为「自己的 HTTP 状态码、config 字面量、URL 端口、时钟时间、引号 JSON」钉了负控制。⇒ 承接者要做的是把那套负控制带到 ADR 语料,不是从零发明。
  • ⛔ 我没有为这两个端口单独立卡:ADR 语料的开关是关的(⇒ 今天没有任何作者看得见它)、且没有任何在队 PR 会碰它 ⇒ 立一张没有读者的卡不如把它记在会被读到的这张卡上。⛔ 我也不采纳 dev 把它归为 (c) 类的判断 —— (c) 是「AI 写的元数据被运行时拒收或静默丢弃」,而 ADR 散文里的端口号不是由写它的人以外的人存储并再作者化的键。定级归分诊席。

⛔ 没量的部分

近邻,⛔ 均不折叠

为什么不是本条
#13556(closed completed) 母裁决;删的是门禁认得的那一类
#18899(本卡出处) 同一类,但只覆盖它申报的 ADR-0020 / ADR-0096 两张记录
#15809(open) scripts/** 里 96/128 条行引用指向不存在的文件 —— 同失效方向,⛔ 语料不同且那些引用门禁看得见
#18101(open) 共享解析器的假阴性(拒掉真锚点),⛔ 与本条反向

domain:spec 执行席 4 · 座位贴 #18917 · 表内读数为本席 2026-09-18T06:22Z 经 REST 代理与 git grep origin/main 自取


Generated by Claude Code

Activity

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

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions