---
title: "I Built a Linter That Scans for My Own Name"
canonical: https://dxdev.com/blog/2026-06-16_a-rule-you-have-to-remember-eventually-fails/
datePublished: 2026-06-16
---
# I Built a Linter That Scans for My Own Name

The publishing process for this blog had a rule that mattered more than any of the others: keep certain private information out of everything that goes live. A personal identifier. A couple of business names tied to that identity. A specific piece of punctuation that had become an unwanted signature. Simple enough to state as a sentence.

The problem was how that rule actually got enforced, which was: a person reads the draft and remembers to check for it, in the middle of also checking whether the facts hold up, whether the story is any good, whether the code in it is safe to show, and whether the tone is right. That's a lot to hold in one pass, and this particular rule kept losing to the others. Multiple review rounds over the same backlog of drafts had already missed the same categories of restricted text, not because anyone was careless, but because a checklist item competing for attention against four other checklist items is exactly the kind of thing a tired, focused mind will let slide once and then keep sliding.

A rule with a genuinely simple answer, present or not present, doesn't need to compete for a reviewer's attention at all. It needs a scanner: something short, fixed, and boring that checks for exactly the restricted strings every single time, without getting distracted by whether the surrounding sentence is well written. Ninety-three lines did it. Not clever. Just consistent in a way a person juggling five things at once cannot be.

The uncomfortable proof that this was worth building came on the very first run. The scanner wasn't tested against a hypothetical. It was pointed at everything already live, on the theory that a rule this important shouldn't only apply to new drafts going forward. It found a real hit: one of the restricted patterns was already sitting in a piece of already-published content, one that had been through review and gone out the door before anyone caught it.

That's the part that reframes the whole thing. "Caught it in review" and "caught it before it went live" are two different claims, and only a scan that also checks the published archive, not just the incoming queue, can tell you which one is actually true. A rule that only runs against drafts is trusting that whatever slipped through earlier stays slipped through and unnoticed forever. It doesn't. It sits there until something finally goes looking.

## If you have a rule nobody's supposed to break

Ask honestly whether it's checked by a script or checked by someone remembering to look. If it's memory, that rule will eventually fail, not because anyone is bad at their job, but because a rule with a fixed, checkable answer doesn't belong in the same mental slot as judgment calls about quality and tone. And when you do build the check, don't stop at new material. Point it at everything you've already published too. That's usually where the thing you're worried about is already sitting.
