The most revealing artifact in the AI-writing debate this week is a small open-source agent skill called humanizer, built by GitHub user blader. It does not detect AI text. It rewrites it, scrubbing out the statistical tells that large language models leave behind, and it does so using a surprisingly precise instrument: 35 patterns drawn from Wikipedia’s “Signs of AI writing” page, maintained by WikiProject AI Cleanup.

The skill is just Markdown, which means it plugs into any agent that supports skills, including Claude Code and Claude Desktop. Point it at a file and it rewrites only the prose, leaving code, data, frontmatter, and link targets untouched. Paste text directly and it shows its work: the first rewrite plus a short critique of anything that still sounds artificial. The version history shows a project under active, obsessive maintenance, with 35 patterns accumulated across 2.11 releases since the project began.

What makes this worth attention is not the tool itself. It is the pattern list, which reads like an autopsy of machine prose. The patterns are organized into five buckets: content, language and grammar, style, chatbot text, and filler and hedging. Each one names a specific failure mode and gives a before-and-after pair.

Consider pattern 1: “Inflated importance and legacy.” The before example is “marking a pivotal moment in the evolution of…” The after is “was established in 1989 as part of a wider decentralization.” Pattern 4 catches sales language: “nestled within the breathtaking region” becomes “is a town in the Gonder region.” Pattern 7 flags overused AI words: “actually… additionally… gated on… quietly… testament… landscape… showcasing” get replaced with “also… needs… remain common.”

Pattern 14 bans em-dashes outright. Pattern 8 catches the avoidance of “is” and “are” in favor of “serves as,” “features,” and “boasts.” Pattern 9 targets the “It’s not just X, it’s Y” construction. Pattern 10 flags forced groups of three. Pattern 27 catches “a fake deeper truth” like “At its core, what matters is…” Pattern 31 targets forced punchlines and fragments: “It had no preference. No prior. No nostalgia.” Pattern 35 rejects fake alternatives: “A tempting option would be to…, but.”

The list is a mirror held up to the entire generative AI content economy. Every pattern corresponds to a stylistic tic that a statistically greedy language model produces because it is optimizing for the most likely next token across the widest variety of contexts. The result, as the project’s own explanation puts it, “tends toward the most statistically likely result that applies to the widest variety of cases.” That is another way of saying: bland, hedged, inflated, and terminally agreeable.

The deeper point is that these patterns are not just aesthetic preferences. They are evidence of a specific failure mode in how LLMs compose. When a model writes “symbolizing… reflecting… showcasing…” (pattern 3), it is not making a rhetorical choice. It is generating connective tissue that probabilistically follows any noun phrase, regardless of whether the source supports the claim. The model is not lying exactly; it is producing the shape of an argument without the substance.

Humanizer’s most interesting design decision is its anti-hallucination guardrail. The project states plainly: “It does not make things up. A name, number, date, quote, citation, or other factual detail must come from the source or the writer.” The Lisbon example demonstrates this. The original AI text says “I recently spent five unforgettable days in Lisbon.” The humanized version says “I spent five days in Lisbon last October.” The month is not invented; the tool asks the writer for it if it is missing. The rewrite keeps the custard tarts, the Tram 28, the castle, and the hills, but strips the superlatives and the fake emotional arc.

This is the part that should make the AI-content industry nervous. Humanizer does not need to generate new facts. It needs to remove the stylistic noise that signals machine authorship, and it does so with a transparent, auditable rule set. That transparency matters. Unlike a commercial “humanizer” service with a proprietary prompt, this skill publishes its entire decision procedure. Anyone can read the 35 patterns and know exactly what the tool considers AI-sounding. That makes the tool both more trustworthy and more gameable, since a writer who knows the list can pre-emptively avoid the patterns.

The version history also reveals the arms race dynamic. Release 2.10.1 added “figurative uses of gate, gated, and gating” to pattern 7, while keeping “real technical uses, such as feature gating and CI quality gates.” Release 2.9.2 added repeated sentence openings to pattern 11, with a safeguard for deliberate repetition. Release 2.10.0 added patterns 34 and 35 for “old drafting ideas left in final text.” Each release responds to a new tell that someone spotted in the wild. The pattern list is a living taxonomy of machine prose, and it is growing.

For AI builders, the implications cut both ways. On the one hand, tools like this reduce the value of raw LLM output for any use case where the reader knows or suspects the text is machine-generated. Marketing copy, blog posts, documentation, and social media content all become cheaper to produce and easier to spot. On the other hand, the existence of a public, codified pattern list is a gift to model trainers. If you want to train a model that does not sound like a model, you now have 35 concrete, labeled failure modes with before-and-after pairs. That is a training signal far more useful than a vague instruction to “write naturally.”

The skill also raises a question the industry has not fully confronted: what does it mean for a machine to imitate a human writer’s voice? Humanizer supports voice matching. Give it 2-3 paragraphs of your own writing and it follows “the sample’s rhythm, word choice, punctuation, and deliberate quirks.” That is a feature for personal writing, but it is also a capability with a darker edge. The same mechanism that makes a blog post sound like you could make a phishing email sound like your colleague.

The project’s own framing is refreshingly modest. It does not claim to make text undetectable by AI detectors. It claims only to make text read like a person wrote it. That is a meaningful distinction. Detection is a statistical game. Readability is a stylistic one. Humanizer optimizes for the latter, and in doing so, it may accidentally be the best available documentation of what the former is actually measuring.

What to watch now is whether the pattern list migrates upstream. If a frontier lab incorporates these 35 patterns into its post-training or inference-time guidance, the tells disappear from the source rather than being scrubbed afterward. That would be the real endgame: not a humanizer tool that fixes machine prose, but models that never produce it in the first place. The fact that the list exists, is public, and is being maintained by volunteers on Wikipedia suggests that day is closer than the content farms would like to admit.