Validate a cold outbound email and get a JSON report of every AI-sounding tell with the offending quote.
Pipe LinkedIn copy through the rewrite command and have Claude retry up to three times until the validator passes.
Run the validator as a Claude Code skill so flagged sentences appear inline in a coding session.
Add the validator to a CI step that fails when marketing copy contains the Not just X, but Y pattern or em-dash overuse.
No runtime dependencies beyond Node 20, but the rewrite command needs a Claude API key or Claude Code session.
ai-tells-validator is a small tool that scans a piece of writing for the kinds of words, phrases, and rhythms that make readers suspect the text was produced by ChatGPT or a similar chatbot. It is meant for people sending cold outbound emails, marketing copy, or LinkedIn messages, where sounding like a bot kills trust before the message is even read. It ships as both a Claude Code skill, so it can be called from inside a coding session with Claude, and a standalone command-line tool you can pipe text into. The rule list comes from two sources. The first is a live Wikipedia article called Signs of AI writing, which the tool refetches every time it runs, with a one-hour local cache so it does not pound the Wikipedia server. The second is a hand-curated list of modern marketing cliches the Wikipedia article has not yet picked up. Both lists then drive deterministic regex checks, meaning the matching is just plain pattern matching, no AI involved in the detection step. There are two main commands. The validate command reads text from standard input and prints a JSON report listing every match, with the offending quote shown so you can see what was flagged. Categories include banned words, banned phrases, the Not just X, but Y pattern, the rule of three rhythm, sentences that end with a participle phrase like ensuring X, em-dash overuse, smart curly quotes, and stray horizontal rules in body copy. The rewrite command calls Claude with the failing tells in the prompt and retries up to three times until the validator passes. The README is honest about limits: it does not check facts, does not enforce a brand voice, and does not catch tone-deaf framing. It only checks form. The project has no runtime dependencies beyond Node 20, ships under the MIT license, and includes a small test suite.
Generated 2026-05-22 · Model: sonnet-4-6 · Verify against the repo before relying on details.