Humanizer
Azure-Samples/interview-coach-agent-framework
Remove signs of AI-generated writing from text. An agent skill from Azure-Samples/interview-coach-agent-framework.
A skill your agent uses whenever the user asks to "humanize", "make this sound more human", "rewrite to avoid AI detection", "make this less AI-sounding", "add a human voice", or "write like a…
$ npx skills add harshaneel/humanize --skill humanize -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install harshaneel/humanize humanize --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/harshaneel/humanize.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/humanize/skills/humanize .claude/skills/humanize && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "humanize" agent skill from https://github.com/harshaneel/humanize/tree/main/plugins/humanize/skills/humanize into .claude/skills/humanize/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "humanize", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/harshaneel/humanize/tree/main/plugins/humanize/skills/humanizeType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add harshaneel/humanize --skill humanize -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install harshaneel/humanize humanize --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/harshaneel/humanize.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/humanize/skills/humanize .agents/skills/humanize && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "humanize" agent skill from https://github.com/harshaneel/humanize/tree/main/plugins/humanize/skills/humanize into .agents/skills/humanize/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "humanize", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add harshaneel/humanize --skill humanize -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install harshaneel/humanize humanize --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/harshaneel/humanize.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/humanize/skills/humanize .cursor/skills/humanize && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "humanize" agent skill from https://github.com/harshaneel/humanize/tree/main/plugins/humanize/skills/humanize into .cursor/skills/humanize/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "humanize", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/harshaneel/humanize.git --path plugins/humanize/skills/humanize--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add harshaneel/humanize --skill humanize -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install harshaneel/humanize humanize --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/harshaneel/humanize.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/humanize/skills/humanize .gemini/skills/humanize && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "humanize" agent skill from https://github.com/harshaneel/humanize/tree/main/plugins/humanize/skills/humanize into .gemini/skills/humanize/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "humanize", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install harshaneel/humanize humanizeInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add harshaneel/humanize --skill humanize -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/harshaneel/humanize.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/humanize/skills/humanize .github/skills/humanize && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "humanize" agent skill from https://github.com/harshaneel/humanize/tree/main/plugins/humanize/skills/humanize into .github/skills/humanize/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "humanize", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add harshaneel/humanize --skill humanize -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install harshaneel/humanize humanize --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/harshaneel/humanize.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/humanize/skills/humanize .opencode/skills/humanize && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "humanize" agent skill from https://github.com/harshaneel/humanize/tree/main/plugins/humanize/skills/humanize into .opencode/skills/humanize/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "humanize", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
humanizeA skill your agent uses whenever the user asks to "humanize", "make this sound more human", "rewrite to avoid AI detection", "make this less AI-sounding", "add a human voice", or "write like a…
Humanize is an agent skill from harshaneel/humanize. Use whenever the user asks to "humanize", "make this sound more human", "rewrite to avoid AI detection", "make this less AI-sounding", "add a human voice", or "write like a person". Also use when the user pastes text and asks why it reads as robotic, generic, flat, or AI-like, or when generating new text in a register where AI tells (em dashes, semicolons, hedges, banned vocabulary like "delve", "leverage", "robust") would damage credibility.
Its SKILL.md is about 9.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/research.md`).
It sits in Writing & Content, covering Humanizing AI text. The repository describes itself as: Best static AI text humanizer. Two research-grounded LLM-agnostic skills that make AI writing sound human and relatable. Nine levers, 50+ peer-reviewed sources, 2024-2026… The licence is MIT.
7 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 9c3dec3. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Humanize loads about 9.1k tokens when it runs, and up to ~10k if it reads all its reference files. Until then it costs about 114 tokens; SKILL.md has 5,067 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from harshaneel/humanize at commit 9c3dec3, republished under its MIT licence (© harshaneel). 5,067 words, ~9,061 tokens.
.claude/skills/humanize/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Transforms AI-generated or flat text into output that mirrors the statistical and stylistic
fingerprint of human writing. Grounded in the published detection literature; sources live in
references/research.md (background only, not needed during a rewrite).
These seven fail more often than everything else combined, because the model that wrote the draft is the model checking it. You systematically overproduce these patterns; your draft contains em dashes even when you don't remember writing them. Treat "my draft is probably clean" as false by default.
These apply in EVERY register, including creative, lyrical, and narrative prose. An em dash in a poem is still an em dash to a detector, and creative registers are where the "this one is doing literary work" rationalization kicks in hardest.
Enforcement is positional: stated here at the top, checked at the END against the finished draft by re-reading the actual draft text and counting occurrences (protocol steps 4-5). Never mark them clean from memory. If long context forces you to drop every other rule in this skill, keep these seven.
Nine signals: eight stylometric plus the RLHF fingerprint. Your output must move in the human direction on ALL of them.
| Signal | AI direction (avoid) | Human direction (target) |
|---|---|---|
| Perplexity | Predictable, low-surprise word choices | Occasional unexpected but apt words; word choices driven by rhythm, specificity, or memory |
| Burstiness | Uniform sentence length (~15–20 words every time) | Aggressive alternation: short punchy sentences. Then a longer one that builds and unfolds over a clause or two. |
| Hedge density | Overuse of "often", "generally", "typically", "it is important to note" | Hedges only when actually uncertain; direct assertion otherwise |
| Lexical repetition | Same root words recycled across paragraphs | Natural semantic diversity; synonyms and reformulations |
| Structural markers | Bullet lists for everything; numbered steps; excessive subheadings | Flowing prose; structure emerges from content, not imposed on it |
| Personal/emotional specificity | Generic, neutral, applicable-to-anyone claims | Specific: exact numbers, named examples, temporal anchors ("last quarter", "when I ran X") |
| POS density | High adjective/auxiliary verb density; subordinating conjunctions everywhere | Nouns and verbs do the heavy lifting; adjectives earned, not decorative |
| Punctuation fingerprint | Em dashes for drama, semicolons to link clauses, mid-sentence colons — all overused | Periods do the work. Em dashes rare. Semicolons almost never. Colons mainly to introduce lists. |
The levers below are the write-side counterparts of the signals ai-check grades (A–I):
1→A, 2→B, 3→C, 4→D, 5→E, 6→H, 7→F, 8→G, 9→I (RLHF subset). The full rhetorical-scaffolding
catalog for Signal I is enforced by the audit pass (step 5.5), not by any single lever.
Replace predictable vocabulary with words a real person would choose given this context:
Watch for elegant variation (synonym cycling). LLMs cycle synonyms for the same referent: "The protagonist faces challenges. The main character must adapt. The central figure triumphs." Same person, three labels. Rule: pick the canonical noun per referent and use it consistently; vary with a pronoun, not a synonym. "the company / the firm / the organization" → "the company" + "it".
Enforce sentence length variance. Target: standard deviation of sentence word count > 8. You can't compute stdev mentally, so enforce these two countable proxies instead; BOTH are required (hard rule 7):
Supporting rules:
Audit every softening word:
Filler-phrase substitutions (the pattern generalizes: any multi-word wrapper around a one-word meaning gets the one word):
| Verbose (AI) | Concise (human) |
|---|---|
| Due to the fact that | Because |
| In the event that | If |
| Has the ability / capacity to | Can |
| Make a decision / an assumption | Decide / Assume |
| For the purpose of | To / For |
| With regard to / With respect to | About / On |
| Prior to / Subsequent to | Before / After |
| In light of the fact that / Despite the fact that | Since / Although |
| In the process of / The fact that | (drop entirely; rephrase) |
Rhetorical scaffolding patterns (either/or binaries, chiasmus, tricolons, balanced parenthetical pairs, anaphora, "turns out" pivots, thesis-first openers incl. "X is the easy/hard part", mini-aphorism closers, parallel-subject mirrors) are catalogued ONCE in the Signal I checklist (step 5.5); negation pivots live in hard rule 5 and the step-4 diminishment scan. Apply the checklist at write time too. This table covers only what the checklist doesn't:
| AI pattern | Human replacement |
|---|---|
| Intro sentence + 3-bullet list | Prose paragraph where items are joined by flow, not bullets |
| "There are three main factors: ..." | Just talk about the factors; transitions carry the structure |
| "In conclusion, ..." | End mid-thought if the thought is complete; or "The net of all this..." / "Bottom line:" |
| Numbered sections for everything | Sections only when content is genuinely enumerable and order matters |
| Topic sentence + evidence + restatement | Skip the restatement; humans don't recap what they just said |
| Formula personal essay opener: "The [noun] I [remember/think about] most [adverb]" | Start with the incident itself: "In 2019 I shipped a rate limiter that fell apart the first hour it hit real traffic." |
| Intensifier/diminisher opposition: "X obsessively / Y barely at all" | Make the contrast asymmetric: "I tested the happy path constantly. The failure paths got one pass." |
| Landing phrase: "is the actual/real work" | State the conclusion without the landing phrase. |
| Local coherence over-smooth | Every sentence connects perfectly; reads too uniform, survives surface rewriting. Fix: one sentence per paragraph that slightly misfires — a thought that shifts direction, a word more casual than the register, a connection that isn't clean. |
| "Laid out that way" / "Seen this way" reframe pivot | Make the observation directly. |
| Perfect paragraph-per-idea essay arc | Let one paragraph do two jobs, or leave a thought unresolved. |
| Three-act Slack/update structure | Break with a fourth element that doesn't fit the arc. |
| Copula avoidance: "X serves as Y", "X stands as Y", "X marks/represents/boasts/features/offers Y" | Use "is" or "has": "Gallery 825 is LAAA's exhibition space." |
| Significance inflation: "stands as a testament to", "marks a pivotal moment in", "evolving landscape", "setting the stage for" | Cut, or replace with the concrete claim: "established in 1989 to publish regional statistics independently." |
| Promotional register: "nestled in the heart of", "vibrant", "breathtaking", "must-visit", "boasts a rich heritage", "renowned for" | Cut the brochure language: "Alamata is a town in the Gonder region known for its weekly market." |
| Vague attributions: "Industry observers have noted", "Experts argue", "Critics have suggested" | Name a specific source or drop the claim. |
| Outline-formula "Challenges and Future Prospects" sections | Replace with the specific challenges and what's being done, or drop the section. |
Every abstract claim needs a grounding anchor (a number, a name, a date, a concrete example). "Performance improved significantly" → "Latency dropped from 340ms to 80ms under the same load profile." If specifics aren't available, use plausible-specificity frames: "when you're running at X scale...", "in the cases I've seen...", "the one time this bit us..."
Human writing carries the writer's perspective:
| AI transition | Human replacement |
|---|---|
| "Furthermore," / "Moreover," | Cut; let the next sentence follow, or "Also," if bridging is needed |
| "In addition to the above," | "And" |
| "It is clear that" | Delete; assert directly |
| "As previously mentioned," | Don't mention it again, or rephrase without the callback |
| "This highlights the importance of" | Say what the importance IS: "Which means you need to..." |
Em dashes (—). The most reliable single AI tell; AI uses them at 3–5× the human rate.
X — item, item, item (introducing a list) → X. Item, item, item. or a colon after a complete sentenceSemicolons (;). Real-world prose outside academic/legal writing almost never uses them.
Mid-sentence colons (:). Fine at the end of a complete clause to introduce; mid-thought is an AI pattern.
Curly quotes. A near-certain single-character tell that survives rewriting.
“ ” → straight ", curly ‘ ’ → straight ' — apostrophes includedCurrent detectors mostly fire on RLHF and instruction-tuning artifacts, not "AI-ness" per
se ("Base Models Look Human"; details in references/research.md). What gets flagged is the
"helpful assistant" voice. This lever is the single most valuable one. Strip:
| RLHF tell | What to do |
|---|---|
| "Helpful assistant" register: "Here's how I'd think about it...", "Let me walk you through..." | Cut the framing. Just say the thing. |
| Balanced tradeoff offering: "On one hand X, on the other Y, it depends..." | Pick a side. The reader can disagree. |
| Structured enumeration of unrequested options | Answer. Acknowledge the constraint after if needed. |
| Pedagogical scaffolding: defining terms the audience knows, recapping shared context | Cut. Trust the reader. |
| "Important caveats" appended to every claim | Make the claim. Caveats only when the edge case is plausible. |
| Acknowledgment-prefix: "That's a great question, and..." | Cut entirely. |
| Closing summary recapping what was just said | Cut. |
| Hedged conclusions: "I hope this helps", "Let me know if you'd like me to elaborate" | Cut. End on the last substantive sentence. |
| Polite refusal-style disagreement: "While I understand the appeal of X, I would suggest..." | Just disagree: "X doesn't work because Y." |
| Symmetric framing of asymmetric tradeoffs | State the asymmetry. |
| Knowledge-cutoff disclaimers: "As of my training cutoff...", "Based on what I know up to..." | Cut. Say what you know, or "I don't know X". |
| Chat artifacts pasted into content: "Here is an overview of X", "Of course!", "Certainly!" | Strip on sight. Published prose never carries them. |
| Sycophantic prefixes: "Great question!", "You're absolutely right!" | Cut. Real engagement names the specific thing that was good. |
The nine levers are pure-rule; hybrid (rule + model-in-the-loop) approaches benchmark better.
When stakes warrant the cost, layer these on (sources: references/research.md):
Dead ends, don't bother: homoglyph injection (defeated by Unicode normalization, and a clear tampering signal), single cross-model rewrite (doesn't defeat trained detectors alone), watermark stripping (separate problem space).
When given text to humanize:
(Optional) Writer-profile distillation. If the user provided prior writing samples, extract style hypotheses across six dimensions before touching the new text:
Distill 5–10 specific hypotheses ("never opens with a thesis", "fragments in conclusions", "sentence variance roughly 6–28 words").
Critical rule when matching voice: don't just remove AI patterns — replace them with patterns from the sample. If the sample is casual, don't upgrade the vocabulary. The skill's default bias toward terse, direct prose yields to the sample's register when they conflict. Then apply the levers in service of those hypotheses.
Read the full input first. Identify topic domain, audience, register, length target.
Inventory the AI tells. Flag hedge count, list/bullet count, sentence-length uniformity, examples present/absent, transition inventory, RLHF voice markers.
Also count specific anchors (numbers, named entities, dates, time references, concrete
examples). If the count is zero AND no voice sample was provided in step 0, still
humanize — use Lever 5's plausible-specificity frames, never invented facts — then append
this note AFTER the humanized text, blank-line separated, as plain text (no > marker):
[Note: the input had no factual anchors (no numbers, names, dates, or specific examples). The rewrite is cleaner but learned classifiers (GPTZero, Grammarly) may still flag it on the specificity signal alone (Signal E in
ai-check). To close that gap, give me the actual specifics (product names, metrics, dates, named tools) or a sample of your writing to match.]
Do not stop and ask before rewriting. By the time the user says "proceed anyway", this skill sits deep in the conversation history and the second-pass rewrite reliably leaks tells back in. Rewrite now, flag the gap after.
Rewrite in a single pass applying all nine levers. No "light editing"; the statistical fingerprint requires structural change.
This matters most when the input is text you wrote earlier in this conversation. Rewriting your own recent output anchors you to its phrasing, and the rewrite silently degrades into word swaps that leave the original's em dashes, negation pivots, and rhythm intact. Treat your own prior output as foreign text: extract what it says, re-derive the prose from the content. If your edit log would read as a list of substitutions, you light-edited. Start over.
Pre-output gate. A literal scan, not a recollection: re-read the draft top to bottom and for each item write the count and quote every hit before fixing it. Write zeros explicitly ("em dashes: 0"). A gate entry without an explicit count is a gate you did not run — an unenumerated "looks clean" always passes, and this is where humanization fails silently in practice.
After fixing hits, re-scan the sentences you rewrote: regenerated prose reintroduces the same tells at the same rate as the first draft.
Self-check. Step 4 cleared the mechanical tells; this covers the rest:
5.5. Audit pass. Run the Signal I checklist below on every output — it is the single source of truth for rhetorical-scaffolding patterns. For outputs >150 words, also run the rewrite-and-recheck loop: after the self-check passes, ask "What still makes this read as AI?", list 2–3 residual patterns, rewrite those sentences, re-run the gate and self-check. Empirically the first revision has 2–4 Signal I patterns left; one loop gets it to 0–1. Loop once only — past iteration 2 you over-edit into choppy, voiceless prose.
Flagged residuals must be removed, not justified. Not kept because "removing it would collapse the paragraph", "this register needs it", "it reads thin without it", "it would be choppy", or "it's a transition, not a closer". Those rationalizations are how Signal I patterns survive — they feel necessary because they're constructed to feel necessary. If removing a flagged sentence makes a paragraph too thin, the paragraph IS too thin: collapse or merge it. An honest 80-word output beats a padded 200-word output that reads as AI. Red flag: if your audit says "borderline but I'm keeping it because...", you just lost the loop. Cut it.
Signal I checklist (every audit, every paragraph). A general "what reads as AI?" prompt misses things; scan for each pattern and fix every hit:
3+ hits means the patterns compound — address all of them. Two mini-aphorisms might be tolerable; three in five paragraphs is a clear AI signature.
5.6. Output-length sanity check. If output is under 50% of input length, the input was
mostly puffery that got correctly removed. Don't pad it back up — padding reintroduces
the stripped patterns. Instead append, blank-line separated, as plain text (no > marker):
[Note: input was substantially puffery; humanized output is N% shorter. To make this longer without re-introducing AI patterns, add specific anchors: numbers, named entities, examples, or time references.]
This and step 2's note are the only commentary the skill ever outputs, always after the rewrite, clearly separated. The intent: make the gap visible instead of silently shipping thin output that fails on Signal E.
(Optional) Self-rewrite distance sanity check. When stakes are high, run Advanced 4.
(Optional) Detector-scored best-of-N. When stakes are high, run Advanced 1.
Output the rewritten text only. No preamble ("Here is the humanized version:"), no trailing changelog ("Main moves:", "What I changed:"). The only permitted additions are the meta-notes mandated by steps 2 and 5.6. This holds in chat interfaces too, where narrating edits feels helpful: it isn't the deliverable, and a changelog of word swaps is evidence you light-edited (step 3). If the user wants a side-by-side, they'll ask.
When writing new content (not rewriting):
Decoding-strategy note (when controlling generation): set temperature high (0.9–1.1),
top-p loose (0.95–0.99), repetition penalty up (1.1–1.2). This widens the token distribution
and breaks the local-maximum property perplexity detectors rely on (RAID benchmark; see
references/research.md).
The register where this skill gets rationalized away. Every hard rule still applies; detectors don't grade on artistic merit. The traps:
Human creative writing gets its texture from specificity and asymmetry (a named street, a wrong note, an image that doesn't resolve), not punctuation drama.
Register collapse is the primary tell: AI Slack reads like a polished status report. Real Slack has:
~60%, <10min, fwiw, btw, lmk, tmrw~3-4 days, not "approximately three to four days"fwiw sprinkled in. Add a fourth element that doesn't fit, loop back, or end with an unset-up question.Remove every instance before outputting:
Core AI vocabulary: delve, leverage (verb), utilize, robust, comprehensive, streamline, foster, facilitate, pivotal, nuanced, multifaceted, crucial (overused), enduring, garner, valuable, vibrant, tapestry (figurative), testament (figurative), interplay, intricate, intricacies, landscape (as abstract noun), showcase (verb), highlight (as standalone verb), underscore (as standalone verb), align with, actually (as filler), additionally (as opener)
Hedge / softener clusters: it is important to note, it is worth mentioning, notably, it's worth noting, in many cases, generally speaking, it can be argued
Filler / formula openers and closers: in today's fast-paced world, in conclusion, in summary, to summarize, it goes without saying, needless to say, at the end of the day, at its core, under the hood, the standard fix, the common approach, simple enough on paper
AI transition fingerprint: furthermore, moreover, it is clear that, this highlights, this underscores, as previously mentioned, turns out (as a pivot), it turns out that
Significance inflation: stands as a testament to, marks a pivotal moment in, indelible mark, evolving landscape, setting the stage for, deeply rooted in, plays a vital role, a key turning point, represents a shift in
Promotional / marketing register: nestled in the heart of, in the heart of, breathtaking, must-visit, stunning, boasts a rich heritage, renowned for, groundbreaking (figurative), vibrant (cultural copy)
Quantifier inflation: a myriad of, a plethora of, in the realm of, the landscape of (abstract)
Persuasive authority tropes: the real question is, what really matters, fundamentally, the deeper issue, the heart of the matter, in reality
Signposting / tutorial scaffolding: let's dive in, let's explore, let's break this down, here's what you need to know, now let's look at, without further ado
Knowledge-cutoff disclaimers: as of my training cutoff, up to my last training update, while specific details are limited based on available information, based on what I know up to
Sycophantic prefixes: great question, you're absolutely right, that's an excellent point, of course!, certainly!
Templated email / Slack closers: happy to jump on a call, let me know if you have any questions, feel free to reach out, i hope this helps, looking forward to connecting soon
Binary framing: whether X or Y (as a clean binary framing opener)
© harshaneel, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file (references) in plugins/humanize/skills/humanize of harshaneel/humanize.
Open the folder on GitHubat commit 9c3dec3
Humanize next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Humanize this skillharshaneel/humanize | 518 | — | ~9.1k | Automated safety check: Pass | MIT | |
| HumanizerAzure-Samples/interview-coach-agent-framework | 172 | 37 repos | ~5.8k | Automated safety check: Pass | MIT | |
| Avoid AI Writingconorbronsdon/avoid-ai-writing | 4.9k | 3 repos | ~8.1k | Automated safety check: Pass | MIT | |
| User-Facing Text Cleanupguillaumemeyer/watermarks-remover | 23k | — | ~3.5k | Automated safety check: Pass | MIT | |
| Install Anti Sloptrycompai/crm | 11k | 1 repos | ~881 | Automated safety check: Pass | MIT | |
| Stop SlopXe/site | 731 | 8 repos | ~423 | Automated safety check: Pass | MIT |
Azure-Samples/interview-coach-agent-framework
Remove signs of AI-generated writing from text. An agent skill from Azure-Samples/interview-coach-agent-framework.
conorbronsdon/avoid-ai-writing
Audit and rewrite content to remove AI writing patterns ("AI-isms").
guillaumemeyer/watermarks-remover
Audits prose for invisible Unicode characters and rewrites it while keeping facts, citations, code and required disclosures unchanged and the writer's voice intact.
trycompai/crm
Install and configure the anti-slop Oxlint plugin in a local TypeScript or JavaScript repository.
Xe/site
Remove AI writing patterns from prose. An agent skill from Xe/site.
op7418/Humanizer-zh
Edits Chinese articles, comments and documents to remove filler, repetition and template phrasing while keeping the facts, the level of certainty and the author's voice.
harshaneel/humanize
A skill your agent uses when someone asks "does this sound AI?", "check if this is AI-written", "what gives this away as AI", "run ai-check on this", or "score this text".
Categories
A skill your agent uses whenever the user asks to "humanize", "make this sound more human", "rewrite to avoid AI detection", "make this less AI-sounding", "add a human voice", or "write like a…. Humanize is an agent skill from harshaneel/humanize. Use whenever the user asks to "humanize", "make this sound more human", "rewrite to avoid AI detection", "make this less AI-sounding", "add a human voice", or "write like a person".
Humanize fits situations like: the user asks to humanize; make this sound more human; rewrite to avoid AI detection; make this less AI-sounding.
Run `npx skills add harshaneel/humanize --skill humanize -a claude-code`. Or copy the skill folder (plugins/humanize/skills/humanize in harshaneel/humanize) into .claude/skills/humanize in your project. Claude Code loads it when a task matches its description.
Run `npx skills add harshaneel/humanize --skill humanize -a codex`. Or copy the skill folder (plugins/humanize/skills/humanize in harshaneel/humanize) into .agents/skills/humanize in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add harshaneel/humanize --skill humanize -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/humanize, .gemini/skills/humanize, .github/skills/humanize and .opencode/skills/humanize in your project.
SKILL.md names no scripts, command-line tools or credentials: Humanize is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Humanize is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 9.1k tokens (SKILL.md is roughly 36k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 928 tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Humanize: Humanizer (Azure-Samples/interview-coach-agent-framework, 172 stars), Avoid AI Writing (conorbronsdon/avoid-ai-writing, 4.9k stars), User-Facing Text Cleanup (guillaumemeyer/watermarks-remover, 23k stars) and Install Anti Slop (trycompai/crm, 11k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
harshaneel (a GitHub user) maintains it in harshaneel/humanize, which has 518 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on September 22, 2026.
Source: harshaneel/humanize on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.