Humanizer
Skill Agent-Engineer-Master/skill-engineer/operations/humanizer
Removes AI writing patterns and injects human quality (specificity, burstiness, precise emotional language) into drafted content. Includes an optional personal-brand mode (voice reference + deterministic eval gate) you can adapt to your own voice. Use when editing drafts so they don't sound like AI. NOT for generating new content, fact-checking, SEO scoring, or research.From its SKILL.md
npx -y skills add Agent-Engineer-Master/skill-engineer --skill humanizerAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
3 things to look at
- skips confirmationTells the agent to proceed without asking first, 1 time: "Learning Loop (every run, automatic — do not ask first)".
- 7 stars7 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
- runs commandsInstructs the agent to run 1 command, including `python scripts/eval_voice.py fixtures --format markdown`.
SKILL.md
10.9 KB, ~2.5k tokens by cl100k_base, as published. Nobody here has run it
Humanizer: Remove AI Patterns + Inject Human Quality
Full routing notes
Removes AI writing patterns and injects human quality — specificity, burstiness, and precise emotional language. Use when editing drafted content, cleaning up LinkedIn posts, product copy, or blog content so it doesn't sound like AI. Two-phase process: Phase 1 removes 33 AI tells (significance inflation, AI vocabulary, em dash overuse, contrastive negation, vague attributions, soulless structure); Phase 2 injects humanity (sentence length variation, specificity via "what kind?" technique, precise emotional language). An optional personal-brand mode (below) adapts the two phases to a specific author's voice, using a scoreable voice-schema gate and a deterministic eval harness. Do not use for generating new content from scratch, fact-checking, SEO scoring, or research. Does not use humanizer tools (gpthuman.ai, WriteHuman) — those are detectable; this skill does structural rewriting.
Two-phase editing skill. Phase 1 removes AI tells. Phase 2 injects specificity, burstiness, and emotional precision. Clean-but-generic is still a failure — both phases are required.
Setup
Load both reference files before starting:
references/patterns-reference.md— 33 AI tell patterns with before/after examplesreferences/specificity-techniques.md— "What kind?" technique, 7 levers, Emotions Wheel
Both are mandatory. Do not skip either.
Brand Context Intake
Before editing, identify the context. If not supplied, ask:
"Which context is this for? (a) Personal brand — LinkedIn/X/blog, (b) Analytical deliverable (report/memo/brief), (c) Generic content"
| Context | Risk level | Quality gate |
|---|---|---|
| Personal brand (LinkedIn/X/blog) | Highest | Use Personal-brand mode below (voice reference + schema gate + eval harness). Always offer 2 variations. Read-aloud test mandatory. At least one thing only the author could know. |
Analytical deliverable (paired with a write-report-style caller before its humanization pass) | Highest | Match the register the document already uses — keep analytical clarity, strip generic AI texture. Zero em-dashes. Preserve evidence tags, codes, and cited numbers untouched — relocate, never delete. |
| Generic content | Standard | Run Phase 1 + Phase 2 only. No voice gate. |
Personal-brand mode (example — adapt to your own voice)
When the draft is the author's own LinkedIn or X post, this mode wraps the two generic phases with a specific voice and a scoreable gate. It only rewrites an existing draft; generating a post from scratch is out of scope for this skill.
Required inputs: draft and channel (linkedin | x). Ask for either if missing.
Optional: purpose, known_context (facts/examples that must be preserved).
Load, in order, before editing:
references/voice-schema.md— a scoreable quality gate template. Fill in the "Banned Vocabulary" / "Forbidden Phrases" / dimension descriptions with the author's own rules, or use it as shipped as a reasonable generic default.- Any voice-reference notes the author already maintains (brand guidelines, prior approved posts, a style doc). If none exist yet, ask 2-3 questions about tone, audience, and what they never say, and note the answers for next time.
Workflow:
- Preserve meaning — capture the core claim, audience, concrete facts, personal details, caveats. Mark facts that must not change. If the draft lacks enough factual/personal material to feel author-specific, say so under Residual risks rather than inventing details.
- Substance & structure — lead with the point, cut padded intros / fake balance / list symmetry that does not serve the argument. LinkedIn keeps a considered prose rhythm unless clearly tactical; X compresses to one idea per tweet.
- Voice & humanize — run Phase 1 + Phase 2 below, then apply the author's voice rules from step 1: precise, direct, evidence-first; confident but not certain; no corporate-polish theater, no generic AI commentary, no fake certainty; no em-dashes if that's one of their rules.
- Score & gate — score the output against
references/voice-schema.md. When editing files/fixtures, run the deterministic harness:
If not run, state that the scorecard is manual-only.python scripts/eval_voice.py fixtures --format markdown - Capture feedback — on approve/reject/manual-edit, save before/after to
fixtures/before-after/(approved),fixtures/aiish/(rejected), orfixtures/gold/(strong published). This builds a calibration set over time — don't rely on chat history alone.
Output: Revised Draft (2 variations) · Scorecard (vs schema) · Deterministic-check summary · Change notes · Residual risks · Publishability verdict. Never publish or send on the author's behalf — drafts are review inputs for a human.
Phase 1: Remove AI Tells
Load references/patterns-reference.md. Scan for all 33 patterns. Rewrite each flagged section.
Priority flags (most common, fix first):
- Em dashes (—): Do a mechanical character search for U+2014 before anything else. Every instance outside a code block must be replaced. This is not optional and not stylistic — em dashes are one of the strongest AI detection signals and must be eliminated completely from prose. Replace with: comma (asides), period (strong breaks), colon (heading label-separators). Zero exceptions outside code blocks.
- AI tell-words: delve, unpack, leverage, tapestry, landscape, pivotal, comprehensive, robust, seamless, furthermore, moreover, genuine, genuinely, "it's worth noting," "this underscores"
- 2025-26 cluster (the delve-era words are fading; these replaced them): unlock, elevate, holistic, nuanced, resonate, align, transformative, dynamic, empower, streamline, harness, paramount, meticulous
- Contrastive negation ("It's not just X, it's Y" / "not merely... but...") — the strongest 2025-26 tell. Delete the negated clause, state the claim directly.
- Self-answered rhetorical questions ("Why does this matter? Because...") — merge into one declarative
- Theatrical transitions: "Here's the thing:", "The result?", "Let's break it down:", "But here's the kicker:", "Ultimately,"
- "Aims to" / "seeks to" openers ("This article aims to explore...") — just start with the claim
- Fake citations: "research shows," "experts say," "studies suggest" without a named source
- Significance inflation: "marks a pivotal moment," "enduring testament," "evolving landscape"
- Copula avoidance: "serves as," "stands as," "functions as" → replace with "is"/"are"
- Sycophantic artifacts: "Great question!", "I hope this helps!", "Let me know if..."
Phase 2: Inject Human Quality
Load references/specificity-techniques.md. Run all four injection passes:
Pass 1 — Burstiness Find 3+ consecutive sentences of similar length. Break one up or combine two. Target: mix of short punchy sentences (6–8 words) and longer ones. Low burstiness is the strongest AI detection signal.
Pass 2 — Specificity injection For every key claim: ask "what kind?" three times. If the noun or verb can't answer "what kind?", it's not earning its place. Apply the 7 specificity levers (see reference file). Move the content from V1–V2 specificity to V3–V4.
Pass 3 — Emotional precision Find every emotional or evaluative word (good, bad, frustrated, excited, important, effective). Apply the Emotions Wheel: replace with the precise emotion. "I felt bad" → "I felt embarrassed" or "I felt resentful" — each tells a different story.
Pass 4 — Read-aloud test Read the output aloud. Anywhere you stumble or the words feel unnatural in your mouth — fix those. This catches what pattern-matching misses.
Output Format
- The rewritten text
- Brief change summary: which patterns removed (Phase 1) + which injections made (Phase 2)
For personal brand context: deliver 2 variations unless the user explicitly asks for one.
Rules
- Load both reference files — mandatory, not optional
- Em dash search is the first action in Phase 1. Search for
—(U+2014) before reading for other patterns. Replace every instance outside a code block. Do not proceed until the count is zero. - Never deliver Phase 1 only — clean-but-generic is still a failure
- Never do surface-level word substitution — fix the underlying claim, not just the word
- Never add chatbot artifacts to output ("Here is the revised text", "I hope this helps")
- Ask for brand context if not supplied — quality gates differ
- Personal brand: 2 variations by default
- When a noun/verb can't answer "what kind?", flag it explicitly — don't silently substitute
- Humanizer tools (gpthuman.ai etc.) are now detectable — never recommend them
Learning Loop (every run, automatic — do not ask first)
Run at the end of EVERY invocation. These are low-risk reversible writes; do them, then mention them in one line of the output.
- If the user approves the output — save the before/after pair to
fixtures/before-after/(personal-brand mode) or as an example inreferences/patterns-reference.mdunder "Saved Examples" (generic mode) - If the user rejects the output as still AI-ish — save it to
fixtures/aiish/and append a dated entry toreferences/learnings.md(What Has Failed) naming which pattern survived the pass - If the user identifies a new pattern — add it to
references/patterns-reference.mdas the next numbered pattern, same turn - If the user says "never do X again" — add it to the Rules section above and note it in the relevant reference file
- If the user corrects a specific mistake — update the relevant pattern's description to prevent recurrence, and log the correction in
references/learnings.md - If the run surfaced nothing (clean pass, no user reaction yet) — skip silently; no empty entries
Credits
Phase 1 pattern taxonomy originally based on Wikipedia's "Signs of AI writing" guide via github.com/blader/humanizer (MIT licensed). This version extends it with Phase 2 (specificity/burstiness/emotional-precision injection), a personal-brand mode, and a deterministic eval harness.
<!-- Built with Agent Engineer Master — get your own production-ready skill: www.agentengineermaster.com/skill-engineer -->What ships with it: 16 files
74.9 KB alongside SKILL.md, 16 of them executable
evals/
- evals.jsonruns5.2 KB
- judge.mdruns2.2 KB
- rubric.mdruns4.1 KB
fixtures/
- aiish/linkedin_aiish.jsonruns537 B
- before-after/simple_rewrite.jsonruns534 B
- gold/linkedin_clean.jsonruns862 B
references/
- edge-cases.mdruns193 B
- learnings.mdruns564 B
- patterns-reference.mdruns26.8 KB
- specificity-techniques.mdruns6.9 KB
- voice-schema.mdruns3.9 KB
- voice-schema-rubric.mdruns1.1 KB
scripts/
- eval_voice.pyruns7.5 KB
tests/
- test_eval_voice.pyruns2.0 KB
Gives 0 of the 12 instructions most marketing audience skills give in ~2.5k tokens
Counted across 690 of the 894 authors here whose files we hold, read 2026-08-07
- Apply Poppins font to headingsin 41 of 690, across 6 files
- Apply Lora font to body textin 41 of 690, across 6 files
- Use Arial fallback for headingsin 39 of 690, across 4 files
- Use Georgia fallback for body textin 39 of 690, across 4 files
- Maintain text hierarchy and formattingin 39 of 690, across 4 files
- Use accent colors for non-text shapesin 38 of 690, across 3 files
- Use RGB values for precise color matchingin 38 of 690, across 3 files
- Use brand colors for primary text and backgroundsin 36 of 690, across 1 file
- Read product marketing context file before asking questions, starting, or auditingin 35 of 690, across 23 files
- Use active voice instead of passive voicein 26 of 690, across 10 files
- Implement or generate appropriate JSON-LD structured datain 24 of 690, across 17 files
- Prioritize clarity over clevernessin 22 of 690, across 8 files
Said here and by no other author read
- ask for brand context if not supplied
- perform mechanical search for em dashes first
- rewrite all flagged AI pattern sections
- replace every em dash outside code blocks
- delete contrastive negation and state claim directly
- run all four human quality injection passes
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.