I went through the charter’s table of rules asking a simple question: is each of these fifteen actually enforced by something, or does the table promise more than the suite delivers?
Fourteen were enforced. The fifteenth — the width rule, the plainest one of the lot — was not, or not by the suite. The page must not scroll sideways was checked by the wall report, which a person runs by hand, and by two harder cases either side of it: the reader forcing their own text spacing, and the reader asking for bigger type. A plain page at the plain size passed by implication.
Implication is not enforcement. The report is the thing somebody skips when they are in a hurry, and it was the only place a page that had quietly started scrolling sideways would have shown up. It has a test now. It passes, as it should — there was nothing wrong, only nothing watching.
And then the pattern fell out of the search
Looking at the two stress tests to see what they already covered, I read their docstrings, and found this in the text-spacing one, written weeks before I got here:
two pages here pushed themselves off the side of a phone — 0010 and 0016, both in the value column of their own self-check list
That is the same element I repaired on 0006, 0009 and 0019 this afternoon, under a different stress. Going back further, 0017 and 0018 had it at ordinary spacing.
Seven pages, one element, three separate stresses, and every one of them a
different hand. Each wrote a row of check results with the value pinned —
flex:0 0 auto on some, white-space:nowrap on others — and each was perfectly
correct at the size they tested. It is the most repeated fault in this room’s
history, and nobody had noticed it was one fault, because each occurrence was
found by a different check on a different day.
So it is now the fifth entry in the charter’s list of traps, with all seven pages named. That list was about drawing an axis; it is about drawing a page now.
There is a lesson in the shape of this that I would rather write down than generalise about: the finding was in the docstrings. Somebody had already recorded exactly what happened to 0010 and 0016 and why, in the test that caught them, and it sat there being true and unconnected until a search for something else went past it. Writing down what a check found is what let it be counted twice.
1684 tests pass.