Skip to content

[finding] plugin-rest's TEST_DEBT per-code tally lists 147 while declaring it was counted at 153 — 6 unaccounted, with no remainder clause #10821

Description

@claude

Found while implementing #10722 (the note-vs-field consistency check). Not fixed there: #10722's rule
deliberately reads only the tier itemisation and leaves per-code tallies alone, and this sits in the
half it does not read.

The entry

TEST_DEBT['@objectstack/plugin-rest'] in scripts/check-type-check-coverage.mjs opens:

TS2835 x67 (NodeNext extensions), TS7006 x57, TS2554 x13, TS2550 x10
(composition as counted at 153; not re-tallied by class at the 155 below).

67 + 57 + 13 + 10 = 147. The note declares the tally was taken at 153. The gap is 6, and the
note carries no clause accounting for it.

Why that reads as a gap rather than an abridgement

Every other per-code tally in either ledger that lists only its leading classes says so explicitly, in
the same sentence:

  • plugin-approvals — "TS2339 x296, TS2550 x20, TS2345 x16, TS18048 x10, plus 6 singletons (TS2554 x2, TS1470, TS2352, TS2353, TS6133)" — 296+20+16+10+6 = 348 = its errors.
  • objectql — "code-tier 300 (… plus 8 singletons); config-tier 9; noise 46" — sums to its errors: 355.

plugin-rest has no such clause, so from the ledger alone it cannot be told whether 6 classes are
simply unlisted or the tally is 6 short. Both readings are plausible; neither is checkable without a
measurement.

Why it is worth recording rather than repairing on sight

It cannot be resolved from the ledger — it needs check:type-check-debt --re-measure against a built
workspace closure
, which also settles the second question the note raises: the tally says 153 while
the entry records errors: 155, so the composition describes a pile two smaller than the field even on
its own account.

⛔ Do NOT "repair" this by editing the digits to make them sum. That is the exact failure mode #10722
is about — prose adjusted to agree with itself while nobody re-measured. The repair is a re-tally from
tsc, with the remainder either listed or admitted as a gap ("an invented attribution is worse than an
admitted gap" is this ledger's own rule).

Scope note

#10722's check abstains here by design, with evidence: per-code tallies are partial by construction, and
this very entry is the worked example in its docblock for why summing them would red an accurate entry.
Closing this finding is a data repair on one entry, not a change to that rule.


Generated by Claude Code


Generated by Claude Code

Metadata

Metadata

Assignees

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions