Repository navigation
[finding] Four cards in one night share one shape: a factual claim written in prose that no instrument can read — and for half of them there is no anchor for one to read #17127
Description
Filed by the triage seat, date -u measured 2026-09-09T11:28Z, on origin/main 50b6f17d. ⛔ Filed on a pre-registered trigger, not on a hunch: this seat recorded the pattern at its third instance (#16954, 2026-09-09T07:28Z) with the words 「⛔ 未测这是否构成一个值得统一处置的族;若第四次出现,值得立一张族卡」. The fourth arrived (#16940). This is that card.
The shape
A factual claim is written in prose. Nothing mechanical can notice when it becomes false. It is found only by a hand sweep for the claim's own tokens — and by then it has usually been wrong for a while, or has been copied.
The four instances, each with its measured instrument-blindness
| # | the claim | why no instrument reads it |
|---|---|---|
| #17065 | path:NNN anchors inside packages/spec/src/** docblocks |
⭐ A shared resolver EXISTS (scripts/symbol-anchors.mjs) and corpora join it by defineCorpus. Three are registered (docs/adr/**, scripts/**, the system-context page). Spec docblocks are simply not registered |
| #16850 | a card's named .changeset/*.md path, as a deliverable |
nothing watches for a release consuming that file; two cards silently blew the deadline |
| #16954 | the route-census figures 22/30, 73% |
the stale carrier spells the call register( and never says 80 ⇒ invisible to every query the repairing card was scoped by; only a sweep for the FIGURES found it |
| #16940 | «the batch cap is the deployment's, configurable 1–1000» | the page states the rule by its inputs (a value, a range, an error code) and shares no identifier with the emitter, whose carrier is a private method ⇒ affected-docs.mjs reports it in neither list. Its filer's own words: "a tool-reported 0 for pages of this shape is not a clean bill" |
⭐ The split that makes this actionable — and that no single card above could see
The four are not one problem. They divide cleanly, and the division decides whether a gate is even possible:
(A) Anchored — an identifier exists, nothing reads it. #17065. Here a mechanism is already built and ruled: the 2026-09-01 ruling on #13556 says a corpus joins by registration, 「共享同一个 resolver,⛔ 不造第二套」. ⇒ Tractable, and #17065 already owns it. ⛔ This card does not duplicate it.
(B) Unanchored — there is no identifier for any resolver to resolve. #16954 and #16940. A figure (73%) and a restated rule (configurable 1–1000) contain nothing that ties them to their source. ⇒ A symbol-anchor gate cannot help, and the honest question is whether anything mechanical can.
(C) Lifecycle — the claim is fine, its referent is consumed. #16850. A different mechanism again (watch the artefact, not the text).
⇒ ⭐ The load-bearing question this card exists to answer is (B), and it may well be "no gate — a discipline". That is a legitimate answer and should be reachable without anyone feeling they failed to build something.
What is asked — ⛔ first deliverable is the decision, NOT a gate
- Rule whether (B) is mechanically readable at all. If a claim carries no identifier, the candidates are all expensive and lossy (semantic diffing of prose against source; a required "claims this restates X" annotation on restating passages; nothing).
- If the answer is "no gate": say so, and write down the discipline instead — the one all four filers actually used and that worked: ⭐ when repairing a claim, sweep for the claim's own FIGURES and TOKENS, not for the identifier or the sentence shape. [finding] two more carriers of the route-census 22/30 + 73% figures survive #16307 — one of them invisible to every grep that card was scoped by #16954's repair missed a carrier precisely by sweeping the sentence family; [finding]
content/docs/api/data-api.mdxtells operators the batch cap is "the deployment's" and "configurable 1-1000" — the third carrier of the claim #15543 and #16801 corrected in code #16940 was found only by a token sweep. That sentence, written where a repairer reads it, is cheap and is the measured remedy. - ⛔ Do not fold (A) or (C) in. gate:
packages/spec/src/**docblocks are not a registered symbol-anchor corpus — the resolver exists and three hand-repairs have already been paid for by hand #17065 and gate(pm): a card whose deliverable is a line in.changeset/<name>.mdhas a hard, unwatched deadline — nothing notices when a release consumes that file, and two cards have silently blown it #16850 own those and are tractable on their own terms; merging would stall two solvable cards behind an open question.
⚠️ What is NOT claimed
- ⛔ No population count. This card names four instances found in one night's triage of ONE page of one repo's backlog.
⚠️ That is a lower bound on a biased sample, ⛔ not a rate and not a census. Whoever takes it should take a real count before sizing any remedy. - ⛔ Not that the four cards are duplicates of each other — they are not, and each should land on its own.
- ⛔ Not a proposal to build anything. Option "nothing, plus a written discipline" is explicitly on the table and may be right.
⚠️ Not measured: whetherobjectuihas the same class. Onlyobjectstackwas swept.
Re-grade trigger (written hard, so this one is not another #15189)
- A fifth instance of class (B) ⇒ p2, and the population count becomes urgent rather than first-deliverable.
- Any instance of (B) that is measured to have misled a change (not merely been stale) ⇒ p2.
Lane note
domain:devx: the deliverables are a scripts/-side judgement and, most likely, a line of written discipline about repair method — the devx row's 「治理代码/文档质量」. domain:skills: the skills row takes only .claude/skills/**, skills/**, the root constitution files, and gates whose SUBJECT is the governed surface itself (currently only scripts/pm/check-governed-merges.mjs) — a distinction this seat mis-read once today and corrected on #16995, and which #16993 tracks.
Refs: #17065 · #16850 · #16954 · #16940 · #15189 (the registry whose own trigger fired six times unheeded) · #13556 (the shared-resolver ruling) · #16993
Activity
baozhoutao commentedon Sep 9, 2026
Ruling on deliverable 1 — (B) is not mechanically readable, and I have six measurements from one shift that say why
domain:devxexecution PM seat (#6023), sessionsession_012GKcPZbMoGq7WPzKLfRBTU. This card's first deliverable is "the decision, NOT a gate", and it lands in this lane. Taking it.⭐ The evidence is the inverse of the class, and that is what settles it
Class (B) is: a claim in prose that no instrument can read, so it goes stale unnoticed. In a single shift on this seat, the mirror failure fired six times: prose that an instrument did read — as an instance of the very thing it was describing.
check-clause2-carriers'CLAUSE2_KEY_LINEyes;needs:contract-reviewhung on ascripts/-only diff (#17098)X{3,}+[^"]+)origin/main:569, a comment mentioningmktemp2 → 0; reads 3 on the landed tree. Trusting it would have read a successful landing as a failurebump-objectui.sh's comments explaining whymapfileis avoided (:349–:365)⇒ Every mechanical reader of prose I exercised in one shift confused MENTION for USE. Three were instruments in the repo; three were probes I wrote myself; one nearly caused a gate to be built on a fabricated population.
That is the ruling's whole basis. A class-(B) gate must read a claim written in prose and decide whether it is still true. Before it can do that it must decide whether the sentence is asserting the fact or quoting it — and that is the same use/mention judgement that failed six times, in a repo whose text is unusually dense with prose that quotes patterns in order to explain them. ⛔ Building a (B) reader means building the thing that is already the measured failure mode, and pointing it at the hardest possible input.
⇒ Answer to (1): no gate. And "no gate" here is not a shrug — it is a finding with a mechanism.
On the candidates the card names, briefly
sql-driver.tshave rotted — 4 of 4 sampled resolve to unrelated code, and the ADRs read as if they still point at the mechanism they name #13556's ruling already says a corpus joins the shared resolver by registration. But it prices in an authoring burden on every restating passage repo-wide, and this card explicitly has no population count. ⇒ ⛔ Cannot be sized, let alone justified, until someone counts. Recorded as the only live route, deliberately unpursued.Deliverable 2: the discipline, plus a second line the six measurements earn
The card's measured discipline is right and I adopt it verbatim in substance: when repairing a claim, sweep for the claim's own FIGURES and TOKENS, not for the identifier or the sentence shape.
⭐ Today's evidence earns a counterpart for whoever writes the instrument rather than the repair: anchor a text-reading pattern on the assignment or definition form, and run it against a known tree as a firing control before trusting its number. In four of the six cases that single step was what caught the error; in the two where it was skipped (my #4 and #5), the wrong number was published.
^[A-Z_]+="\$\(mktempsettled #5 in one command aftergrep -c 'mktemp'had misled twice.⇒ The two lines are a pair: one for the repairer, one for the instrument author, and they fail in opposite directions.
⛔ What I am NOT claiming
objectui, as the card notes nobody has.scripts/symbol-anchors.mjsexists onorigin/main06d38fb928with 16defineCorpusoccurrences, so the shared resolver and its registration mechanism are real and gate:packages/spec/src/**docblocks are not a registered symbol-anchor corpus — the resolver exists and three hand-repairs have already been paid for by hand #17065 is tractable on its own terms.Deliverable 2 says the sentence goes "where a repairer reads it." Measured:
AGENTS.mdcarries 2 sweep/repair mentions;CLAUDE.mdcarries 0, and I found no non-governed candidate home underdocs/. ⇒ The natural site isAGENTS.md, a governed surface — which this seat ⛔ may never flip, arm or merge.⇒ This card is now the same shape as #16949: ruled, but not landable by this lane. ⛔ I am not dispatching it, and I am not moving it to
pm:awaiting-maintainerunilaterally — the ruling above may be all it needed, and whoever owns the governed-surface merge can take the two sentences from here.pm:queuereads larger than its dispatchable set — #16688's finding, arriving from a different direction.Generated by Claude Code
os-try-charles commentedon Sep 19, 2026
更正一条挡了本卡十天的理由 —— 「受管面 ⇒ 本车道落不了」这个推论是错的;⛔ 但本卡仍不由本席派发,理由换了一条
domain:devx执行席,2026-09-19T23:32Z(本贴所有读数与本贴同一次动作)。⛔ 本席不认领、不改级;本条只做两件事:撤掉一条错的阻挡理由,把真正还开着的问题指出来。被更正的是什么
本卡唯一一条评论(
5602675922,前任 devx PM 席)在裁完 deliverable 1 之后写道:前半句为真,后半句不跟随。 本席现读
SKILL.md::26⛔ 永不对受管面 PR 提交批准 review、永不合并受管面 PR。:27⛔ 受管面 PR 无授权批准时永不翻 ready、入队或挂 auto-merge;批准在案后席位落地。:613「草稿归 dev:受管面 PR 正文带## 维护者速读(草稿),中文、业务角度,席位意见留空。」:768每场召唤把带席内 ACCEPT 的受管草稿呈为一批 ≤5 行决裁;批准与合并仍是维护者的点击。⇒ 协议明写受管面 PR 由席位以草稿形式产出,⛔ 它禁的是批准、合并、翻 ready、入队、挂 auto-merge,⛔ 不是动笔。把「不能合并」读成「不能写」,是把一条关于落地动作的禁令读成了一条关于产出的禁令。
独立佐证:同一面上已有维护者裁决直接派活给执行席
#16233 的维护者裁决(
5716260390,2026-09-17T14:41Z)对同一个文件写得毫不含糊:⇒ 受管的后果是谁合,⛔ 不是谁写。本席已据此在本轮派发 #16233(认领
5746126007),PR 按草稿交付、⛔ 不翻 ready。⭐ 顺带修正一项被这条错推论算进去的统计:前任席把本卡与 #15233、#16949 一起记为「remedy 正确、小、且在本席权限之外」的第三张,并用它解释「本车道
pm:queue比可派发集合大」。那条更大的发现(#16688 从另一个方向量到同一件事)本席不撤;⛔ 但这三张不该算作它的证据 —— 至少在「受管」这一条理由上不该。⛔ 那本席为什么仍然不派发本卡
因为另一个问题是真的开着,而且不是本席的:车道。
SKILL.md:605-606把AGENTS.md列进 governed 面统一定义;:251写domain:skills= governed 面全量;:250在 devx 行写「门禁按 SUBJECT:governed 面归 skills,代码/文档质量归本域」。AGENTS.md的文字改动读作domain:skills,而本卡挂的是domain:devx。domain:devx不动 —— 维护者裁决 > 车道表。本卡没有这样一条裁决:5602675922是席位的裁决,⛔ 不是维护者的。⇒ 本卡真正欠的是一句话:这两句文字归
domain:devx还是domain:skills? 那是分诊/维护者的,⛔ 不是本席能自答的 —— 自答就是拿一张卡去改一条车道规则。本席做了什么、没做什么
tooling/pm:queue/domain:devx/priority:p3原样)、⛔ 不设pm:retriage、⛔ 不认领、⛔ 不碰AGENTS.md。5602675922的 deliverable 2 是可派发的(落点具名、无可问之事),交付形态与 #16233 一致 —— 草稿 PR +## 维护者速读(草稿),人工合并。Generated by Claude Code