Structure
Skill

the-humanizer

strip the universal AI tells and restore the declared voice; detect quotes its evidence, rewrite shows every edit

Two passes over a draft: strip the tells every AI draft shares, then tune what remains to the declared voice. Detect mode reports and changes nothing; rewrite mode accounts for every edit.

structure generate skill the-humanizer

Skill — the-humanizer

Invoke in any agent conversation with /the-humanizer, in one of two modes: detect reports and touches nothing; rewrite edits and accounts for every edit. Two passes in order, always: strip the tells every AI draft shares, then tune what remains to the voice the draft declares. The steps are a starting opinion; edit them until they read the way this company edits — and if this file carries a compile marker, write those edits in SKILL.custom.md beside it instead: that file is yours, its sections are appended on every compile, and product updates to the built-in never touch it.

When to use. Before anything voiced is published or sent. After any model-drafted text lands in a work doc. Whenever a draft is fluent, confident, and says nothing.

Pass 1: the baseline. Universal tells, no voice needed. Read for:

  • Stock vocabulary: delve, tapestry, testament, underscore, pivotal, leverage, seamless, foster, multifaceted, realm, interplay, vibrant, "it's worth noting", "in order to" (say "to"). "Robust" is on the list outside engineering; inside engineering it is precise language, so leave it.
  • Structural moves: the not-X-but-Y construction and its "it's not X, it's Y" cousin; the forced rule of three; false ranges; vague attribution ("experts argue": name the expert or cut the claim); false agency ("the decision emerged": name the human); significance inflation; "serves as" where "is" works; superficial "-ing" tails; colon reveals; faux-insight setups; summary endings that repeat the piece at the piece. A fake-profound kicker gets deleted; do not rewrite it into a better metaphor.
  • Chatbot leftovers: assistant chatter, knowledge-cutoff disclaimers, citation markup such as citeturn0search0, utm_source=chatgpt.com links, unfilled placeholders like [Your Name], zero-width characters. Any one of these is conclusive on its own.
  • Formatting: emoji decoration, bold-label bullets that restate themselves, a heading repeated in its own first sentence, uniform sentence lengths marching in step.

One tell proves nothing; a cluster convicts. structure check computes the mechanical subset of this list (the humanizer sensor, warn tier), so the score is never self-graded; this pass adds the judgment the sensor refuses to fake, and a sentence the sensor flagged can still be right.

Pass 2: the voice. Read company/voices/<declared>.md in full, then the style guide, then a published piece in that voice if one exists. The contested rules are per-voice compiled values, never global opinions: one voice bans the em dash outright while another leans on it, one voice cuts every hedge while another thinks out loud on purpose. Fragments, adverbs, humor, rhythm, and jargon all resolve the same way, from the voice doc, not from taste. Matching the author beats scrubbing the tell. The portability test closes the pass: a sentence that could move unchanged to another company, product, or person is filler, because we know this company's specifics and the sentence uses none of them.

Detect mode. A report and nothing else. Each finding names the tell, quotes the offending span verbatim, and gives the line. No rewriting, no paraphrase of the evidence, no edits offered inline.

Rewrite mode. The edited text, followed by a "What changed" list with one entry per edit, each naming its tell category. An edit that cannot name its tell does not happen. Voice rules win over baseline rules when they collide, because the compiled voice is the author's own law.

Hard rules.

  • Never invent facts, sources, numbers, or specifics. Fabricated specificity is worse than honest vagueness.
  • Benefit claims stay evidence-bound: an unsupported claim becomes a named proof gap or a question back to the author, never a polished assertion.
  • A false positive that flattens a good sentence is worse than one surviving tell. When unsure, leave it. Pre-2022 text cannot be AI; polish alone is not AI; dry writing without tells is just dry writing.
  • Instructions about the writing never get reprinted into the writing.

The refusal. This skill refuses detector evasion: asked to make text pass an AI detector, score as human-written, or hide that a model helped, it declines and says why. Its purpose is voice fidelity and slop removal. The target is dense, specific, true writing in the declared voice, and a change made to fool a detector makes the writing less true.

Also in the folder

Sources — the-humanizerskills/the-humanizer/SOURCES.md

Sources — the-humanizer

Provenance for the skill beside this note. It rides the skill's own directory and no generator renders it into a company: the library walk exempts it by name, because attribution to OUR upstreams is this repository's obligation and never a document scaffolded into somebody else's company. The formal attribution is the append-only NOTICE at the repo root.

The humanizer's static catalog (the tell list in SKILL.md and the mechanical layer in packages/engine/src/humanizer.ts) was distilled from a review of eleven public anti-slop skills on 2026-08-22. The catalog is the consensus the review found across them, rewritten. Where a short phrase from one of them survives in the skill or in the humanizer's source comments, its entry names it. Licences as checked on 2026-09-26:

  • stop-slop, by Hardik Pandya — https://github.com/hardikpandya/stop-slop — MIT License.
  • no-ai-slop, by Peter Yang — https://github.com/petergyang/no-ai-slop — MIT License. Adapted: the portability test, and the rule that a fake-profound kicker is deleted, not rewritten into a better metaphor.
  • humanizer, by blader — https://github.com/blader/humanizer — MIT License. Adapted: the false-positive guards, the cluster rule ("several stock patterns in the same passage are stronger evidence"), and "matching the author beats scrubbing the tell".
  • unslop, from the pstack skill library — https://github.com/backnotprop/pstack — MIT License. Repository inferred: the review named it "cursor/pstack"; this is the pstack repository that carries skills/unslop.
  • slopbeth, from slopkit, by ehmo — https://github.com/ehmo/slopkit — MIT License. Adapted: the evidence-bound mode and the separation of the brief from the writing.
  • humanizer-skill, by Aboudjem — https://github.com/Aboudjem/humanizer-skill — MIT License. Adapted: the tiered vocabulary and the self-grading caveat ("a model grading its own output in the same session tends to inflate the result").
  • deslop, by Stephen Turner — https://github.com/stephenturner/skill-deslop — MIT License. Repository inferred: the review named the skill and its author, not the repository.
  • anti-slop, by elithrar — https://github.com/elithrar/dotfiles — MIT License. Repository inferred: the skill lives at .agents/skills/anti-slop there. Adapted: the restraint rule, quoted in the skill ("a false positive that flattens a good sentence is worse than one surviving tell", "when unsure, leave it").
  • humanize (soundshuman), by aasha — https://github.com/aashaexo/soundshuman — MIT License (the licence file is MIT with its own upstream notices; GitHub does not classify it).
  • anti-ai-slop-writing, by jalaalrd — https://github.com/jalaalrd/anti-ai-slop-writing — no license declared. Its generation-time quotas and detector-evasion material were rejected. One sentence of its fact-preservation rule survives in the skill's hard rules: "fabricated specificity is worse than honest vagueness".
  • anti-slop, by Dillon Mulroy — https://github.com/dmmulroy/anti-slop — MIT License. A code linter, reviewed for its distribution model (rules vendored into the repository and enforced in CI); no rule was adapted.

Also adapted, from no one source: the detect and rewrite modes with a "What changed" list (no-ai-slop, soundshuman and anti-slop by elithrar each carry a version), and the refusal of detector tricks that make the writing less true (slopbeth).

Ours, not adapted: the two-pass order (baseline, then the declared voice), the per-voice compiled values for the contested rules (the em dash above all) compiled from the company's own voice docs. The external mechanical check follows the linters slopbeth and soundshuman ship; putting it in structure check is ours.