humanize-text
Skill14 starsChanged 3 months agoMITView on GitHub
Rewrite AI-sounding prose so it reads as considered human writing — cut the tells (em-dash pile-ups, "it's not X, it's Y" antitheses, inflated vocabulary, uniform rhythm, empty uplift) while preserving every fact, claim, and the author's own voice. Use when the user says "make this not sound like AI", "de-AI this", "humanize/humanise this", "this reads like ChatGPT", "remove the AI tells", "it sounds robotic/generic", or shares a draft (post, email, essay, docs, cover letter) to sharpen into a more human voice. Ships a stdlib scanner that flags the mechanical tells.
6 other projects use a version of this.
Adopted by
Most recently taken up by
- podo/design-agent-skillstheir own version, first seen Nov 8, 2026
- jasonfesta/design-agentstheir own version, first seen Oct 15, 2026
- rijans/agent-skillstheir own version, first seen Oct 11, 2026
- BejeweledMe/codex-pro-agent-skillstheir own version, first seen Sep 6, 2026
- smyrick/skillstheir own version, first seen Sep 2, 2026
- DhruvPrajapati4/apply-kittheir own version, first seen Sep 2, 2026
Other versions6 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 6
- podo/design-agent-skills★ 32same name
- BejeweledMe/codex-pro-agent-skills★ 7same name
- rijans/agent-skills★ 2same name
- smyrick/skills★ 2same name
- jasonfesta/design-agents★ 1same name
- DhruvPrajapati4/apply-kit★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository2 other files it gives its agents.
- resume-reviewSkill
- week-in-reviewSkill
The file
We split this skill into the rules it gives an agent
10 rules. 0 are common, 9 are distinctive, and 1 is very specific to this project.
0
Common
Most of the 4 edited versions we read keep these.
9
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 32
Do this before rewriting a word.
- Very specific: line 35
Whose voice?: Ask for (or find) a sample of the author's real writing — an old post, an email, a Slack message.
- Distinctive: line 49
Run the scanner, then read with your own eyes — the scanner catches the mechanical tells.
- Distinctive: line 82
Rule of three everywhere: every list is a tricolon; every idea comes in a neat triad.
- Distinctive: line 99
Break the rhythm: Put a three-word sentence next to a twenty-word one.
- Distinctive: line 118
Do not: introduce spelling/grammar errors to "seem human", swap in a different affectation (forced quirkiness is its own tell), or pad …
- Distinctive: line 124
Before handing back, diff the meaning, not just the words:
- Distinctive: line 131
If cutting a tell would require changing a claim, stop and flag it rather than editing the claim to fit the prose.
- Distinctive: line 147
Content is sacred; only style moves: Never change a fact, number, or claim to make a sentence flow better.
- Distinctive: line 154
Don't enable prohibited passing-off: If the context requires disclosed or certified human authorship (e.g.
“Common” is measured: kept by at least 6 in 10 of the 4 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Humanize Text
Take a draft that reads as machine-generated and rewrite it so it reads like a person with a point of view wrote it. Humanness comes from three things — rhythm (uneven sentence lengths, the odd fragment), specificity (real names, numbers, examples instead of abstractions), and a stance (an opinion, some friction, a thing the writer actually cares about). It does not come from adding typos or forced slang. Fix the writing; don't fake the human.
This is a quality operation, not a disguise. See the honesty note before you start.
The honest goal (read first)
The aim is prose that doesn't read as generic AI, because generic AI prose is bad writing — vague, over-hedged, weightless. The aim is not to defeat AI-detection tools (they're unreliable in both directions), and not to pass AI-written work off as human where disclosure is required or the rules forbid it (academic submissions, contexts where authorship is certified). If the user's goal is to launder undisclosed AI work past an integrity policy, say so plainly and decline that framing — you can still help them write better. Everywhere else — their own LinkedIn post, blog, email, cover letter, docs — improving the prose is exactly the job.
Step 1 — Pin the target voice and constraints
Do this before rewriting a word. Getting the voice wrong is worse than the AI tells, because it misrepresents the author.
- Whose voice? Ask for (or find) a sample of the author's real writing — an old post, an email, a Slack message. Match its register: formal or loose, contractions or not, dry or warm, British/US/AU spelling. If no sample exists, infer a sensible register from the medium and audience and say what you assumed so the user can correct it.
- Medium & limits. LinkedIn post, cover letter, README, marketing email, essay? Note hard constraints: length/character limits, banned claims, whether a house style applies. A de-AI pass must respect these.
- What must not move. Facts, numbers, names, citations, the structure of the argument, and any legally/PR-gated claims. This pass changes how it reads, never what it asserts.
Step 2 — Diagnose
Run the scanner, then read with your own eyes — the scanner catches the mechanical tells; you catch the tonal ones.
# Global install (default):
SKILL=~/.claude/skills/humanize-text
# ...or project install: SKILL="$(git rev-parse --show-toplevel)/.claude/skills/humanize-text"
python3 "$SKILL/scripts/flag_tells.py" draft.md # readable report
python3 "$SKILL/scripts/flag_tells.py" draft.md --json # machine-readableThe scanner reports em-dash density, burstiness (sentence-length variation — low means robotically uniform), inflated/cliché vocabulary with line numbers, signpost/hedge phrases, and formulaic patterns. It flags; it never rewrites, and none of its signals proves AI authorship — a strong human writer trips a few on purpose. Use it to focus the read.
The tell taxonomy (what to look for)
Lexical
- Inflated vocabulary: delve, leverage, robust, seamless, harness, foster, unlock, elevate, testament, tapestry, myriad, landscape, realm, paradigm.
- Empty intensifiers: truly, incredibly, remarkably, significantly, deeply,
and a fog of
-lyadverbs. - Corporate uplift: game-changer, cutting-edge, transformative, unparalleled.
Rhetorical / syntactic
- Em-dash overuse — the loudest single tell.
- Antithesis on a loop: "It's not just X, it's Y." "This isn't about A. It's about B." One is a fine rhetorical beat; three in a post is a fingerprint.
- Chiasmus / mirror sentences: "The determinism makes the non-determinism safe." Clever, balanced, and unmistakably machine.
- Rule of three everywhere: every list is a tricolon; every idea comes in a neat triad.
- Sweeping "from X to Y" openers and "In today's …" scene-setting.
- Colon-setup → tidy list, over and over.
- Rhetorical question → immediate answer. "The result? …"
- Signposting: Furthermore, Moreover, Notably, Ultimately, In conclusion.
Tonal / structural
- Relentless positivity, no friction, no opinion, nothing at stake.
- Abstraction over specifics — no names, no numbers, no concrete example.
- Uniform paragraph lengths; a summary paragraph that restates everything.
- Both-sides hedging that commits to nothing.
Step 3 — Rewrite
Apply the fixes, in rough priority order:
- Break the rhythm. Put a three-word sentence next to a twenty-word one. Use a fragment. Start a sentence with "And" or "But" if the register allows. Burstiness is the fastest win.
- Cut the em dashes to one or two. Most become full stops or commas; some dissolve by restructuring the sentence.
- Swap inflated words for plain ones. utilise → use, leverage → use, robust → solid/works, delve into → look at. If a word would feel odd out loud, cut it.
- Replace abstraction with a specific. A number, a name, a real example. This is what actually convinces — and it's the thing generic AI can't fake.
- Break the parallelism. Vary list lengths; let one item run long. Kill the chiasmus. Reduce the "not X, it's Y" beats to at most one.
- Add a stance. Let the writer prefer something, doubt something, find something boring or hard. A single honest opinion does more than any word swap.
- Delete the throat-clearing and the summary. Hedges ("It's worth noting"), signposts, and the closing paragraph that repeats the post usually just go.
- Keep contractions and idiom natural to the author. Don't over-formalise; don't force slang the author wouldn't use.
Do not: introduce spelling/grammar errors to "seem human", swap in a different affectation (forced quirkiness is its own tell), or pad length. Shorter and specific beats longer and smooth.
Step 4 — Preserve-check
Before handing back, diff the meaning, not just the words:
- Every fact, number, name, and claim in the original is still present and unchanged. A de-AI pass that quietly alters a statistic or softens a claim has failed, however human it now reads.
- Voice matches the sample/register from Step 1 — not your default voice.
- Constraints hold (length/char limits, house style, gated claims).
- If cutting a tell would require changing a claim, stop and flag it rather than editing the claim to fit the prose.
Step 5 — Hand back
- Give the rewritten text.
- Then a short changelog: the specific tells you removed (e.g. "em dashes 8 → 2; cut 3 antithesis constructions; replaced 'leverage/robust/seamless'; varied sentence length") so the user learns the pattern, not just the result.
- Flag anything you couldn't fix without touching a claim, and any place the voice was a guess.
- Offer, don't assume, the next step: apply to a whole series, tune the voice from a fresh sample, or re-scan the rewrite to confirm the tells dropped.
Guardrails
- Content is sacred; only style moves. Never change a fact, number, or claim to make a sentence flow better. Flag, don't fudge.
- Voice fidelity beats de-AI-ing. Rewriting a user's words into a slick neutral voice — even a "human" one — misrepresents them. Match their register.
- Not a detector-evasion tool. Detectors are unreliable; chasing them is a waste and can veer into dishonesty. Optimise for good writing, which fixes the underlying problem anyway.
- Don't enable prohibited passing-off. If the context requires disclosed or certified human authorship (e.g. graded academic work), don't help disguise AI-written work as human — help improve it honestly instead.
- The scanner is an aid, not an oracle. Low scores don't certify "human"; high scores don't condemn a deliberate stylistic choice. The read decides.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

