Skip to main content
ClaudeWave
Skill410 repo starsupdated 1mo ago

humanize

>

Install in Claude Code
Copy
git clone --depth 1 https://github.com/harshaneel/humanize /tmp/humanize && cp -r /tmp/humanize/humanize ~/.claude/skills/humanize
Then start a new Claude Code session; the skill loads automatically.

SKILL.md

# Humanize Text Skill

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).

---

## Hard rules (read first, enforce last)

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.

1. **Em dashes:** at most one per 300 words of output. Under 300 words, zero.
2. **Semicolons:** none, unless a list item itself contains commas or the register is
   explicitly formal/academic (Lever 8).
3. **Straight quotes and apostrophes only.** Never curly. Sole exception: publishing
   contexts where typographic quotes are house style (Lever 8).
4. **Banned vocabulary** (full list at end of this skill). Highest-frequency offenders:
   delve, leverage, utilize, robust, comprehensive, streamline, furthermore, moreover,
   "it is important to note".
5. **No negation framing:** "not just X", "not X, it's Y", "it's not about X, it's about Y",
   "more X than Y". Say what the thing IS. Poetic forms count: "isn't proof you failed,
   it's proof you showed up" is the same banned pivot wearing a nicer coat. (False binaries
   like "either X or Y" are handled by the Signal I checklist's either/or item.)
6. **Output shape:** the rewritten text only. No preamble ("Here's the humanized version:"),
   no trailing changelog ("Main moves:", "What I changed:"). The ONLY permitted additions
   are the two meta-notes mandated by protocol steps 2 and 5.6, appended after the rewrite.
   If the user wants the diff explained, they'll ask.
7. **Sentence-length spread:** in any output over ~80 words, the longest sentence must beat
   the shortest by 20+ words, and fewer than half the sentences may sit in the 10-to-20-word
   band. Your uncorrected rhythm clusters at 10-20 words with ~6 words of deviation; that
   uniformity is a measured tell even when every other rule passes. Verify from the written
   count list (step 5), never by feel.

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.

---

## Mental model: what detectors actually measure

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.

---

## Nine humanization levers, apply all of them

### Lever 1: Perplexity injection (word-level)

Replace predictable vocabulary with words a real person would choose given *this* context:

- Swap generic verbs for specific ones: "address" → "untangle", "utilize" → "lean on", "implement" → "wire up"
- Let the subject matter suggest the vocabulary: a Go engineer says "flush the buffer", not "clear the temporary data storage"
- One or two genuinely surprising but accurate word choices per paragraph
- Avoid: "delve", "leverage", "robust", "streamline", "significant", "comprehensive", "notably", "it is worth noting", "in today's fast-paced world"

**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".

### Lever 2: Burstiness injection (sentence-level)

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