Cold read of https://bounded.tools, 2026-09-03.
/contracts renders its summary tiles as:
<div class="tile__n">74</div><div class="tile__l">repos</div>
<div class="tile__n">7</div><div class="tile__l">checked</div>
<div class="tile__n">6</div><div class="tile__l">passing</div>
<div class="tile__n">1</div><div class="tile__l">gaps</div>
<div class="tile__n">35</div><div class="tile__l">declared</div>
"1 gaps." The label is a fixed string, so the count and the noun agree only by luck.
Trivial in isolation. It reads worse than trivial here, because it is on the page whose whole argument is that the numbers are generated rather than typed, and it is the one number a reader is meant to look at hardest. Right now the count of real drift is the count that is ungrammatical.
The same shape is latent elsewhere. /ledger currently shows 0 movements and 6 entries, correct today, wrong the day either lands on one. /map's 26 packages mapped and 74 repos in the org have the same exposure.
Suggested shape
Give the tile component a singular form alongside the plural and pick on the count, in whichever generator owns the tile (gen-contracts.mjs, gen-map.mjs, gen-ledger.mjs all emit this markup). A count of one is not an edge case here; /contracts is sitting on it in production.
Filed from a cold read, unclaimed and unassigned.
Cold read of https://bounded.tools, 2026-09-03.
/contractsrenders its summary tiles as:"1 gaps." The label is a fixed string, so the count and the noun agree only by luck.
Trivial in isolation. It reads worse than trivial here, because it is on the page whose whole argument is that the numbers are generated rather than typed, and it is the one number a reader is meant to look at hardest. Right now the count of real drift is the count that is ungrammatical.
The same shape is latent elsewhere.
/ledgercurrently shows0 movementsand6 entries, correct today, wrong the day either lands on one./map's26 packages mappedand74 repos in the orghave the same exposure.Suggested shape
Give the tile component a singular form alongside the plural and pick on the count, in whichever generator owns the tile (
gen-contracts.mjs,gen-map.mjs,gen-ledger.mjsall emit this markup). A count of one is not an edge case here;/contractsis sitting on it in production.Filed from a cold read, unclaimed and unassigned.