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-readable
The 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
-ly adverbs.
- 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.
1---2name: humanize-text3description: 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.4---56# Humanize Text78Take a draft that reads as machine-generated and rewrite it so it reads like a9person with a point of view wrote it. Humanness comes from three things —10**rhythm** (uneven sentence lengths, the odd fragment), **specificity** (real11names, numbers, examples instead of abstractions), and **a stance** (an opinion,12some friction, a thing the writer actually cares about). It does *not* come from13adding typos or forced slang. Fix the writing; don't fake the human.1415This is a **quality** operation, not a disguise. See the honesty note before you16start.1718## The honest goal (read first)1920The aim is prose that doesn't read as generic AI, because generic AI prose is21*bad writing* — vague, over-hedged, weightless. The aim is **not** to defeat22AI-detection tools (they're unreliable in both directions), and **not** to pass23AI-written work off as human where disclosure is required or the rules forbid it24(academic submissions, contexts where authorship is certified). If the user's25goal is to launder undisclosed AI work past an integrity policy, say so plainly26and decline that framing — you can still help them *write better*. Everywhere27else — their own LinkedIn post, blog, email, cover letter, docs — improving the28prose is exactly the job.2930## Step 1 — Pin the target voice and constraints3132Do this before rewriting a word. Getting the voice wrong is worse than the AI33tells, because it misrepresents the author.34351. **Whose voice?** Ask for (or find) a **sample of the author's real writing** —36 an old post, an email, a Slack message. Match its register: formal or loose,37 contractions or not, dry or warm, British/US/AU spelling. If no sample38 exists, infer a sensible register from the medium and audience and *say what39 you assumed* so the user can correct it.402. **Medium & limits.** LinkedIn post, cover letter, README, marketing email,41 essay? Note hard constraints: length/character limits, banned claims, whether42 a house style applies. A de-AI pass must respect these.433. **What must not move.** Facts, numbers, names, citations, the structure of the44 argument, and any legally/PR-gated claims. This pass changes *how* it reads,45 never *what it asserts*.4647## Step 2 — Diagnose4849Run the scanner, then read with your own eyes — the scanner catches the50mechanical tells; you catch the tonal ones.5152```bash53# Global install (default):54SKILL=~/.claude/skills/humanize-text55# ...or project install: SKILL="$(git rev-parse --show-toplevel)/.claude/skills/humanize-text"5657python3 "$SKILL/scripts/flag_tells.py" draft.md # readable report58python3 "$SKILL/scripts/flag_tells.py" draft.md --json # machine-readable59```6061The scanner reports em-dash density, **burstiness** (sentence-length variation —62low means robotically uniform), inflated/cliché vocabulary with line numbers,63signpost/hedge phrases, and formulaic patterns. It flags; it never rewrites, and64none of its signals *proves* AI authorship — a strong human writer trips a few on65purpose. Use it to focus the read.6667### The tell taxonomy (what to look for)6869**Lexical**70- Inflated vocabulary: *delve, leverage, robust, seamless, harness, foster,71 unlock, elevate, testament, tapestry, myriad, landscape, realm, paradigm.*72- Empty intensifiers: *truly, incredibly, remarkably, significantly, deeply,*73 and a fog of `-ly` adverbs.74- Corporate uplift: *game-changer, cutting-edge, transformative, unparalleled.*7576**Rhetorical / syntactic**77- **Em-dash overuse** — the loudest single tell.78- **Antithesis on a loop:** "It's not just X, it's Y." "This isn't about A. It's79 about B." One is a fine rhetorical beat; three in a post is a fingerprint.80- **Chiasmus / mirror sentences:** "The determinism makes the non-determinism81 safe." Clever, balanced, and unmistakably machine.82- **Rule of three everywhere:** every list is a tricolon; every idea comes in a83 neat triad.84- **Sweeping "from X to Y"** openers and **"In today's …"** scene-setting.85- **Colon-setup → tidy list**, over and over.86- **Rhetorical question → immediate answer.** "The result? …"87- **Signposting:** *Furthermore, Moreover, Notably, Ultimately, In conclusion.*8889**Tonal / structural**90- Relentless positivity, no friction, no opinion, nothing at stake.91- Abstraction over specifics — no names, no numbers, no concrete example.92- Uniform paragraph lengths; a summary paragraph that restates everything.93- Both-sides hedging that commits to nothing.9495## Step 3 — Rewrite9697Apply the fixes, in rough priority order:98991. **Break the rhythm.** Put a three-word sentence next to a twenty-word one. Use100 a fragment. Start a sentence with "And" or "But" if the register allows.101 Burstiness is the fastest win.1022. **Cut the em dashes** to one or two. Most become full stops or commas; some103 dissolve by restructuring the sentence.1043. **Swap inflated words for plain ones.** *utilise → use, leverage → use,105 robust → solid/works, delve into → look at.* If a word would feel odd out106 loud, cut it.1074. **Replace abstraction with a specific.** A number, a name, a real example.108 This is what actually convinces — and it's the thing generic AI can't fake.1095. **Break the parallelism.** Vary list lengths; let one item run long. Kill the110 chiasmus. Reduce the "not X, it's Y" beats to at most one.1116. **Add a stance.** Let the writer prefer something, doubt something, find112 something boring or hard. A single honest opinion does more than any word swap.1137. **Delete the throat-clearing and the summary.** Hedges ("It's worth noting"),114 signposts, and the closing paragraph that repeats the post usually just go.1158. **Keep contractions and idiom** natural to the author. Don't over-formalise;116 don't force slang the author wouldn't use.117118Do **not**: introduce spelling/grammar errors to "seem human", swap in a119different affectation (forced quirkiness is its own tell), or pad length. Shorter120and specific beats longer and smooth.121122## Step 4 — Preserve-check123124Before handing back, diff the meaning, not just the words:125126- **Every fact, number, name, and claim** in the original is still present and127 unchanged. A de-AI pass that quietly alters a statistic or softens a claim has128 failed, however human it now reads.129- **Voice matches** the sample/register from Step 1 — not *your* default voice.130- **Constraints hold** (length/char limits, house style, gated claims).131- If cutting a tell would require changing a claim, **stop and flag it** rather132 than editing the claim to fit the prose.133134## Step 5 — Hand back135136- Give the rewritten text.137- Then a short **changelog**: the specific tells you removed (e.g. "em dashes138 8 → 2; cut 3 antithesis constructions; replaced 'leverage/robust/seamless';139 varied sentence length") so the user learns the pattern, not just the result.140- Flag anything you **couldn't** fix without touching a claim, and any place the141 voice was a guess.142- Offer, don't assume, the next step: apply to a whole series, tune the voice143 from a fresh sample, or re-scan the rewrite to confirm the tells dropped.144145## Guardrails146147- **Content is sacred; only style moves.** Never change a fact, number, or claim148 to make a sentence flow better. Flag, don't fudge.149- **Voice fidelity beats de-AI-ing.** Rewriting a user's words into a slick150 neutral voice — even a "human" one — misrepresents them. Match *their* register.151- **Not a detector-evasion tool.** Detectors are unreliable; chasing them is a152 waste and can veer into dishonesty. Optimise for good writing, which fixes the153 underlying problem anyway.154- **Don't enable prohibited passing-off.** If the context requires disclosed or155 certified human authorship (e.g. graded academic work), don't help disguise156 AI-written work as human — help improve it honestly instead.157- **The scanner is an aid, not an oracle.** Low scores don't certify "human";158 high scores don't condemn a deliberate stylistic choice. The read decides.