I counted 16 things in ~100 blog posts to find out what actually makes writing read as AI-written
I built a Claude Code skill that scores how human a draft reads and drives the fix loop. It's free, MIT, no signup and no paid tier, and there's a one-command way to try it below without installing anything.
Here's what it does and where the numbers came from.
Two piles of blog posts. 36 written by people, published before LLMs were common. 45 generated, same topics. Then I counted 16 things in every one of them: paragraph lengths, sentence lengths, how often the writer says "we", contractions, em-dashes, how many specific things get named. Also every "AI tell" people put in their prompts, so hedging words, "moreover", "robust", "seamless".
Then compare the two piles, count by count, and keep only the ones that actually come apart.
Almost none of the word stuff survived. Hedging words landed on a coin flip, and the humans used them more than the AI did. "Moreover" was rare in both piles. "Robust" went in no particular direction. Every wordlist I'd been pasting into CLAUDE.md was doing nothing.
What came apart cleanly was shape. Paragraph length variance was 28.6 for people and 12.8 for the AI, so we write a long paragraph, then a short one, then a one-liner, and it writes the same size block forever. First person was 8.18 per thousand words for people and exactly 0.00 across all 45 generated posts. It never says "we".
Those counts became the ranges. Ask Claude Code to humanize or audit a draft, the skill loads itself, scores the draft, tells Claude which single count is furthest off, fixes that one thing, then counts again. Four passes max, then it stops instead of rewriting forever.
Claude Code did most of the building. I ran the counting functions over both piles with it, argued with it about which thresholds were guessed rather than measured, and it caught a version where every count had to be in range — which passed 0% of both piles. The whole calibration write-up came out of that back and forth.
Free to try, two ways. Nothing to sign up for. Clone and score a file directly:
git clone https://github.com/SadhvikChirunomula/measured-humanizer
node measured-humanizer/skills/measured-humanizer/gate/style_gate.js YOUR_DRAFT.md --brief
Or install it as a plugin:
/plugin marketplace add SadhvikChirunomula/measured-humanizer
/plugin install measured-humanizer@measured-humanizer
Node 14+ is the only requirement, and there are no dependencies.
Not a detector bypass. 75% of human posts pass and 11% of generated ones slip through, so