Install
$ agentstack add skill-harshaneel-humanize-humanize ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
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 (Wu et al. 2025, Kujur 2025, Mitchell et al. 2023, and the AAAI 2025 shared task corpus).
Mental model: what detectors actually measure
Before rewriting, internalize the nine signals detectors use (the eight stylometric signals plus the RLHF / instruction-tuning fingerprint). Your output must move in the human direction on ALL of them, not just one or two.
| 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", "it is worth mentioning" | Hedges used 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 | More nouns and verbs doing the heavy lifting; adjectives earned, not decorative | | Punctuation fingerprint | Em dashes to inject drama, semicolons to link clauses, colons mid-sentence to introduce — all overused | Periods do the work. Em dashes rare and deliberate. Semicolons almost never. Colons mainly for lists at end of sentence. |
Lever ↔ signal map
The levers in the next section are the write-side counterparts of the signals ai-check grades on (A–I). Apply a lever, lower the matching signal:
| Lever | Targets ai-check signal | |---|---| | 1 Perplexity injection | A Perplexity | | 2 Burstiness injection | B Burstiness | | 3 Hedge surgery | C Hedge density | | 4 Structural flattening | D Structural tells | | 5 Specificity insertion | E Specificity | | 6 Voice and register | H Voice / register | | 7 Discourse coherence | F Transitions | | 8 Punctuation normalization | G Punctuation | | 9 Strip RLHF voice | I Rhetorical scaffolding (RLHF subset) |
Lever 9 covers only the RLHF slice of Signal I; the full rhetorical-scaffolding catalog 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 actually 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 would say "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 avoid repeating the same noun by cycling through synonyms for the same referent. The cause is repetition-penalty code in the sampling layer. The result is sentences like: "The protagonist faces many challenges. The main character must overcome obstacles. The central figure eventually triumphs. The hero returns home." Same person, four labels.
Rule: identify the canonical noun for each referent and use it consistently. Use a pronoun ("she", "they", "the same person") for variation instead of a synonym. Synonym cycling is detectable; pronoun reference is human-natural.
Examples to fix:
- "the protagonist / the main character / the central figure / the hero" → "the protagonist" + "she" (or "he" / "they")
- "the company / the firm / the organization / the enterprise" → "the company" + "it"
- "the study / the research / the paper / the investigation" → "the study" + "it"
Lever 2: Burstiness injection (sentence-level)
Enforce sentence length variance. Target: standard deviation of sentence word count > 8.
Rules:
- Every 3–4 sentences, insert one sentence of 5 words or fewer. Just drop it. Like that.
- Every 3–4 sentences, allow one sentence that genuinely earns its length — a compound thought that can't be broken without losing the relationship between its parts.
- Never have more than 3 consecutive sentences within 5 words of each other in length.
- Burstiness fails in both directions. Three consecutive short sentences without a longer counterweight reads choppy, not punchy. Always pair a run of shorts with a longer sentence that earns its length.
- Read the paragraph aloud mentally. If it has a metronomic rhythm, it's too uniform.
- Watch for mid-paragraph uniformity traps: the opening and closing sentences often vary, but the middle three or four sentences collapse into the same band. Break one of them.
Lever 3: Hedge surgery
Audit every softening word:
- Delete: "it is important to note that", "it is worth mentioning that", "generally speaking", "in many cases", "it can be argued", "often", "typically" (unless genuinely needed for accuracy)
- Replace with direct assertion: "This matters because X" not "It is important to consider that X may be relevant"
- If uncertainty is real, express it human-style: "I'm not sure this holds for edge cases, but..." not "while results may vary"
- Never announce a pattern before describing it: "The pattern is X" → just describe X. Announcing it first is AI tutorial structure.
- Don't soften rules with "almost always" or "generally" when the rule is real. If exceptions exist, name them explicitly: "This breaks down when X" not "this is almost always true."
- Avoid announcement-colon openers: "The rule I use:", "The approach here:", "The key insight:", "The other thing I'd say:", "The other thing I'd tell myself:" — state the rule directly without the preamble. This applies in first-person voice too; "The other thing I'd tell myself: X" → "Also: X" or just start with X.
- Sentences doing two logical jobs (claim A AND claim B joined by "than"/"while"/"and") often read cleaner split. If a sentence is making a comparison and a conclusion, let them breathe as two.
- Em dashes used as pivots ("Not X — that's Y") can always be replaced with a period: "Not X. That's Y." Prefer the period.
Filler-phrase substitutions:
AI inflates simple constructions. Run this find-replace pass:
| Verbose (AI) | Concise (human) | |---|---| | In order to achieve this goal | To achieve this | | Due to the fact that | Because | | At this point in time | Now | | In the event that | If | | Has the ability to | Can | | Has the capacity to | Can | | It is important to note that the data shows | The data shows | | Make a decision | Decide | | Make an assumption | Assume | | At the present moment | Now | | In a manner that is | (drop entirely) | | For the purpose of | To / For | | With regard to / With respect to | About / On | | In light of the fact that | Since | | Despite the fact that | Although | | Prior to | Before | | Subsequent to | After | | In the process of | (drop entirely) | | The fact that | (drop entirely; rephrase) |
Lever 4: Structural flattening
Convert AI prose patterns to human prose patterns:
| 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, letting transitions carry the structure | | "In conclusion, ..." | End mid-thought if the thought is complete; or use "The net of all this..." / "Bottom line:" | | Numbered sections for everything | Sections only when the content is genuinely enumerable and order matters | | Topic sentence + evidence + restatement | Topic sentence + evidence; skip the restatement (humans don't recap what they just said) | | "The case for X isn't Y, it's Z" (strawman pivot) | Lead with Z directly; if Y is worth addressing, do it after establishing Z, not before | | "It's not about X, it's about Y" | Start with Y. The rebuttal structure signals AI argumentative scaffolding. | | "not X, it's Y" (without "just") | Same family as "not just X." Don't frame by negating before asserting. "It's not self-reported, it's merit-based" → "It's merit-based." | | "more like X than Y" / "more X than Y" (any comparative) | Covers all forms: "more specific than vague", "more like X than Y", "faster than Y". Describe X; drop the contrast. | | "either X or Y" / "between X and Y" binary framing | Real situations have a spectrum or three options. Name the actual situation without the either/or frame. | | Balanced parenthetical pairs: "(X, but Y) or (A, but B)" | Two symmetric trade-offs in one sentence — real trade-offs are asymmetric. Break the symmetry or drop one parenthetical. | | Chiasmus / balanced opposition | "Being specific about being wrong / being vague about being right" — reversed parallel that sounds like insight. Make the comparison asymmetric. | | Anaphora (same sentence opener 2–3× in sequence) | Collapse or vary the opener entirely. | | "turns out" / "it turns out that" as a pivot | Replace with direct statement. | | Thesis-first opener | Start in the middle of the experience instead. | | Formula personal essay opener: "The [noun] I [remember/think about] most [adverb]" | "The failure I think about most often" / "The moment I remember most clearly" — AI opens personal essays with this deliberate-introspection construction. Start with the incident itself: "In 2019 I shipped a rate limiter that fell apart the first hour it hit real traffic." | | Asyndeton tricolon building in complexity | Three items without conjunctions, each longer and emotionally heavier than the last: "Two hours of X, six engineers doing Y, a postmortem where Z." AI uses this to manufacture escalating weight. Break the third item off as its own sentence, or join two items with "and." | | Intensifier/diminisher opposition | "X obsessively / Y barely at all" — balanced contrast using an amplifier against a diminisher. Same family as chiasmus. Make the contrast asymmetric: "I tested the happy path constantly. The failure paths got one pass." | | Mini-aphorism paragraph closer | "That's the part that stuck." / "That's what changed." / "That's the whole thing." — 4–7 word fragment used to close a paragraph with a punchy lesson. AI appends these to tell the reader what to conclude. Delete it and let the evidence land. | | Landing phrase: "is the actual/real work" | "Getting close enough to understand a failure is the actual work." AI's formulaic way to deliver a conclusion. State the conclusion directly without the landing phrase. | | Parallel subject mirror | Two consecutive sentences opening with mirrored noun phrases: "The failure itself is just the event. Understanding it is separate." AI constructs these as closing pairs. Break the mirror: vary the subject of one sentence. | | Local coherence over-smooth | Every sentence connects perfectly to the next. Zero friction, zero cognitive-load artifacts. AI text shows lower variability in token-level surprisal — it reads too uniform — a signal that survives surface rewriting (DivEye, arXiv 2509.18880, TMLR 2026). Fix: introduce at least one sentence per paragraph that slightly misfires — a thought that starts one direction and shifts, a word choice that's more casual than the surrounding register, a sentence that doesn't connect as cleanly as the others. | | "Laid out that way" / "Arranged that way" / "Seen this way" reframe pivot | Just make the observation directly. | | "X is the easy/hard part" | Start with the challenge itself. | | Tricolon parallel structure | Three beats, identical grammar. Break symmetry or reduce to two. | | 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 Y", "X represents Y", "X boasts Y", "X features Y", "X offers Y" | Use "is" or "has" directly. "Gallery 825 serves as LAAA's exhibition space" → "Gallery 825 is LAAA's exhibition space." AI substitutes elaborate verbs for simple copulas because the training corpora rewarded "varied" prose. Real writers use "is" and "has." | | Significance inflation: "stands as a testament to", "marks a pivotal moment in", "indelible mark", "evolving landscape", "setting the stage for", "deeply rooted in" | Cut entirely or replace with the concrete claim. "The institute was established in 1989, marking a pivotal moment in the evolution of regional statistics" → "The institute was established in 1989 to publish regional statistics independently." | | Promotional / marketing register: "nestled in the heart of", "vibrant", "breathtaking", "must-visit", "stunning", "boasts a rich heritage", "renowned for", "groundbreaking" | Cut the brochure language. "Nestled within the breathtaking region of Gonder, Alamata stands as a vibrant town" → "Alamata is a town in the Gonder region known for its weekly market." | | Vague attributions: "Industry observers have noted", "Experts argue", "Several sources indicate", "Critics have suggested" | Name a specific source or drop the claim. "Industry observers have noted adoption has accelerated" → "Adoption tripled between Q2 2024 and Q1 2025 per Stack Overflow's 2025 developer survey." If you can't anchor it, you probably shouldn't make the claim. | | Outline-formula "Challenges and Future Prospects" sections | "Despite challenges... continues to thrive" is a section template AI loves. Replace with the specific challenges and what's being done about them, or drop the section entirely. |
Lever 5: Specificity insertion
Every abstract claim needs a grounding anchor:
- Generic: "Many companies have adopted this approach."
Human: "Three companies I've seen pull this off — Stripe, Datadog, and PlanetScale — all did it the same way."
- Generic: "Performance improved significantly."
Human: "Latency dropped from 340ms to 80ms under the same load profile."
- Generic: "This is a common problem."
Human: "Every team I've talked to hits this around the 50-engineer mark."
If specific details 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..."
Lever 6: Voice and register
Human writing carries traces of the writer's perspective and history:
- First-person where natural ("I find that...", "In my experience...", "The way I think about this...")
- Occasional second-person direct address ("If you've ever debugged this...", "You'll recognize this pattern if...")
- Mild rhetorical questions used as transitions: "So why does this matter?", "Where does this leave us?"
- Self-interruption or course-correction mid-thought: "— actually, that's not quite right —", "more precisely:"
- Contractions in conversational registers: "don't", "it's", "you'll" (not "do not", "it is", "you will")
Lever 7: Discourse coherence (non-AI transitions)
AI text strings paragraphs with robotic transitions. Replace:
| AI transition | Human replacement | |---|---| | "Furthermore," | Cut it; let the next sentence follow naturally, or start with "Also," if bridging is needed | | "Moreover," | Same | | "In addition to the above," | "And" works fine here | | "It is cl
…
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: harshaneel
- Source: harshaneel/humanize
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.