# How Humanizer Handles Emoji and Arrow Decorations in Headings (Pattern 20)

> Learn how Humanizer's Pattern 20 cleans headings by removing emoji and arrow decorations. Generate clean, sentence-case text for AI and documentation.

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

---

**Humanizer's Pattern 20 strips decorative elements—including emojis, arrows, and excessive capitalization—from headings to produce clean, sentence-case text suitable for AI training and documentation.**

The `blader/humanizer` repository provides a specialized skill for cleaning AI-generated content, with Pattern 20 specifically targeting visual noise in markdown headings. This pattern ensures that decorative flourishes added by editors or style guides do not interfere with the semantic clarity of training data. By enforcing sentence case and removing ornamental characters, Humanizer standardizes document structure according to the definitions in [`SKILL.md`](https://github.com/blader/humanizer/blob/main/SKILL.md).

## What Is Pattern 20 in Humanizer?

Pattern 20—formally labeled **Decorative headings**—defines the rules for sanitizing headings that contain non-essential visual markers. According to the source code in [`SKILL.md`](https://github.com/blader/humanizer/blob/main/SKILL.md) (lines 91-100), this pattern activates when headings meet specific criteria indicating automated formatting or editorial styling rather than plain content.

The pattern identifies four primary categories of decorative noise:

- **Excessive capitalization**: Headings using title-case (capitalizing every main word) instead of sentence case
- **Emoji prefixes**: Leading decorative emojis such as 🚀 or 💡
- **Arrow symbols**: Ornamental arrows like → used as bullet substitutes or prefixes  
- **Structural clutter**: Surrounding horizontal rules or duplicate document titles appearing as top-level headings

## How Humanizer Processes Decorative Headings

The transformation follows a deterministic three-step pipeline defined in the skill documentation. Each step targets specific artifacts while preserving the semantic meaning of the heading text.

### Step 1: Case Normalization

Humanizer first converts title-case headings to sentence case, capitalizing only the initial word and any proper nouns. This eliminates the visual weight of excessive capitalization that often accompanies decorative styling.

In [`SKILL.md`](https://github.com/blader/humanizer/blob/main/SKILL.md), this normalization ensures consistency with plain-text readability standards rather than editorial headline styles.

### Step 2: Decoration Removal

The system strips leading characters that serve purely visual functions. This includes:

- Unicode emoji characters (e.g., 🚀, 💡, ✅)
- Arrow symbols and directional indicators (e.g., →, ←, ⇒)
- Decorative punctuation used as ornamentation

The removal process focuses on prefix positions where these characters typically appear as visual anchors rather than integral content.

### Step 3: Rule Stripping

Finally, Humanizer removes surrounding horizontal rules (`---` or `***`) and eliminates instances where the document title repeats as a top-level heading. This step ensures that structural formatting does not obscure the actual content hierarchy.

## Practical Examples of Pattern 20 Transformation

The following examples demonstrate how Humanizer rewrites headings according to Pattern 20 rules. Each transformation preserves meaning while eliminating decorative noise.

**Emoji and arrow removal with case normalization:**

```markdown
<!-- Before -->
🚀 **Launch Phase:** The product launches in Q3
💡 **Key Insight:** Users prefer simplicity

<!-- After -->
The product launches in Q3. User research showed a preference for simplicity.

```

**Title-case to sentence-case conversion:**

```markdown
<!-- Before -->

## Strategic Negotiations And Global Partnerships

<!-- After -->

## Strategic negotiations and global partnerships

```

**Arrow prefix stripping:**

```markdown
<!-- Before -->
→ **Next Step:** Review the proposal

<!-- After -->
Next step: Review the proposal

```

## Source Files and Implementation Details

The Humanizer skill organizes its logic across three primary files in the repository root:

- **[`SKILL.md`](https://github.com/blader/humanizer/blob/main/SKILL.md)**: Contains the complete definition of Pattern 20 (lines 91-100) and all other AI-writing patterns. This file specifies the exact conditions and transformations for decorative heading removal.
- **[`README.md`](https://github.com/blader/humanizer/blob/main/README.md)**: Provides installation instructions, usage examples, and a summarized pattern index that references Pattern 20's functionality.
- **[`AGENTS.md`](https://github.com/blader/humanizer/blob/main/AGENTS.md)**: Describes how the skill is packaged for various agent frameworks, including metadata that links to the pattern definitions in [`SKILL.md`](https://github.com/blader/humanizer/blob/main/SKILL.md).

According to the repository structure, Pattern 20 operates as part of a declarative skill system where rules are documented in Markdown specifications rather than imperative code, allowing the pattern definitions to serve as both documentation and behavioral contracts.

## Summary

- Pattern 20 in Humanizer specifically targets **decorative headings** containing emojis, arrows, or excessive capitalization.
- The transformation process involves **three steps**: case normalization, decoration removal, and rule stripping.
- Source definitions reside in **[`SKILL.md`](https://github.com/blader/humanizer/blob/main/SKILL.md)** lines 91-100, with supporting documentation in [`README.md`](https://github.com/blader/humanizer/blob/main/README.md) and [`AGENTS.md`](https://github.com/blader/humanizer/blob/main/AGENTS.md).
- The pattern converts title-case to sentence-case and removes leading visual markers while preserving semantic content.
- Output is optimized for AI training datasets requiring clean, structurally consistent markdown.

## Frequently Asked Questions

### What triggers Pattern 20 in Humanizer?

Pattern 20 activates when a heading contains specific decorative indicators including title-case formatting, leading emojis (such as 🚀 or 💡), arrow symbols (→), surrounding horizontal rules, or duplicate document titles. The pattern definition in [`SKILL.md`](https://github.com/blader/humanizer/blob/main/SKILL.md) lines 91-100 enumerates these triggers explicitly.

### Does Pattern 20 remove all emojis or only leading ones?

Pattern 20 specifically targets **leading** emoji characters and arrow symbols that function as decorative prefixes. The normalization process focuses on ornamental elements at the start of headings rather than emojis that might appear within the content itself, though the primary emphasis is on prefix stripping for visual clarity.

### Where is Pattern 20 documented in the Humanizer repository?

Pattern 20 is formally defined in **[`SKILL.md`](https://github.com/blader/humanizer/blob/main/SKILL.md)** at lines 91-100 under the heading "### 20. Decorative headings". Additional context about how these patterns are integrated into agent workflows appears in [`AGENTS.md`](https://github.com/blader/humanizer/blob/main/AGENTS.md), while [`README.md`](https://github.com/blader/humanizer/blob/main/README.md) provides high-level usage instructions for the entire Humanizer skill set.

### Why convert headings to sentence case instead of title case?

Sentence case reduces visual noise and aligns with modern technical writing standards for AI training corpora. According to the `blader/humanizer` source, title-case often indicates editorial styling rather than semantic content, making sentence-case headings more suitable for plain-text processing and machine learning pipelines where consistent formatting improves tokenization accuracy.