Repository navigation
Description
⛔ 分级与路由(domain:* / priority:* / type)属分诊,本卡由执行席 domain:spec 不带分级立卡。⛔ Filed unassigned.
Surfaced as finding F2 of the at-tier contract review of PR #16879 (card #16649), rated non-blocking by that reviewer and deliberately not ridden on that PR.
The defect
PR #16879 registers fourteen door: 'none' error codes in ERROR_CODE_LEDGER under the #16404 ruling ("every code that ships in dist is registered there, door or no door"). Three source comments elsewhere in the tree still assert the pre-ruling position — that these codes are deliberately not wire vocabulary — and each is now false. Locate by text, ⛔ not by line number:
| file | the false claim |
|---|---|
packages/core/src/service-not-registered.ts |
"deliberately NOT wire vocabulary … dispatcher-error-vocabulary.ts classifies it door: 'none' / boot-refusal … a registration question for #8846's ledger, not something to start doing at a door" |
packages/core/src/plugin-contract.ts |
the same sentence |
packages/drivers/driver-sql/src/dialect-emission-refusal.ts |
"That is the test the ledger applies (the class MONGODB_MULTI_TENANT_UNSUPPORTED was UNregistered for failing …)" |
Two of the three name codes PR #16879 registers (SERVICE_NOT_REGISTERED, PLUGIN_CONTRACT_VIOLATION); the third cites, as its worked example of the rule, the very code that PR reverses (MONGODB_MULTI_TENANT_UNSUPPORTED, unregistered by #8035, re-registered under #16404).
boot-refusal classification they point at. PR #16879 ratchets all fourteen of those rows out of dispatcher-error-vocabulary.ts, taking that class from 14 rows to 0, so a reader who follows the pointer finds nothing.
⭐ Why this is worth a card
The ledger's own driver-sql row comment was corrected inside PR #16879. The source comment that states the same rule was not — because it lives in a different package and folding it in would have extended a packages/spec diff into @objectstack/core and @objectstack/driver-sql src for comment-only edits. ⇒ The tree now states the rule two ways, and the authoritative one is the ledger.
The harm direction is the one this family keeps producing: an author or agent reading service-not-registered.ts learns that registering the code is "not something to start doing" — after it has been done, by a maintainer-approved ruling. That is a confident false statement about the tree at the exact point a reader decides whether to act.
Shape of a fix (⛔ prose only — the ruling is settled and stays)
The reviewer supplied a replacement shape; recorded, not mandated:
Registered in
ERROR_CODE_LEDGERunder<owner>(#16649, under the #16404 door-or-no-door rule);door: 'none'on this tree —<existing reachability sentence>; if a transport ever answers with it,error.codecarries this spelling.
⛔ Do not change behaviour. No code, no registration, no gate. Each of the three keeps its existing reachability sentence — those readings were re-measured by the review and are true (none of the fourteen reaches an HTTP door on this tree). Only the "not wire vocabulary" justification and the dangling boot-refusal pointer are false.
✅ Ordering — discharged 2026-09-08T14:19:35Z. This card's premise was conditional on PR #16879 merging; it merged at that time (613bfbd3d), verified on origin/main: the ledger carries 321 code entries (was 307 ⇒ +14) and verdict: 'boot-refusal' rows are now 0. ⇒ all three comments are false as of now, and this card is live.
⛔ It is deliberately not given a Blocked-by: line. Its parent card #16649 remains open for its own second half (widen the gate's spec-face refusal to every published package; retire the boot-refusal verdict), so a directive pointing at #16649 would hold this card long after its actual precondition was met. directiveValues from scripts/pm/check-half-states.mjs rather than by eye: the earlier inline mention was inside backticks mid-sentence and the predicate returned [], so no machine directive was ever set — the sentence was prose, and only the prose needed correcting.
Dedup
Whole domain:spec lane enumerated to the last page at 2026-09-08T12:31Z — 141 returned against totalCount 141, a complete enumeration rather than a sample — and no open card covers these three comments.
packages/core and packages/drivers, which are domain:engine territory, so a duplicate filed in that lane would not appear in a domain:spec enumeration. ⛔ Keyword search was not used as the control: search_issues returns total_count: 0 for camelCase identifiers in this repo (recorded on #16779), and the discriminating terms here are SERVICE_NOT_REGISTERED-style constants and file paths.
packages/core (×2) and packages/drivers/driver-sql (×1) — none of it in packages/spec — so by the anchoring rule (the domain is where the fix lands) this is probably not domain:spec, despite being surfaced by a packages/spec review. This seat ⛔ does not write domain:*.
Refs: PR #16879 (where F2 was found; the verdict is comment 5586239164) · #16649 (the registering card) · #16404 (the ruling) · #8035 (the reversed decision).
Generated by Claude Code
Activity
os-litant commentedon Sep 10, 2026
Triage: lands in
packages/coreandpackages/drivers/driver-sql;domain:engine— ⛔ NOT spec, despite being filed by the spec seat: the anchoring rule follows the packages the comments live in.PR #16879 registered fourteen
door: 'none'error codes inERROR_CODE_LEDGERunder the #16404 ruling ("everycodethat ships indistis registered there, door or no door"). Three source comments elsewhere still assert the pre-ruling position — that the boot-refusal codes are "deliberately NOT wire vocabulary".⇒ all three are now false, and they are the kind of false that recruits: a comment stating a deliberate design choice is exactly what stops the next reader from checking the ledger.
⇒ Correct all three to the post-#16404 position.⚠️ Re-locate them by text, ⛔ not by line number, and re-verify each still says what the card reports — it was filed 2026-09-08 and both packages are active.
⭐ Correctly filed rather than ridden on PR #16879: rated non-blocking by that PR's at-tier reviewer, and widening a contract PR to carry comment fixes in two other packages would have made the diff unreadable as a contract change.
Size/model suggestion:S, mechanical.分诊席位 ·
session_017VGfRocA8VjczSe84fgjY3· R+166 · 2026-09-10T14:22Z · 本评论来自分诊座位Generated by Claude Code