# What Are the Five Categories of Patterns Used by Humanizer?

> Discover the five core pattern categories Humanizer uses to transform AI text into natural prose: Content, Language, Style, Chatbot, and Filler. Learn more about these rules.

- Repository: [Siqi Chen/humanizer](https://github.com/blader/humanizer)
- Tags: explainer
- Published: 2026-09-06

---

**Humanizer organizes its AI-writing detection and rewrite rules into five distinct pattern categories—Content, Language and grammar, Style, Chatbot, and Filler and hedging—which are defined in the repository's [`SKILL.md`](https://github.com/blader/humanizer/blob/main/SKILL.md) file to guide the transformation of AI-generated text into natural prose.**

The blader/humanizer open-source project provides a structured framework for identifying and rewriting robotic text. Understanding the five categories of patterns used by Humanizer enables developers to predict how the tool processes content and to customize detection rules for specific use cases. These categories form the architectural foundation of the skill, separating concerns from high-level meaning down to micro-level linguistic details.

## Content Patterns

**Content patterns** target the substantive meaning of a passage. According to the source code in [`SKILL.md`](https://github.com/blader/humanizer/blob/main/SKILL.md), this category includes **Content pattern #1** (inflated claims), name-dropping, shallow "-ing" analysis, sales-y language, vague source citations, and formulaic "challenges/outlook" sections.

### Common Content Issues Detected

- Unsubstantiated superlatives like "revolutionary" or "unparalleled"
- Generic expert references without named sources
- Template-based closing paragraphs that add no value

## Language and Grammar Patterns

**Language and grammar patterns** address micro-level linguistic quirks that signal AI authorship. As implemented in blader/humanizer, these rules detect overused AI words, avoidance of simple verbs such as *is/are*, "not X but Y" constructions, forced triads, name repetition, false ranges, and passive-voice constructions.

### Specific Linguistic Markers

The source code identifies **Language pattern #8** (avoid "is/are") as a key indicator, along with:
- Mechanical "not just X but Y" structures
- Unnecessary passive voice where active voice suffices
- Overly complex verb phrases

## Style Patterns

**Style patterns** govern presentation-level conventions that make text feel templated. Defined under the `## Style patterns` heading in [`SKILL.md`](https://github.com/blader/humanizer/blob/main/SKILL.md), these rules target dash usage, excessive bolding, bold mini-headings, title-case headings, emojis, and curly quotation marks.

## Chatbot Patterns

**Chatbot patterns** identify artifacts specific to conversational AI interfaces. This category captures leftover chatbot greetings or offers, knowledge-cutoff disclaimers, and overly agreeable tones that reveal the text originated from an interactive assistant rather than human composition.

## Filler and Hedging Patterns

**Filler and hedging patterns** eliminate redundant phrasing that adds noise without meaning. The final category covers filler phrases, excessive qualifiers, generic optimistic endings, over-hyphenated word pairs, pseudo-candid openings, unsolicited objections, and fake alternatives.

## Implementation in the Source Code

The five categories are architecturally separated to enable a consistent rewrite workflow. As structured in the blader/humanizer repository, the skill first flags content-level issues, then refines language, scrubs chatbot remnants, adjusts style conventions, and finally removes filler.

### Key Files Defining the Categories

- **[`SKILL.md`](https://github.com/blader/humanizer/blob/main/SKILL.md)**: Contains the complete pattern definitions using five top-level headings (`## Content patterns`, `## Language and grammar patterns`, `## Style patterns`, `## Chatbot patterns`, `## Filler and hedging`). This file serves as the primary knowledge base that agents read.

- **[`README.md`](https://github.com/blader/humanizer/blob/main/README.md)**: Provides installation instructions and mirrors the five categories in its documentation table.
- **[`.claude-plugin/plugin.json`](https://github.com/blader/humanizer/blob/main/.claude-plugin/plugin.json)**: Points Claude agents to [`SKILL.md`](https://github.com/blader/humanizer/blob/main/SKILL.md), enabling the skill to work with any agent supporting the Claude plugin format.
- **[`scripts/validate-package.py`](https://github.com/blader/humanizer/blob/main/scripts/validate-package.py)**: Validates that the category definitions in [`SKILL.md`](https://github.com/blader/humanizer/blob/main/SKILL.md) remain synchronized with the [`README.md`](https://github.com/blader/humanizer/blob/main/README.md) and plugin metadata, preventing documentation drift.

### Category Application Example

When invoking Humanizer through the Claude plugin, the system applies specific patterns from these categories to analyze and rewrite text:

```yaml

# Example: Input triggering Content and Language patterns

- role: user
  content: |
    The new platform boasts a revolutionary architecture, offering unparalleled scalability. 
    Experts believe it will change the industry forever.

# Humanizer output after applying rewrite rules

- role: assistant
  content: |
    The platform offers a modern architecture that improves scalability. 
    Researchers have studied its impact on the industry.

```

In this example, the original text triggered **Content pattern #1** (inflated claims) and **Language pattern #8** (avoid "is/are"), prompting the rewrite to remove superlatives and simplify verb structures.

## Summary

- Humanizer organizes detection rules into **five pattern categories**: Content, Language and grammar, Style, Chatbot, and Filler and hedging.
- Each category targets a specific layer of text, from substantive meaning in [`SKILL.md`](https://github.com/blader/humanizer/blob/main/SKILL.md) to micro-syntax in Language patterns.
- The repository uses [`SKILL.md`](https://github.com/blader/humanizer/blob/main/SKILL.md) as the source of truth, with [`.claude-plugin/plugin.json`](https://github.com/blader/humanizer/blob/main/.claude-plugin/plugin.json) and [`README.md`](https://github.com/blader/humanizer/blob/main/README.md) providing integration and documentation layers.
- The [`scripts/validate-package.py`](https://github.com/blader/humanizer/blob/main/scripts/validate-package.py) file ensures category consistency across the codebase.
- The rewrite workflow processes categories hierarchically, starting with content-level issues before refining language and removing filler.

## Frequently Asked Questions

### What file contains the five pattern categories in Humanizer?

The [`SKILL.md`](https://github.com/blader/humanizer/blob/main/SKILL.md) file at the repository root contains the five pattern categories. It organizes them under distinct H2 headings: `## Content patterns`, `## Language and grammar patterns`, `## Style patterns`, `## Chatbot patterns`, and `## Filler and hedging`.

### How does Humanizer prioritize the five pattern categories during rewriting?

According to the blader/humanizer source code, the skill applies a consistent rewrite workflow that first flags content-level issues, then refines language and grammar, scrubs chatbot-specific artifacts, adjusts style conventions, and finally removes filler and hedging. This hierarchical approach ensures high-level meaning is corrected before micro-level polish.

### Can I customize the five pattern categories in Humanizer?

Yes, developers can modify the rules within each category by editing the [`SKILL.md`](https://github.com/blader/humanizer/blob/main/SKILL.md) file. The [`scripts/validate-package.py`](https://github.com/blader/humanizer/blob/main/scripts/validate-package.py) validation script ensures that any changes to the category structure remain synchronized with the [`README.md`](https://github.com/blader/humanizer/blob/main/README.md) and plugin metadata, preventing documentation drift.

### What is the difference between Content patterns and Language patterns in Humanizer?

**Content patterns** target the substantive meaning of a passage—such as inflated claims, name-dropping, and vague citations—while **Language and grammar patterns** address micro-level linguistic quirks like passive voice, forced triads, and avoidance of simple verbs like *is/are*. Content patterns ensure factual accuracy and authentic sourcing, whereas Language patterns ensure natural syntax.