Repository navigation
[Decision] docs-drift cannot catch a vocabulary widening at all — the only route that would costs an authoring regime on 91 of 189 pages #11817
Description
Escalated by the domain:devx lane PM (session e2eac1a7-8000-5c95-9749-38aec2ace6fc) out of #11356, whose dev measured every in-model route to exhaustion and found none. The half I own is already ruled and dispatched; this card is only the half that is yours.
The decision in one line
Do we buy real coverage of this defect class at the price of an authoring mark on 91 of 189 doc pages — or accept that docs-drift structurally cannot see it, and settle for the tool no longer claiming otherwise?
What is not in question
The defect is reproduced byte-for-byte with the current tool. Replaying PR #11347's implementation half yields:
0 docs name something this change touched (9 anchor(s) …) anchorlessChanges: []
A green tick on a change whose own documentation page went incomplete.
| route | why it fails |
|---|---|
| anchor the new members | impossible by construction; also isCodeShaped (affected-docs.mjs:338) drops bare lowercase words like round/floor/min by design (#9230) |
| anchor the sibling members / container's full set | #11347 created a disjoint container beside an untouched regex carrier; diff-scoping (:598) never reads the untouched one. Measured k=0 |
| anchor the container symbol | derived, and named by 0 of 189 corpus pages |
It also sits behind none of #11802's three findings — the file is .ts so the extension gate never fires, the page is in the corpus, and the diff was read. This is a fourth, independent blind spot.
The two options, both measured
C — authored enumeration marks. The only route that actually catches the class.
Cost, measured: 447 enumeration cells across 91 of 189 pages, 1363 distinct enumerated spans. And every unmarked table reproduces the same blind spot one level down, so the regime only works to the extent it is adopted.
Evidence base: N = 1.
B — narrow the verdict (what I have already ruled and dispatched, so it happens either way). The run says only what it measured: anchors were derived, no page named them. It does not catch the class — it stops the tool from claiming it did. Zero authoring cost.
⛔ Option D (dialect-literal anchors) is closed: measured non-viable, not merely noisy — it would not have fired on the one real instance.
Why this is yours and not mine
B is a declaration narrowing over facts the run already computes; that is lane-PM territory and I took it. C is an authoring regime across half the documentation corpus — a standing cost on every future doc author, justified today by a single measured instance. That trade is not mine to make.
A bounded middle exists: commission a history sweep over the 91 enumeration-carrying pages to find further instances, and re-test the options against a real corpus rather than N=1. The dev names this as the honest precondition for C, and it is a measurable, bounded task. ⭐ This is my recommendation if you do not want to rule on C cold — it converts the decision from a judgement about one instance into one about a measured rate.
What the harm actually was
Not hypothetical, and it was mine: this seat came close to accepting #11347 on that green tick. The failure mode is an agent reviewer reading a green tick as "docs verified". Base rate for the anchors-derived-none-named state is 3 of 19 package-touching merges (16%) — rare enough that a notice will not be tuned out the way the ~106–112-row lists of #6893 / #7009 were.
Not blocking anything
B is dispatched and sequenced behind PR #11798 (#11356 is pm:blocked on it, measured collision — #11798's anchored-source case asserts that exact headline byte-exact at check-drift-comment.mjs:213). Nothing waits on this decision; it decides whether more follows.
Activity
os-zhuang commentedon Aug 24, 2026
分诊(决策箱勤务):落箱核验 —— 选项与测量完整,补标准四棱卡面块(存量英文分析不迁移,块为收件箱标准件)。
四维分析(标准卡面块):
anchors-derived-none-named(基率 16%,不会被刷屏麻木);C 把捕获做成机器判据,是更硬的防线,但 N=1 不足以证成 91 页制度。无阻塞:B 已按序派发(在 PR #11798 之后),本卡不挡任何在飞工作。
Generated by Claude Code
docs-drift: state the rule-carrying pairing no run can reach
os-support-ai commentedon Aug 25, 2026
Maintainer ruling — the bounded middle: history sweep first; C only returns with data
Source: maintainer, 2026-08-25, live PM chat (decision-inbox batch 4 review, session
session_01KWRU3s15AJz7PGW7a7wdCh), verbatim: 「其他接受」 — accepting the batch's presented recommendation for this card: the bounded middle (the card's own ⭐ option, seconded by the dev, the devx lane PM and triage).This decision card closes completed: the judgement it asked for is made; the conditional route back is written above and on the sweep card.
needs-user-decisionoff in the same write.Generated by Claude Code
docs-drift: state the rule-carrying pairing no run can reach (objects…