Skip to content

ADR-0087 迁移说明探测器把「指向别处的迁移说明」当成迁移说明本身 —— 这类 changeset 无任何可用处置,PR 会被卡死 #6967

Closed

Description

@os-project-manager

代 #6350 回补审计的 dev 提交(它当时被 GitHub 限流,无法自行立单;正文为其原文,由 domain:spec-tooling 座位转录并补做查重)。未认领、未定级。

⚠️ 这是可复现的前向门禁缺陷,不是观察类 —— 它今天就能把一个作者卡死。

缺陷

findMigrationPrescription 会匹配**「指出迁移说明在哪里」的散文**,而不是迁移说明本身。

存量里的活体标本:.changeset/v17-rc-anchor.md(v17 发版锚点),其唯一的迁移相关文本是:

Migration: each breaking change's own changeset carries its FROM → TO guide (grep the CHANGELOG for !: entries)

这是一个指路牌,不是改写处方。该 changeset 根本没有退役任何面,它存在的唯一目的是把版本号顶上去。审计据此把它报成 residue 候选。

为什么是活缺陷,而不只是审计噪音

对这样一条 changeset,作者在门禁面前四条路全堵死:

处置 为何不可用
not-required (no-migration-prescription) 被门禁的矛盾检查拒绝(脚本约 :1226,判词「contradicts the changeset's own body」)—— 正文里明明有 FROM → TO 字样
registered 没有任何面被退役,无可登记之物
unpublished @objectstack/spec 是已发布包,不成立
already-registered 指不出任何真实条目 id

⇒ 今后任何一条「正文引用了别处 FROM → TO 指南」的 changeset,都会让它所在的 PR 变成不可合并,且没有任何可选的处置。

同族,方向相反

探测器此前已修过三次,全部是漏报方向(把真处方读成非处方):

本条是它们的镜像:把一个对处方的引用读成了处方。同一个探测器,反方向的误判。

修法方向(建议,不主张)

要求被框定的区域含有具体的改写对,并排除宾语是「指南本身」的句子。

查重(由座位补做,dev 当时无法执行)

findMigrationPrescription / prescription detector / no-migration-prescription 三个关键词检索 open issue:除本座位贴 #6018 外零命中,无同题单。按 #4949 纪律执行。

出处

#6350 的存量回补审计(会话 session_01AZgRyPVwi1jLb1mNNuUQ9o 派发)。审计本身的实测数据与 needs_decision 记录在 #6350 线程。

Activity

  1. os-project-manager commented on Aug 9, 2026

    @os-project-manager
    CollaboratorAuthor

    Triage (maintainer-authorized one-off pass, 2026-08-09 — registered on #6015): promoted straight to pm:queue, routed domain:spec-tooling.


    Generated by Claude Code

  2. added
    pm:queueReady for the PM dispatch loop
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    and removed
    pm:queueReady for the PM dispatch loop
    on Aug 9, 2026
  3. os-project-manager commented on Aug 9, 2026

    @os-project-manager
    CollaboratorAuthor

    认领 · domain:spec-tooling 座位派单 — 会话 session_01AZgRyPVwi1jLb1mNNuUQ9o(座位贴 #6018),分支 claude/issue-6967-pointer-not-prescription,pm:queue → pm:dispatched。

    三查(本轮实测):① ㉔ 落点 scripts/check-adr-0087-registration.mjs 最新提交 60be96377(#7004 via PR #7053)——晚于本单立单,改的是 changeset 解析器的 YAML 注释处理。⚠️ 派单要求先在当前 main 上重验标本(.changeset/v17-rc-anchor.md 是否仍被报为 residue 候选、四条处置是否仍全堵),前提成立再动手;② 竞态:线程仅分诊晋级评论,无认领;③ 不相交:同批 #6751(packages/spec/scripts/lib/sharded-artifacts.ts)、#6833(packages/lint/src/validate-sharing-rule-enforceability.ts),零重叠。


    Generated by Claude Code

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

Metadata

Metadata

Labels

pm:dispatchedDispatched to a dev agent by /pm-dispatch

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions