fix(page): read a comma between a denial and an affirmation as a clause boundary (#441)
`Page is blank. No printed text, and handwriting is present.` shipped the page empty and reported
nothing: the walk back from `handwriting` crossed the `and` and the denied noun, found the `No`, and read
the affirmed noun as the last member of a denied list.
Measured before changing anything, over the 3,747 page replies with a parseable log on disk: of 204 blank
declarations, 69 have a denial reaching over a comma and a conjunction to a name for text and 81 over a
bare comma, all 150 are lists, and 0 are second clauses. Reading a comma as a boundary stops honouring 38
of the 204 — one blank page in five reported as a hole — so #200's trade stands with a number on its
losing side and the comma is refused as the discriminator.
`secondClauseJoint` reads the coordination instead: a verbless denied half, exactly one comma in the
crossed span and none on the affirmed noun, a finite verb on that noun, and no further comma or
conjunction between the joint and that verb. The joint word decides nothing — `or` after it says the
denial is still listing, `and` says neither thing, a bare comma says nothing at all. #434's comma bound
is removed, which answered the same sentence on the form of the word (`and scrawled words` refused, `and
printed words` declared) and was reporting pure denials as holes: 30 of 30 `No <w>, annotations, or stamps
are present.` rows and 27 of 30 `No text, <w> content, figures are visible.` rows are honoured again.
Four review rounds, three of which changed the rule. The joint word had to go (a spliced clause was
shipping empty), the noun's own comma had to be read (an asyndetic denial was reported as a hole), and
the last cost is stated rather than smoothed: a two-member denial reads as a clause and its blank page is
reported, and a noun heading an affirmed list reads as a member and its page is delivered empty. Both are
pinned; the corpus writes neither, and replaying all 3,747 replies through base and head moves 0 verdicts.
Closes #436
Co-Authored-By: Blake Bertuccelli-Booth <46652+bbertucc@users.noreply.github.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>