Skip to content

guard: the social picture and the language of a comment both stop drifting quietly - #44

Merged
donislawdev merged 1 commit into
mainfrom
cleanup/two-guards-for-two-blind-spots
Sep 2, 2026
Merged

guard: the social picture and the language of a comment both stop drifting quietly#44
donislawdev merged 1 commit into
mainfrom
cleanup/two-guards-for-two-blind-spots

Conversation

@donislawdev

Copy link
Copy Markdown
Owner

Two blind spots, both of which had already let something through.

The social picture was three formats out of date

The card is a page, rendered with the facts the registry holds. The picture is a photograph of it, taken by hand and committed. The site guard renders every page and compares it with what is published, and it copies the picture - so a card that changed and a picture that did not are both green.

says
the committed picture 21 formats, 21 real formats
the site 24 real formats

Picture taken 2026-08-29. Card last rendered 2026-08-31, when JPEG XL became the twenty fourth format. Three days, on the one image a stranger sees before anything else, with a green suite throughout.

The picture is retaken, and web/social-preview.sha256 holds the digest of the card it is a photograph of. Any template edit, any new format, any changed word moves that digest and the guard goes red with the three commands to fix it.

Taking it needs a probe rather than four lines, and that cost one wrong picture. The card asks for its assets by absolute path, so opened as a file:// it finds none of them - that shot came out with no icon and no window screenshot, looked entirely plausible, and had the right format count on it. A check asking "is this current" would have said yes.

A Polish comment cannot be seen by asking about characters

D9 makes everything in the repository English, comments included. Polish written without its accents is entirely ASCII, so it walks past the ASCII guard, past the punctuation guard, and past every linter. A six line Polish comment had already sat in internal/guard for a day, found by accident when misspell reported one word inside it as a typo.

ascii_test.go said "no automated check ever will". That was a written impossibility with nothing holding it, and the limit was in the mechanism rather than the problem - asking about characters cannot see a language, asking about words can. The sentence is corrected in place, with the date and the reason.

The wordlist holds Polish words that are not also English words. to, on, we, by, do, za, ale, co and pod are left out for exactly that reason. Comments only, because a literal may legitimately hold another language as test data and a comment has that excuse in no file.

One rule came from measuring rather than from thinking: a word in capitals is a quoted value, not prose. Two guards that name the verdict column of the Polish regression table were reported by the first version.

Checks

Both proven by mutation. preflight --quick green on all twelve, staleness clean at 735 entries.

🤖 Generated with Claude Code

…fting quietly

Two blind spots, both of which had already let something through.

The social picture. The card is a page, rendered with the facts the registry
holds, and the picture is a photograph of it taken by hand. The site guard
renders every page and compares it with what is published, and it COPIES the
picture - so a card that changed and a picture that did not are both green.

That had happened. The committed picture said "21 formats" and "21 real formats"
while the site said "24 real formats". Taken on 2026-08-29, card last rendered
on 2026-08-31 when JPEG XL became the twenty fourth format. Three formats out of
date, for three days, on the one image a stranger sees before anything else.

The picture is retaken and a stamp beside it holds the digest of the card it is
a photograph of. Any edit to the template, any new format, any changed word
moves that digest and the guard goes red.

Taking it needs a probe rather than four lines, and the reason cost one wrong
picture: the card asks for its assets by absolute path, so opened as a file it
finds none of them. That shot came out without the chickpea and without the
window, looked entirely plausible, and had the right number of formats on it -
so a check asking "is this current" would have said yes.

The language of a comment. D9 makes everything in the repository English,
comments included. Polish written without its accents is entirely ASCII, so it
walks past the ASCII guard, past the punctuation guard and past every linter -
and a six line Polish comment had already sat in internal/guard for a day,
found by accident when misspell reported one word inside it as a typo.

ascii_test.go said no automated check ever would catch this. That was a written
impossibility with nothing holding it, and the limit was in the mechanism rather
than the problem: asking about characters cannot see a language, asking about
words can. The sentence is corrected in place with the date and the reason.

The wordlist holds Polish words that are not also English words - to, on, we,
by, do, za, ale, co and pod are all left out for exactly that reason. Comments
only, because a literal may legitimately hold another language as test data and
a comment has that excuse in no file. A word in capitals is a quoted value
rather than prose, which is what two guards naming the Polish regression table
turned out to need.

Both proven by mutation.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@donislawdev
donislawdev merged commit a45795a into main Sep 2, 2026
30 of 31 checks passed
@donislawdev
donislawdev deleted the cleanup/two-guards-for-two-blind-spots branch September 2, 2026 16:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant