Found while re-keying the worklist for #15091 (PR #15127). Out of that card's scope — it re-keys rows and is explicitly not allowed to re-decide a carried-whole reason — so it is filed here instead of ridden along.
What
scripts/pm/bare-root-worklist.mjs records this reason on the PACKAGE_ROOTS packages row for scripts/check-adr-0087-registration.mjs (keyed check:changeset-gate-self-tests PACKAGE_ROOTS packages before the fold):
workspace manifests only — 74 of 5275 (1.4%), re-measured 2026-08-26. The recorded spelling is live and reaches 74 of 74, 100% precise and complete. Deferred: nine rows across three gates share this one population shape and no consumer has asked for any of them, so declaring here is a nine-edit expansion ahead of demand.
The population figures (74 of 5275, 74 of 74) are fine — they are what the pins re-measure. The row count is not:
Why it matters
The verdict itself (SPELLABLE-UNDECLARED) is unaffected — this is the deferral's stated COST, not its decision. But that file's own docblock names this exact failure class by name: a why is prose the tool never reads, --self-test audits keys and verdicts and never what a reason SAYS, and "only re-measuring catches this class". A recorded reason whose count nothing re-measures is the shape that rots.
What would close it
Re-measure the row count on the tree at the time of the fix and restate that one sentence (both terms together — the docblock forbids refreshing one term alone), or drop the count and state the deferral without a number. No verdict changes; the population measurements stay as they are.
Refs
#15091 / PR #15127 (the fold that makes the count 6 across 2) · #14880 and #15083 (the derivation keys that made it 15 in the first place).
Generated by Claude Code
Found while re-keying the worklist for #15091 (PR #15127). Out of that card's scope — it re-keys rows and is explicitly not allowed to re-decide a carried-whole reason — so it is filed here instead of ridden along.
What
scripts/pm/bare-root-worklist.mjsrecords this reason on thePACKAGE_ROOTS packagesrow forscripts/check-adr-0087-registration.mjs(keyedcheck:changeset-gate-self-tests PACKAGE_ROOTS packagesbefore the fold):The population figures (74 of 5275, 74 of 74) are fine — they are what the pins re-measure. The row count is not:
f594e70d, 15 rows carried one of the threemanifestsspellings, not nine — the twins [finding] dispatch-gates --commands does not derive check:optional-error-sink for a diff that adds a new logger-sink interface #14880 and [finding] dispatch-gates: nine scripts whose only CI invocations carry a value or a continuation still derive under a bare key CI never runs bare — rendering workflow-variable argv is a design call #15083 minted were never counted into that sentence;check-adr-0087-registration.mjsandcheck-skill-compatibility-version.mjs), so both halves of "nine rows across three gates" are wrong and the "nine-edit expansion" that the deferral is priced on is a six-edit one.Why it matters
The verdict itself (SPELLABLE-UNDECLARED) is unaffected — this is the deferral's stated COST, not its decision. But that file's own docblock names this exact failure class by name: a
whyis prose the tool never reads,--self-testaudits keys and verdicts and never what a reason SAYS, and "only re-measuring catches this class". A recorded reason whose count nothing re-measures is the shape that rots.What would close it
Re-measure the row count on the tree at the time of the fix and restate that one sentence (both terms together — the docblock forbids refreshing one term alone), or drop the count and state the deferral without a number. No verdict changes; the population measurements stay as they are.
Refs
#15091 / PR #15127 (the fold that makes the count 6 across 2) · #14880 and #15083 (the derivation keys that made it 15 in the first place).
Generated by Claude Code