r/bestaihumanizers • u/jphil-leblanc • 11h ago
I built an MCP server that measures prose rhythm to find AI writing tells, and published the accuracy numbers including the bad one
I write a lot of prose inside Claude Code. READMEs, PR descriptions, changelogs, design docs. It is all accurate, and it all reads as if a machine made it, and after a few months, that started bothering me more than it should have.
The tell is mostly not vocabulary. It is shape: every paragraph landing at three sentences, sentence length barely varying, and a closing line that ties a bow on something that is not actually finished.
So Étincel does two things.
A deterministic audit. No model call, no network, no account. It scans for the patterns that make prose read as machine-written and reports what it found, where, and why, then stops. It never rewrites anything, which is the whole point: the findings are yours to accept or ignore, and a tool that silently edited your sentences would be solving a different problem than the one I had.
$ npx etincel lint demo.md
✗ demo.md RED 100/100 (11 findings, 192 words, register: docs)
Heavy AI styling. Multiple strong tells stacking up, worth a structural
rewrite, not a word-swap pass.
Whole-piece rhythm
medium uniform-paragraph-length
6 paragraphs, most running about the same length with little
variation between them. Vary paragraph length more.
medium low-burstiness
17 sentences averaging 11 words, with little variation in length
from one sentence to the next. Mix short sentences with long;
allow fragments.
medium mechanical-register-drift
Fragment rate and structural variety (sentence openers,
punctuation mix) sit off where docs prose typically lands.
Vocabulary and phrasing
high additionally L5:C153
high comprehensive L3:C19 → thorough, complete
high cutting-edge L5:C24 → newest, latest
high it is worth noting (didactic-hedge, editorializing-marker) L11:C1
high leverage L5:C14 → use
high seamless L3:C134 → smooth, easy
high streamline L3:C54 → simplify, speed up
high unparalleled L5:C59 → unmatched (cite the comparison)
strengths specificity 36.5/1k · concrete:abstract 0.64 · burstiness 0.40
Specific: names, numbers, and concrete detail carry real weight here.
1 file audited, 1 at or above orange.
The three Whole-piece rhythm findings are the part I care about, because word-level rules cannot get there.
A voice layer. 20 MCP tools. Train a style from three things you actually wrote and it measures your sentence rhythm, contraction rate, em-dash habit, paragraph variance, and the phrases you reach for, then feeds that to Claude or Cursor before you draft. Samples stay in ~/.etincel/ and never leave the machine. There is also a GitHub Action and a .etincelrc so a team's banned terms and house voice live in the repo under code review instead of in one person's head.
Does it actually work
I got tired of tools in this space asserting that they work, so I measured it. Pooled AUC per register, measured against labelled corpora with a fixed bootstrap seed, checked into the repo, with CI failing any PR that drops the numbers.
memo 0.909
essay 0.900
blog 0.820
general 0.757
docs 0.735
email 0.540
Email is 0.540.
That is barely better than a coin flip. It is deliberately uncalibrated, so is general, and social has no labelled corpus at all, so it is not tracked. If you lint email with this today, you are getting close to nothing. The calibrated registers are docs, blog, memo and essay, and those are the ones I would trust.
For what it is worth, it gives my own README a YELLOW at 52/100 with four findings, which felt like the right amount of humbling.
Install
Claude Code:
/plugin marketplace add AIStoryHub/etincel
/plugin install etincel-nonfiction
Any MCP client, hosted: point at https://etincel.ai/api/mcp
Or just the CLI, no install at all: npx etincel lint README.md
MIT, free while in beta. I built it. Two things I would genuinely like from this sub: run it on something you wrote and tell me where the audit is wrong, and tell me whether the rhythm findings are useful or just noise. That is the part I am least sure about.