Use when content-wand needs to remove AI writing patterns from platform outputs before delivery. Always the final pass after platform-writer or repurpose-transformer.
Scanned 5/27/2026
Install via CLI
openskills install baagad-ai/content-wand---
name: humanizer
description: Use when content-wand needs to remove AI writing patterns from platform outputs before delivery. Always the final pass after platform-writer or repurpose-transformer.
user-invocable: false
---
# humanizer
## Overview
Removes AI writing patterns from generated content. Always runs as the final pass in the pipeline.
**Core principle:** Every output — with or without a Writing Style — should pass a basic "could a human have written this?" test. The humanizer ensures this.
**Architecture:** Receives platform output blocks + optional voice profile. Returns the same block structure with AI patterns removed. Three passes: lexical scrub → structural rewrites → voice application.
---
## Security
The humanizer receives content generated by platform-writer and repurpose-transformer — TRUSTED content (generated by this skill, not from external sources). No new injection surface.
**Do NOT change meaning.** Pattern replacements change HOW something is said, never WHAT is being said. If a replacement would alter factual content or remove a key claim: skip that replacement for that instance.
---
## Input
The orchestrator passes:
1. `---PLATFORM-OUTPUT-START---` block(s) from platform-writer, or `---TRANSFORMED-CONTENT-START---` block from repurpose-transformer
2. `---VOICE-PROFILE-START---` block **OR** `VOICE-PROFILE: none`
3. `platform: [name]` for each output block
**MANDATORY — READ ENTIRE FILE first**: Read `references/ai-patterns.md` completely before running any pass. Do NOT load `references/platform-specs.md` or `references/brandvoice-schema.md`.
---
## Pass 1 — Lexical Scrub
Scan all output text for Tier 1 and Tier 2 words/phrases from `references/ai-patterns.md`.
**Rules for this pass:**
- Replace or delete — never add words that weren't already there
- Context matters: "leverage" as a financial noun is NOT flagged. "leverage [thing] to achieve [result]" IS flagged.
- Filler phrases (`it's worth noting`, `it's important to note`) → delete the entire phrase. The point they introduce stands alone.
- Academic transitions (`furthermore`, `moreover`, `additionally`) → replace with `also` or delete and let the connection be implicit
- Opening clichés (`In today's fast-paced world`, `In an era where`) → delete the entire opener. Start at the first real sentence.
- Closing clichés (`In conclusion`, `In summary`) → delete. The content already concluded.
- Never replace a word just because it appears on a list — read the sentence. If the word is used correctly and no overuse pattern is present, leave it.
---
## Pass 2 — Structural Rewrites
Apply fixes for each structural pattern found. All detection rules and examples are in `references/ai-patterns.md`.
**Em dash overuse (2+ em dashes in one paragraph):**
Replace em dashes beyond the first with a comma, colon, or sentence break. Leave one em dash if it's used for genuine dramatic pause.
**Uniform sentence length:**
If all sentences in a paragraph cluster at 12–18 words: add variety. Add one short sentence (under 7 words). Allow one to run longer without breaking it. Preserve meaning completely.
**Rule of threes (repeated tricolon):**
If every supporting idea in the piece comes in exactly three items: vary at least one group. Use two items or four — whatever the content actually needs.
**"Not just X, it's Y" construction:**
Delete the X clause. State Y directly.
**Significance signposting:**
Delete phrases announcing importance ("plays a crucial role in", "underscores the importance of", "highlights the significance of"). State the claim directly.
**Forced balanced arguments:**
If "on one hand / on the other hand" presents no genuine tension: commit to the stronger position, remove the weaker one. If genuine tension exists with specific reasons on each side: keep the balance, but make each side concrete.
**Formulaic elaboration:**
When the same point is made in three consecutive sentences (claim → restate → restate again): delete the 2nd and 3rd restatement. Trust the reader.
**Passive voice detachment:**
"It has been shown that..." → name who showed it. "It is believed that..." → "Many believe that...". If no real agent exists: convert to active with an implied subject.
**Bullet obsession:**
If every idea in the piece is a bullet list with no prose: convert at least one bullet section to connected prose. Keep bullets only for genuinely parallel, enumerable items.
---
## Pass 3 — Voice Application
**Only runs when a `---VOICE-PROFILE---` block is present.** Skipped entirely when `VOICE-PROFILE: none`.
After the pattern cleanup in Passes 1 and 2, shape the final output toward the Writing Style:
1. **Sentence style:** If `sentence_style: short-punchy` — verify short sentences weren't inadvertently removed in Pass 2. If `sentence_style: long-flowing` — don't force short choppy sentences.
2. **Opening patterns:** If the voice profile documents specific opening patterns (e.g., "starts with a bold claim", "opens with a question") — check if the output's opening matches. If it doesn't and the content allows an adjustment without changing meaning: adjust.
3. **Taboo patterns:** Scan for any patterns in `taboo_patterns` and remove/replace them.
4. **Structural patterns:** If `structural_patterns` includes "no headers" — remove any headers. If "short paragraphs" — break long paragraphs.
5. **Vocabulary:** If `vocabulary: everyday` — replace any elevated vocabulary that survived Pass 1. If `vocabulary: technical` — preserve technical terms that Pass 1 might have flagged as AI markers but are genuinely domain-appropriate.
6. **Platform variants:** If the voice profile has a note for this platform in `platform_variants` — apply those adjustments last, after all other passes.
---
## Platform-Specific Rules
Apply after all three passes, regardless of voice profile:
| Platform | Rules |
|---|---|
| Twitter/X | No em dashes. No "furthermore/moreover". Contractions required (don't, can't, I'm). No conclusion tweets ("So that's X in a nutshell..."). No contextualizing opener tweets. |
| LinkedIn | "Journey", "community", "together" banned unless very specific. No inspirational closer. No "just wanted to share". No "honored and humbled". Specificity beats vague warmth. |
| Newsletter | Don't over-clean — some informality is correct. One personal aside is expected. Vary sentence rhythm deliberately. Don't remove first-person observations. |
| TikTok / YouTube Shorts | Sentence fragments permitted. Slang permitted. Match spoken rhythm, not written grammar. |
| Instagram Carousel | Each slide: one declarative sentence preferred. No connectors between slides. Each slide should stand alone. |
| Bluesky / Threads | Like Twitter but slightly more discursive. No "moreover". Conversational — intellectual is fine, academic is not. |
| Podcast Talking Points | Conversational fragments OK. Write as people actually speak. Bullets are notes, not final deliverable — convert to readable talking points. |
---
## Output
Return the same block structure received, with humanized content replacing the original:
```
---PLATFORM-OUTPUT-START---
platform: [same as input]
[humanized content]
---PLATFORM-OUTPUT-END---
```
After all platform blocks, add one summary line:
```
[Cleaned N AI writing patterns]
```
If the user asks "what did you change?" — give a brief list of pattern **categories** addressed (e.g., "Removed 4 filler phrases, 2 em-dash overuses, 1 balanced-argument hedge, applied your Writing Style patterns"). Not a line-by-line diff unless asked.
---
## NEVER
- NEVER change factual content, key claims, or core arguments
- NEVER add new information not present in the original output
- NEVER make the content longer
- NEVER run on `---CONTENT-OBJECT---` blocks — humanizer only processes platform-writer and repurpose-transformer output, never the ingest stage
- NEVER load `references/platform-specs.md` or `references/brandvoice-schema.md`
- NEVER skip Pass 1 — lexical scrub always runs, even without a voice profile
No comments yet. Be the first to comment!