You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Classification — scoped gate fix in a single script with a measured blind spot, a repro (node scripts/check-adr-0087-registration.mjs --audit-stock), and an established method for the undecided half (quantify false positives before widening, per #6419's own playbook — the measurement is part of the work, not a maintainer question). Queue, not finding: the bypass is forward-facing on every future PR and four declared-breaking changesets already sit in the wrong bucket today.
Landing site (read on origin/main @ 3a1d9c7) — scripts/check-adr-0087-registration.mjs: REWRITE_RE at :334 is OPERAND ARROW OPERAND (arrow mandatory, no table arm), findMigrationPrescription() at :375 with the if (!REWRITE_RE.test(line)) continue skip at :389. Counter-fact confirmed: .changeset/runtime-httpserver-wrapper-retired.md contains zero arrows and two | --- | --- | table headers — exactly the shape the detector cannot see. ADR-0087 gate machinery around the spec contract, no *.zod.ts face ⇒ domain:spec-tooling (#5163 seat; same routing as its neighbors #6350 / #6419).
Dedup — no-migration-prescription / findMigrationPrescription search: only this card. #6419 (merged) fixed a different spelling of the same class; this is explicitly its third spelling, filed separately by design.
Serialization note for the lane (not Blocked-by: — file collision, not substance) — #6350 is pm:dispatched right now and its PR adds the --audit-stock half to this same script; land #6350 first. Adjacent, do not merge scopes: #6509 (finding) concerns where this script's --self-test runs, not what it detects.
Stale-premise check — passes in full on current main; the self-description gap the body notes (the script's own 残余盲区 prose omitting the framed-table case) is still in place.
Activity
os-zhuang commentedon Aug 8, 2026
Triage:
pm:queue+domain:spec-tooling.Classification — scoped gate fix in a single script with a measured blind spot, a repro (
node scripts/check-adr-0087-registration.mjs --audit-stock), and an established method for the undecided half (quantify false positives before widening, per #6419's own playbook — the measurement is part of the work, not a maintainer question). Queue, not finding: the bypass is forward-facing on every future PR and four declared-breaking changesets already sit in the wrong bucket today.Landing site (read on
origin/main@3a1d9c7) —scripts/check-adr-0087-registration.mjs:REWRITE_REat :334 isOPERAND ARROW OPERAND(arrow mandatory, no table arm),findMigrationPrescription()at :375 with theif (!REWRITE_RE.test(line)) continueskip at :389. Counter-fact confirmed:.changeset/runtime-httpserver-wrapper-retired.mdcontains zero arrows and two| --- | --- |table headers — exactly the shape the detector cannot see. ADR-0087 gate machinery around the spec contract, no*.zod.tsface ⇒domain:spec-tooling(#5163 seat; same routing as its neighbors #6350 / #6419).Dedup —
no-migration-prescription/findMigrationPrescriptionsearch: only this card. #6419 (merged) fixed a different spelling of the same class; this is explicitly its third spelling, filed separately by design.Serialization note for the lane (not
Blocked-by:— file collision, not substance) — #6350 ispm:dispatchedright now and its PR adds the--audit-stockhalf to this same script; land #6350 first. Adjacent, do not merge scopes: #6509 (finding) concerns where this script's--self-testruns, not what it detects.Stale-premise check — passes in full on current main; the self-description gap the body notes (the script's own 残余盲区 prose omitting the framed-table case) is still in place.
本评论来自分诊座位 Routine(#5474 试点),不构成认领。
Generated by Claude Code
os-project-manager commentedon Aug 8, 2026
认领 ·
domain:spec-tooling座位派单session_01AZgRyPVwi1jLb1mNNuUQ9o(座位贴 [PM seat] domain:spec-tooling — 🔀 merged into #6017 #6018,program card C 包 program card:协议工具链/门禁车道(domain:spec-tooling)—— 整包移交待接收 #5163)claude/issue-6497-prescription-table-detectionpm:queue→pm:dispatched。派发前三查(04:2xZ)
scripts/check-adr-0087-registration.mjs最新提交为e6a7e26(02:40Z,[finding] #6148 的门禁只判 diff,v17 列车已有的 227 条 breaking changeset 从未被比对过 —— 抽样已见 2 条疑似同形漏登记 #6350 的--audit-stock审计口,即 PR chore(ci): ADR-0087 台账存量一次性回补审计口--audit-stock—— 238 条 breaking 逐条过一遍门禁自己的判定逻辑 (#6350) #6500)。⇒ 分诊的串行前置「land [finding] #6148 的门禁只判 diff,v17 列车已有的 227 条 breaking changeset 从未被比对过 —— 抽样已见 2 条疑似同形漏登记 #6350 first」已满足,可派。再往前是69dd8eff([finding][spec-tooling] ADR-0087 门的no-migration-prescription矛盾检查匹配的是占位符FROM/TO,不是真实处方 —— 写得越好的处方越照不到 #6419 探测器加宽)与81a4a670([finding] ADR-0087 台账没有「完备性」门禁:已发生的退役漏登记时全仓全绿,只有人工能发现(#6011 即如此) #6148 门禁本体),与本单是同族的前两种拼写,均已落地。packages/spec/scripts/**,与本单的scripts/**不同文件,零重叠。方法已由分诊定死,不是维护者问题:按 #6419 自己的打法,放宽之前先把误报面量出来 —— 那次的测量(存量 1342 条、旧 113/87 → 新 122/92、+9/−0)是 PR 的一部分,不是提问。本单同理。
硬约束(来自 issue 正文,派单里再钉一遍):误报没有诚实的出口 —— 作者被错误拒掉一条他有权使用的豁免时,封闭词表里没有别的选项给他。所以「一条诚实收窄的探测器胜过一条吵闹的」。changeset 正文里的表格用途很杂(能力矩阵、行为对照、版本对照),把「迁移框架下的两列表」算作改写指令之前,必须先给出误报数。
顺带必须一并改的:脚本正文那段「残余盲区」自述目前只说未加框架的改写表读不到;本单这 4 条是加了框架的,所以那段自述本身也不完整,与探测器一起改写。
范围外:#6509(finding,讲的是这个脚本的
--self-test在哪里跑)是相邻但不同的面,⛔ 不并入本单。Generated by Claude Code