Machine writing has a few reliable fingerprints, and the loudest is punctuation the writer never chose on purpose. The ai-tell lint scans the finished prose for them: a literal em dash, an — entity smuggled in through HTML, a double-hyphen used as a connector. Each hit is reported with its rule, its line and the exact text that matched, so the fix is obvious rather than a hunt.

Three regex rules scan the prose for the marks of machine writing. Zero hits passes; any hit fails with exit code 1.

The value is that it does not rely on anyone noticing. Taste is a loop that grades its own work, and a tired human reading their own draft will read past the tell they have seen a hundred times. A regular expression will not. It returns the same verdict on the same text every run, and it fails with an exit code, so the drafting loop and continuous integration can both gate on it instead of hoping.

It is a small gate on purpose. It does not judge whether the writing is good, only whether it carries the marks of not being written by a person. That narrow, mechanical honesty is what makes it an anchor rather than an opinion.