35 Patterns of AI Writing That Humanizer Detects: A Complete Breakdown

TLDR: Humanizer identifies 35 distinct AI writing patterns grouped into three "S" families—Content (S1), Language & Grammar (S2), and Style (S3)—to detect and remove machine-generated tells while preserving factual claims.

The blader/humanizer repository provides a specialized skill that automatically scans prose for structural, lexical, and stylistic markers of artificial generation. According to the source code in SKILL.md, Humanizer targets 35 specific patterns across three detection families to transform AI-tainted text into authentic human writing.

The Three "S" Families of AI Writing Patterns

Humanizer organizes its detection logic into three principal pattern families, each targeting distinct categories of AI-generated tells documented in SKILL.md.

S1 – Content Patterns

Content patterns capture structural or thematic AI tells that appear within the substance of a paragraph. These markers indicate machine-generated conceptual frameworks rather than natural human expression.

Key indicators in this family include:

  • Inflated claims and grandiose assertions without substantive backing
  • Name-dropping and unnecessary credential stuffing
  • Shallow "-ing" analysis that relies on present participles to simulate depth
  • Sales-y language with unsolicited superlatives
  • Vague sources and unattributed statistics
  • Formulaic challenge/outlook sections that follow predictable rhetorical structures

S2 – Language & Grammar Patterns

Language and grammar patterns identify lexical or grammatical cues that betray machine-generation through repetitive or constrained syntactic choices.

The S2 family specifically targets:

  • Overused AI words such as "delve," "leverage," and "resonate"
  • Avoidance of "is/are" constructions in favor of more complex copular substitutions
  • "Not X but Y" constructions that create false dichotomies
  • Forced groups of three (tricolons) that signal algorithmic pattern-matching
  • Repeated names and openings that indicate template-based generation
  • False ranges (e.g., "from X to Y") used for artificial comprehensiveness
  • Excessive passive voice that obscures agency

S3 – Style Patterns

Style patterns detect formatting and stylistic quirks that large language models habitually insert, particularly in markdown-rich or conversational outputs.

This family encompasses:

  • Em/en-dash misuse and inconsistent punctuation spacing
  • Excessive bolding and bold mini-headings that break narrative flow
  • Title-case headings in inappropriate contexts
  • Unnecessary emojis and decorative elements
  • Curly quotes in technical documentation
  • Chatbot-style greetings ("Great question!" or "I'd be happy to help")
  • Knowledge-limit disclaimer phrasing ("As of my knowledge cutoff...")
  • Overly agreeable tone and excessive hedging/filler words
  • Formulaic style shortcuts that prioritize formatting over substance

How Humanizer Processes the 35 Patterns

When Humanizer processes text, it cross-references content against the complete enumeration of 35 numbered patterns defined in SKILL.md. The skill first scans for S1-S3 signals, then rewrites the passage while preserving every factual claim. If any of the three families are detected, the rewrite removes AI-specific tells and restores natural human cadence.

The detection logic operates through the Claude plugin interface defined in .claude-plugin/plugin.json, which loads the skill specifications and applies the pattern-matching rules to input text.

Implementation Examples

You can invoke Humanizer programmatically to strip the 35 AI writing patterns from generated text.

Direct Skill Invocation

from claude_plugin import SkillRunner

humanizer = SkillRunner(
    skill_path="https://github.com/blader/humanizer/blob/main/SKILL.md"
)

ai_text = """
The Statistical Institute of Catalonia was officially established in 1989, marking a pivotal
moment in the evolution of regional statistics in Spain. This initiative was part of a
broader movement across Spain to decentralize administrative functions and enhance regional
governance.
"""

result = humanizer.run(input=ai_text)
print(result)   # → Humanized version with S1-S3 patterns removed

Prompt-Based Usage

"""
You are a rewriting assistant. Apply the Humanizer skill to the following text:

"The temple's color palette of blue, green, and gold resonates with the region's natural
beauty, symbolizing Texas bluebonnets, the Gulf of Mexico, and the diverse Texan landscapes,
reflecting the community's deep connection to the land."

Return only the final rewrite.
"""

When processed through the Claude interface with the Humanizer skill loaded, the model outputs: "The temple is painted blue, green, and gold, colors meant to evoke Texas bluebonnets and the Gulf of Mexico."

Repository Structure and Key Files

The Humanizer implementation relies on several critical files within the blader/humanizer repository:

  • SKILL.md – Contains the complete skill definition listing all 35 numbered AI patterns grouped into the three "S" families
  • README.md – Provides installation instructions, usage guidelines, and version history
  • .claude-plugin/plugin.json – Describes the Claude plugin configuration that enables agent integration
  • scripts/validate-package.py – Validation script that ensures consistency of version numbers and pattern tables across the repository

Summary

  • Humanizer detects 35 distinct AI writing patterns across three families: Content (S1), Language & Grammar (S2), and Style (S3).
  • S1 patterns target inflated claims, shallow analysis, and formulaic content structures.
  • S2 patterns identify overused AI vocabulary, forced rhetorical devices, and grammatical tells like excessive passive voice.
  • S3 patterns catch formatting quirks, chatbot mannerisms, and stylistic shortcuts common in LLM outputs.
  • The complete pattern enumeration is documented in SKILL.md within the blader/humanizer repository.
  • Implementation occurs through the Claude plugin system, allowing programmatic or prompt-based text humanization.

Frequently Asked Questions

What are the three "S" families in Humanizer?

The three "S" families represent Content patterns (S1), Language & Grammar patterns (S2), and Style patterns (S3). S1 detects structural tells in the text's substance, S2 identifies lexical and syntactic AI giveaways, and S3 catches formatting and tone-based machine markers. These families collectively cover all 35 patterns documented in SKILL.md.

How does Humanizer rewrite text without changing facts?

Humanizer preserves factual claims by distinguishing between content (what is said) and expression (how it is said). When the skill detects S1-S3 patterns, it removes the artificial stylistic markers while maintaining the underlying semantic assertions, ensuring historical dates, statistics, and concrete details remain accurate.

Where are the 35 AI writing patterns documented?

All 35 patterns are enumerated in SKILL.md at the root of the blader/humanizer repository. This file organizes the patterns into the three "S" families and provides the detection criteria used by the Claude plugin. The scripts/validate-package.py script ensures this documentation remains synchronized with the implementation.

How do I integrate Humanizer into my workflow?

You can integrate Humanizer by installing the Claude plugin configured in .claude-plugin/plugin.json, which loads the skill from SKILL.md. Invoke it programmatically using SkillRunner with the skill path, or prepend Humanizer instructions to Claude prompts to automatically process AI-generated text through the 35-pattern detection filter.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →