Skip to content

Machine judgment · research july 2026 · published 2026-08-03 · v1 · 3 min read

Prose is not behavior

A checker that cannot tell a mention from a use puts a price on explaining yourself

What happened when a scanner flagged a file for the very pattern it was explaining away, and why a codebase required to document itself cannot also be penalized for the documentation. The canonical treatment of the explanation tax.

In brief
The problem

verified

Every claim this passage rests on has been checked against its sources.

  • "A build check reading raw source reported a file as shipping a forbidden font-display setting when the file contained only a comment explaining why it avoids that setting; the fix was to strip comments before matching, and the rule was recorded as prose is not behavior."

    verified. The validator source read directly on 2026-08-03; the incident is recorded in the comment-stripping function's own docstring, which states the case and the resulting rule.

Open the complete evidence in the structured publication.

Static checks are run over raw source, and a file that explains why it avoids a forbidden pattern contains the forbidden pattern, so the most carefully documented work is the work most likely to be flagged.
The mechanism

verified

Every claim this passage rests on has been checked against its sources.

  • "A pattern matcher operating on raw text cannot distinguish a use of a token from a mention of it, because the two are the same run of characters."

    verified. Definitional. The use-mention distinction is standard in philosophy of language (Quine's treatment is the usual citation) and the limitation of substring matching follows from what matching is.

Open the complete evidence in the structured publication.

A pattern matcher has no access to whether a string is doing something or describing something, so a check reading raw text charges the same penalty for committing a fault and for documenting its avoidance.
The move

position

This is the publication's stated position, not an empirical claim. It rests on the argument rather than graded evidence.

Open the complete evidence in the structured publication.

Strip the comments before matching on any check whose pattern could plausibly appear in an explanation, and treat a rule that taxes documentation as a defect in the rule.

A check we run over one of our own sites reported that a file was shipping a font-loading setting the design foundation forbids. It was not. The file contained a comment explaining why that setting is forbidden and what it uses instead. The pattern matched the explanation, the check had no way to tell an explanation from an instruction, and the only thing wrong with that file was that somebody had taken the trouble to write down why it was right.

The repair was small and the doctrine attached to it was not. Comments are now stripped before matching, and any check whose pattern could plausibly appear in an explanation reads the source with the prose removed rather than the raw text. The comment recording the incident states the rule in four words, that prose is not behavior, which is worth more than the four lines of code underneath it, because the four lines fix one check and the four words fix the next fifty.

The mechanism is the distinction between using a term and mentioning it, which philosophy of language settled long ago and most tooling has never encountered, and it bites here because a regular expression matches a run of characters with no access to whether that run is doing something or describing something, so a scanner reading raw text charges the same penalty for committing a fault and for documenting its avoidance. Quine gave the distinction its formal treatment in 1940 and the practical version is older than any of us: the word poison on a bottle and the word poison in a sentence about bottles are not the same object, and only one of them will hurt you.

The failure has a famous public ancestor. In 1996 a profanity filter refused to register residents of Scunthorpe, an English town whose name contains an obscenity as a substring, and the pattern has recurred so reliably since that the town’s name became the standard label for it. Every instance is the same error wearing local clothes. The matcher sees the string and has no access to the situation, and the situation is the whole question.

What makes the cost more than an annoyance is the discipline sitting next to it. That same site requires that any change altering rendered appearance append a dated ruling to a ledger in the same commit, with framework-level rules amended in the shared design authority as well. The codebase is under an obligation to explain itself. Put a naive scanner beside that obligation and the two rules argue: the more thoroughly a file records what it rejected and why, the more surface it offers to be misread, and the cheapest way for a team to stay green is to stop writing the reasons down. Call it the explanation tax. Nobody decides to pay it. It is learned, one false positive at a time.

Which is the same requirement this corpus already argues for a different structure. A tradition that keeps its rejected opinions with their reasoning can reopen a question it once closed wrongly, and preserved dissent is the mechanism by which any collective structure revises itself. A codebase is one of those structures, its comments are where its dissents live, and a check that penalizes a recorded rejection is a system charging its own memory rent. Honest checks read the source and leave the reasons alone, which costs four lines and buys a codebase still willing to tell you what it decided against.

Evidence and lineage

Research trail

Follow the sources, inspect how the claims are graded, or propose a correction at the exact record it concerns.

Sources 3
  1. MNSTRY (internal) (2026). Marketing-site foundation heuristics and the site's rulings-ledger practice

    The primary artifact. The comment-stripping pass carries the incident in its own docstring, and the rulings-ledger practice is the standing obligation that makes the false positive expensive rather than merely irritating.

    Comment on this source
  2. Willard Van Orman Quine (1940). Mathematical Logic

    The formal treatment of the use-mention distinction and of quotation as the device that marks it. The brick's mechanism is this distinction restated for pattern matchers.

    Comment on this source
  3. The Scunthorpe problem (documented from the 1996 AOL filter incident onward) (1996). The standard name in filtering and moderation practice for a substring match that ignores context

    The public ancestor of the internal case, and the reason the failure is treated as a class rather than an incident.

    Comment on this source
Claims and confidence 4
  1. verified

    A build check reading raw source reported a file as shipping a forbidden font-display setting when the file contained only a comment explaining why it avoids that setting; the fix was to strip comments before matching, and the rule was recorded as prose is not behavior.

    The validator source read directly on 2026-08-03; the incident is recorded in the comment-stripping function's own docstring, which states the case and the resulting rule.

    Respond to this claim
  2. verified

    A pattern matcher operating on raw text cannot distinguish a use of a token from a mention of it, because the two are the same run of characters.

    Definitional. The use-mention distinction is standard in philosophy of language (Quine's treatment is the usual citation) and the limitation of substring matching follows from what matching is.

    Respond to this claim
  3. verified

    In 1996 an online service's profanity filter refused registrations from residents of Scunthorpe because the town's name contains an obscenity as a substring, and the failure class took the town's name.

    Widely reported at the time and since; the name is standard in content-filtering practice. The date and the service are the commonly cited account rather than a primary record.

    Respond to this claim
  4. verified

    The site's own practice requires that any change altering rendered appearance append a dated ruling to a ledger in the same commit, with framework-level rules also amended in the shared design authority.

    The site's agent-facing contract read directly; the practice is stated there as a feedback protocol step and a completeness condition on a change.

    Respond to this claim

Read next

Or survey the topics.

Concepts in this piece 2

Add to the work

Contribute to Prose is not behavior

Write the useful part. Identity, provenance, and review history are attached when you submit. The published source stays unchanged.

Target Prose is not behavior

Contribution intent
Use an agent instead

The interface is ready. Public authenticated intake remains off until the hosted migration and feature flag are deployed together.