Observed while running pnpm check:type-check-debt --re-measure for an unrelated card (#8868 / #8833, PR #8921). Filed unassigned, recording rather than starting — this is not the card's subject and was not fixed there.
What was measured
On the merged head f9811727d (branch merged with origin/main @ 85f5e7868), with the workspace closure built as lint.yml builds it:
check-type-check-coverage --re-measure: OK — 33 ledger entr(ies) re-measured in 211.5s,
1926 raw tsc error(s) total, none above its recorded number.
ℹ @objectstack/lint: TEST_DEBT records 20, tsc now reports 19 (-1) -- the entry can be
lowered. Not an error: an improvement must not have to pay a bookkeeping toll to land.
The gate passes, and correctly so — the ratchet only fails on drift up.
Why it is worth recording anyway
The gate's own message states the harm, and it is not hypothetical by its own citation:
But the gap is not bookkeeping while it is open: nothing else reads this layer, so 1 new error(s) can land here and this gate will report success (#6376 -- driver-mongodb's 33 swallowed a whole signature reversion).
So while the entry sits at 20 against an actual 19, @objectstack/lint's test layer has exactly one error of free headroom: a genuine new type error there lands green through this gate, and #6376 is the precedent for that headroom swallowing something real rather than staying theoretical.
Disposition
Observation-class, hence the finding label and no pm:queue:
- the remedy is the gate's own advertised affordance,
pnpm check:type-check-debt --lower, which writes the measured number itself; - lowering a ledger entry is the permitted direction (raising a ceiling is maintainer-only), so this needs no ruling — only someone's hands;
- it is pre-existing and unrelated to the card that observed it, and the drift may be a side effect of any recent
@objectstack/lint change rather than a single identifiable PR.
⛔ Deliberately not fixed as a rider on PR #8921: that PR's declared region is diffMetaItem in packages/metadata-protocol, and a ratchet-ledger write for an unrelated package is exactly the kind of scope creep that makes a diff unreviewable.
Not a duplicate
Searched open issues for the TEST_DEBT / lint / lowered-entry wording before filing; no match. The only related artifact is #6376, cited by the gate itself as the precedent for the harm, not as this condition.
Backlink: observed on PR #8921 (#8868 · #8833).
Generated by Claude Code
Observed while running
pnpm check:type-check-debt --re-measurefor an unrelated card (#8868 / #8833, PR #8921). Filed unassigned, recording rather than starting — this is not the card's subject and was not fixed there.What was measured
On the merged head
f9811727d(branch merged withorigin/main@85f5e7868), with the workspace closure built aslint.ymlbuilds it:The gate passes, and correctly so — the ratchet only fails on drift up.
Why it is worth recording anyway
The gate's own message states the harm, and it is not hypothetical by its own citation:
So while the entry sits at 20 against an actual 19,
@objectstack/lint's test layer has exactly one error of free headroom: a genuine new type error there lands green through this gate, and #6376 is the precedent for that headroom swallowing something real rather than staying theoretical.Disposition
Observation-class, hence the
findinglabel and nopm:queue:pnpm check:type-check-debt --lower, which writes the measured number itself;@objectstack/lintchange rather than a single identifiable PR.⛔ Deliberately not fixed as a rider on PR #8921: that PR's declared region is
diffMetaIteminpackages/metadata-protocol, and a ratchet-ledger write for an unrelated package is exactly the kind of scope creep that makes a diff unreviewable.Not a duplicate
Searched open issues for the TEST_DEBT / lint / lowered-entry wording before filing; no match. The only related artifact is #6376, cited by the gate itself as the precedent for the harm, not as this condition.
Backlink: observed on PR #8921 (#8868 · #8833).
Generated by Claude Code