/humanizer
Strip AI-writing tells from prose destined for humans — docs, PR/commit bodies, reports, release notes, blog posts, Slack/email drafts. Removes LLM-vocabulary clichés (delve, boasts, testament, underscore, robust, tapestry...), banned constructions (not just X but Y,
Claude Code
$ npx -y skills add Borda/AI-Rig --skill humanizer --agent claude-code
Codex
$ npx skills add Borda/AI-Rig --skill humanizer -a codex -y
Cursor
$ npx skills add Borda/AI-Rig --skill humanizer -a cursor -y
Gemini CLI
$ npx skills add Borda/AI-Rig --skill humanizer -a gemini-cli -y
GitHub Copilot
$ npx skills add Borda/AI-Rig --skill humanizer -a github-copilot -y
OpenCode
$ npx skills add Borda/AI-Rig --skill humanizer -a opencode -y
Windsurf
$ npx skills add Borda/AI-Rig --skill humanizer -a windsurf -y
SKILL.md
humanizer.SKILL.mdname: humanizer
description: 'Strip AI-writing tells from prose destined for humans — docs, PR/commit bodies, reports, release notes, blog posts, Slack/email drafts. Removes LLM-vocabulary clichés (delve, boasts, testament, underscore, robust, tapestry...), banned constructions (not just X but Y, rule-of-three triads, "-ing" superficial-analysis clauses, vague-attribution weasel words), and formatting tells (title-case headings, mechanical bolding, em-dash overuse, curly quotes, bare-bullet inline-header lists). TRIGGER when: user asks to humanize/polish/de-AI a piece of text or file; before finalizing a substantial human-facing prose artifact drafted as part of the current task (docs, PR/commit body, report, blog post, release notes, external message) — self-review pass, best-effort model-initiated, not a guaranteed intercept. SKIP when: output is a terse conversational chat reply, code, JSON/YAML/config, a machine-parsed agent envelope ("Return ONLY:"), a `.reports/` file or a file with report-schema frontmatter (report format needs the block and bold labels intact), or the target is an ultra-caveman-tier handover file (`.temp/`, inter-agent prose per `plugins/CLAUDE.md` compression tiers). Preserve ordinary publishing frontmatter and edit only the prose body.'
argument-hint: '[text or file path to humanize] | check <file>'
allowed-tools: Read, Edit
effort: medium<objective>
Detect and remove statistical AI-writing fingerprints from human-facing prose before it ships. Grounded in Wikipedia's crowd-sourced AI-detection corpus (`Wikipedia:Signs of AI writing`) — a maintained list of vocabulary, syntax, and formatting patterns over-represented in LLM output vs human baseline. Apply as a final pass, not a rewrite-from-scratch: preserve meaning, facts, structure; only excise the tells.
</objective>
<inputs>
- **text or file path to humanize**: optional. Inline text, or a file path (Markdown/plain text) to edit in place.
- **check `<file>`**: read-only mode — report findings, no editing.
- No argument: humanize the draft already composed earlier this turn (self-review pass) — only reachable when the model chooses to invoke this skill mid-task; no platform hook guarantees a pre-send interception, so treat this path as best-effort, not a hard gate.
</inputs>
<workflow>
1. Load the target text
- Inline text: work on it directly, no file I/O.
- File path: `Read` the file.
- **Destination guard** (before any edit): target must be human-facing prose. JSON/YAML/config, code, a machine-parsed agent envelope (`Return ONLY:`), a `.reports/` file or a file with report-schema frontmatter (the report header fields `Title`, `Date`, `Scope`, `Outcome`, `Confidence`, and `Path` — report format requires that block and bold labels such as Confidence), or an ultra-caveman handover file under `.temp/` → emit `**! BLOCKED — humanizer does not apply to <destination type>**` and make no edit. `check` mode reports without editing, so it is unaffected.
- Ordinary frontmatter in Marp decks, Jekyll/Hugo posts, MkDocs pages, and create outlines is not a blocker: preserve the metadata block verbatim and edit only the prose body. Preserve Marp slide separators and directives.
- No argument: treat the draft already composed earlier this turn as the target.
2. Scan against the checklist
Walk the text once per category below; enumerate every hit internally before editing anything (report-first, matches `check` mode output). The isolated-hit threshold in `<notes>` is the authority on which of those hits reach the report or an edit — an incidental lone match in an otherwise clean passage is scanned but not reported.
**Vocabulary — cut or replace with plain equivalent:**
| Banned | Plain replacement | | -- | -- | | delve, boasts, testament, underscore(s), showcase, tapestry, intricate/intricacies, meticulous, robust, vibrant, pivotal, crucial, garner, foster(ing), align with, landscape, interplay, enduring, enhance | say the specific thing instead — drop the word, don't swap in another vague one | | "stands as", "serves as", "marks a", "represents" (as copula dodge) | "is" / "was" | | "Additionally,", "Moreover,", "It is important to note that" | delete, or state the fact directly |
**Syntax — flag and restructure:**
- Negative parallelism: "not just X, but Y" / "not X, but Y" / "not only X but also Y" / "X rather than Y" used as a crutch
- Rule-of-three triads used for false comprehensiveness — members vague or abstract ("fast, reliable, and scalable"). Three concrete, distinct facts are not a triad tell. A list already flagged under another pattern (e.g. inline-header list) is not re-flagged as a triad.
- "-ing" superficial-analysis tails: "highlighting...", "underscoring...", "contributing to..." tacked onto a claim with no source
- Vague attribution / weasel words: "industry reports", "observers", "experts argue", "some critics" with no named source
- Formulaic "Despite its [positives], X faces challenges..." conclusion pattern
**Formatting — flag and fix:**
- Title Case In Headings → sentence case
- Mechanical bolding of every instance of a repeated term
- Markdown overuse — bold/bullets/headers where a plain sentence reads fine; the single most common tell in PR bodies and reports
- Bare-bullet inline-header lists (`• **Header:** text`) where prose or a real table reads better
- Em dash overuse — chain of `—` clauses instead of periods/commas
- Curly ("smart") quotes/apostrophes mixed inconsistently with straight ones
- `---`/`***` thematic breaks before headings (Markdown artifact bleeding into prose)
3. Apply fixes
- `check` mode: skip edits — report findings (category, severity, location, quote, suggested fix), then continue to Step 4 for the Confidence block. Severity follows the step 2 checklist group: Syntax hit = **high**, Vocabulary hit = **medium**, Formatting hit = **low**. Order findings high → low so the reader gets a cut order.
- Edit mode: apply minimal edit per flagged
Read more
name: humanizer
description: 'Strip AI-writing tells from prose destined for humans — docs, PR/commit bodies, reports, release notes, blog posts, Slack/email drafts. Removes LLM-vocabulary clichés (delve, boasts, testament, underscore, robust, tapestry...), banned constructions (not just X but Y, rule-of-three triads, "-ing" superficial-analysis clauses, vague-attribution weasel words), and formatting tells (title-case headings, mechanical bolding, em-dash overuse, curly quotes, bare-bullet inline-header lists). TRIGGER when: user asks to humanize/polish/de-AI a piece of text or file; before finalizing a substantial human-facing prose artifact drafted as part of the current task (docs, PR/commit body, report, blog post, release notes, external message) — self-review pass, best-effort model-initiated, not a guaranteed intercept. SKIP when: output is a terse conversational chat reply, code, JSON/YAML/config, a machine-parsed agent envelope ("Return ONLY:"), a `.reports/` file or a file with report-schema frontmatter (report format needs the block and bold labels intact), or the target is an ultra-caveman-tier handover file (`.temp/`, inter-agent prose per `plugins/CLAUDE.md` compression tiers). Preserve ordinary publishing frontmatter and edit only the prose body.'
argument-hint: '[text or file path to humanize] | check <file>'
allowed-tools: Read, Edit
effort: medium<objective>
Detect and remove statistical AI-writing fingerprints from human-facing prose before it ships. Grounded in Wikipedia's crowd-sourced AI-detection corpus (`Wikipedia:Signs of AI writing`) — a maintained list of vocabulary, syntax, and formatting patterns over-represented in LLM output vs human baseline. Apply as a final pass, not a rewrite-from-scratch: preserve meaning, facts, structure; only excise the tells.
</objective>
<inputs>
- **text or file path to humanize**: optional. Inline text, or a file path (Markdown/plain text) to edit in place.
- **check `<file>`**: read-only mode — report findings, no editing.
- No argument: humanize the draft already composed earlier this turn (self-review pass) — only reachable when the model chooses to invoke this skill mid-task; no platform hook guarantees a pre-send interception, so treat this path as best-effort, not a hard gate.
</inputs>
<workflow>
1. Load the target text
- Inline text: work on it directly, no file I/O.
- File path: `Read` the file.
- **Destination guard** (before any edit): target must be human-facing prose. JSON/YAML/config, code, a machine-parsed agent envelope (`Return ONLY:`), a `.reports/` file or a file with report-schema frontmatter (the report header fields `Title`, `Date`, `Scope`, `Outcome`, `Confidence`, and `Path` — report format requires that block and bold labels such as Confidence), or an ultra-caveman handover file under `.temp/` → emit `**! BLOCKED — humanizer does not apply to <destination type>**` and make no edit. `check` mode reports without editing, so it is unaffected.
- Ordinary frontmatter in Marp decks, Jekyll/Hugo posts, MkDocs pages, and create outlines is not a blocker: preserve the metadata block verbatim and edit only the prose body. Preserve Marp slide separators and directives.
- No argument: treat the draft already composed earlier this turn as the target.
2. Scan against the checklist
Walk the text once per category below; enumerate every hit internally before editing anything (report-first, matches `check` mode output). The isolated-hit threshold in `<notes>` is the authority on which of those hits reach the report or an edit — an incidental lone match in an otherwise clean passage is scanned but not reported.
**Vocabulary — cut or replace with plain equivalent:**
| Banned | Plain replacement | | -- | -- | | delve, boasts, testament, underscore(s), showcase, tapestry, intricate/intricacies, meticulous, robust, vibrant, pivotal, crucial, garner, foster(ing), align with, landscape, interplay, enduring, enhance | say the specific thing instead — drop the word, don't swap in another vague one | | "stands as", "serves as", "marks a", "represents" (as copula dodge) | "is" / "was" | | "Additionally,", "Moreover,", "It is important to note that" | delete, or state the fact directly |
**Syntax — flag and restructure:**
- Negative parallelism: "not just X, but Y" / "not X, but Y" / "not only X but also Y" / "X rather than Y" used as a crutch
- Rule-of-three triads used for false comprehensiveness — members vague or abstract ("fast, reliable, and scalable"). Three concrete, distinct facts are not a triad tell. A list already flagged under another pattern (e.g. inline-header list) is not re-flagged as a triad.
- "-ing" superficial-analysis tails: "highlighting...", "underscoring...", "contributing to..." tacked onto a claim with no source
- Vague attribution / weasel words: "industry reports", "observers", "experts argue", "some critics" with no named source
- Formulaic "Despite its [positives], X faces challenges..." conclusion pattern
**Formatting — flag and fix:**
- Title Case In Headings → sentence case
- Mechanical bolding of every instance of a repeated term
- Markdown overuse — bold/bullets/headers where a plain sentence reads fine; the single most common tell in PR bodies and reports
- Bare-bullet inline-header lists (`• **Header:** text`) where prose or a real table reads better
- Em dash overuse — chain of `—` clauses instead of periods/commas
- Curly ("smart") quotes/apostrophes mixed inconsistently with straight ones
- `---`/`***` thematic breaks before headings (Markdown artifact bleeding into prose)
3. Apply fixes
- `check` mode: skip edits — report findings (category, severity, location, quote, suggested fix), then continue to Step 4 for the Confidence block. Severity follows the step 2 checklist group: Syntax hit = **high**, Vocabulary hit = **medium**, Formatting hit = **low**. Order findings high → low so the reader gets a cut order.
- Edit mode: apply minimal edit per flagged
Practical agent workflows for Python, ML, and open-source maintenance. AI-Rig turns recurring work—scoping a change, reproducing a bug, reviewing a pull request, running an experiment, or checking release readiness—into explicit workflows with specialist
More skills from other plugins.
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
ask-matt
Ask which skill or flow fits your situation. A router over the skills in this repo.
Questions about humanizer.
- Which coding agents can use humanizer?
- humanizer installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.

