The tells are not a secret anymore

If you have read enough AI-generated text, you already know the tells without being able to name them. The em dash used as a universal punctuation crutch. Everything arriving in threes. A paragraph that ends by "not just X, but Y." A conclusion that says nothing specific because it is trying to sound conclusive rather than say something true.

This is not a fringe observation anymore. Wikipedia's contributors formalised it into a documented list of AI writing patterns. Scribbr built a tool around it. Microsoft wrote an official Copilot guide about it. When three unrelated, high-authority sources converge on the same diagnosis, the diagnosis is not controversial, it is just common knowledge that most people have not gotten around to fixing.

I write a lot of client-facing content, and I use Claude in that workflow (I wrote about the specifics in a separate walkthrough). The tells kept showing up in my own drafts. So I built a Claude Code skill that catches and fixes them before they ship, instead of relying on me noticing them during a read-through at 11pm.

What actually gives AI writing away

Work With John

Your site should be your best salesperson. If it is not, that is a fixable problem.

I work with US service businesses and B2B brands to build SEO systems that produce consistent, compounding leads. I will tell you exactly what is broken. No pitch.

Book a free strategy call

A few concrete examples, pulled directly from the patterns the skill checks for.

The em dash as a universal connector. "The new policy — announced without warning — affects thousands of workers." A human writing quickly reaches for a comma, a period, or a colon depending on what the sentence needs. AI defaults to the em dash because it technically works everywhere, which is exactly why it reads as a tell when it shows up in every third sentence.

Forced groups of three. "The event features keynote sessions, panel discussions, and networking opportunities." Real writing does not naturally organise itself into triads this often. When you see three parallel items every time a list could exist, that is a structural habit, not a stylistic choice.

The negative parallelism. "It's not just about the beat riding under the vocals, it's part of the aggression and atmosphere." This construction sounds like it is adding depth. It is usually padding a single idea into two clauses to sound more considered than it is.

Weightless significance. "This moment stands as a testament to the enduring legacy of..." Nothing in that sentence is falsifiable. It assigns importance without describing what actually happened or why it matters to the specific reader.

None of these individually ruins a piece of writing. A dozen of them in one article is what makes a reader's attention quietly slide off the page.

What I built

The skill is MIT-licensed and lives on GitHub. It installs into Claude Code (or any compatible agent) with one command and runs as part of your normal drafting workflow, not as a separate copy-paste step.

Three things about how it works matter more than the pattern list itself.

It matches your actual voice. Give it a writing sample and it calibrates to your sentence length, your word choices, your punctuation habits, before rewriting anything. Generic "sound more human" tools flatten every writer into the same voice. This does the opposite: it removes the AI tells while keeping whatever is actually yours.

It has a file mode that leaves everything else alone. Point it at a document and it rewrites the prose while preserving code blocks, frontmatter, and data structures exactly as they were. You are not manually re-pasting the parts it should not have touched.

It does not invent facts to fill a gap. If a rewrite needs a specific detail the draft does not have, it asks or flags the gap instead of guessing a plausible-sounding number. This is the rule that matters most and the one most "humanizer" tools skip entirely, because a tool that quietly invents statistics to sound more concrete is worse than the robotic version it replaced.

Why this is not the same category as Undetectable AI or Winston AI

Most AI humanizer tools are web apps built for a specific use case: paste text, get text back, often to slip past a detector like Turnitin. That is a different product solving a different problem, and it is not what this is for.

This is a developer tool for people who are already using an AI coding agent to draft content, and want the output to actually sound like them by the time it ships, not to defeat a detection system. If you are looking for a free web-based paste-and-go tool, this is not the right fit and I would not pretend otherwise. If you are already working inside Claude Code and want the drafting step to stop producing the same recognisable tells every time, this is built for exactly that.

Installing it

One command: npx skills add johnakande/ai-humanizer-skill --global. That installs it globally so it is available across every project. You can also install it as a Claude plugin or clone it manually into your agent's skills directory if you want project-level control instead. Full instructions are in the repo README.