# Humanizer "Too Much Bold Text" Rule (Pattern 15): A Complete Guide to Removing Decorative Bold Formatting

> Learn Humanizer's Pattern 15 Too Much Bold Text rule. Discover how it removes decorative bold formatting for cleaner text while keeping essential bold in code blocks.

- Repository: [Siqi Chen/humanizer](https://github.com/blader/humanizer)
- Tags: how-to-guide
- Published: 2026-09-07

---

**Humanizer's Pattern 15 flags excessive bold formatting as "Bold as decoration" and automatically strips markup from words or labels that lack functional meaning, converting labeled lists to plain prose while preserving bold inside code blocks.**

The "Too much bold text" rule—formally documented as **Pattern 19 ("Bold as decoration")** in the Humanizer source code—targets a common readability anti-pattern: using bold text purely for visual emphasis rather than semantic purpose. This guide explains exactly how the rule works, what triggers it, and how to apply it correctly using the Humanizer library.

## What Triggers the "Too Much Bold Text" Rule

According to the Humanizer codebase in [`SKILL.md`](https://github.com/blader/humanizer/blob/main/SKILL.md) (lines 77-80), the rule activates in two specific scenarios:

- **Inline decorative bold** — Multiple bold phrases in close proximity where bold serves no navigational or semantic function
- **Labeled list abuse** — Lists where each item consists only of a bold heading followed by a colon and description

The core principle: **bold must add meaning, not merely decoration**.

## How the Rule Works in Practice

### Inline Bold Removal

When Humanizer detects consecutive bold phrases that don't aid scanning or navigation, it removes all `**` wrappers and rewrites the sentence.

```python
from humanizer import Humanizer

h = Humanizer()

text = """It blends **OKRs (Objectives and Key Results)**, **KPIs (Key Performance Indicators)**, and visual strategy tools such as the **Business Model Canvas (BMC)** and **Balanced Scorecard (BSC)**."""

print(h.apply(text))

# Output: It blends OKRs (Objectives and Key Results), KPIs (Key Performance Indicators), and visual strategy tools such as the Business Model Canvas (BMC) and Balanced Scorecard (BSC).

```

### Labeled List to Prose Conversion

Bold-heavy lists with colon-separated labels get flattened into flowing sentences.

```python
from humanizer import Humanizer

h = Humanizer()

text = """
- **User Experience:** The user experience has been significantly improved with a new interface.
- **Performance:** Performance has been enhanced through optimized algorithms.
- **Security:** Security has been strengthened with end-to-end encryption.
"""

print(h.apply(text))

# Output: The user experience has been significantly improved with a new interface, performance has been enhanced through optimized algorithms, and security has been strengthened with end-to-end encryption.

```

## Critical Exception: Code Blocks Are Preserved

The "Too much bold text" rule **never** modifies bold formatting inside:

- Fenced code blocks (```` ``` ````)
- Inline code spans (`` ` ``)
- Command-line snippets
- File paths or URLs

This preservation ensures that syntax highlighting and intentional emphasis in technical content remain intact.

## Source Files Defining Pattern 15/19

| File | Purpose | Location |
|------|---------|----------|
| [`SKILL.md`](https://github.com/blader/humanizer/blob/main/SKILL.md) | Rule definition for "Bold as decoration" | Lines 77-80 |
| [`README.md`](https://github.com/blader/humanizer/blob/main/README.md) | Integration and versioning context | Root directory |
| [`agents/openai.yaml`](https://github.com/blader/humanizer/blob/main/agents/openai.yaml) | Agent-specific prompt packaging | `agents/` subdirectory |

The canonical definition resides in [`SKILL.md`](https://github.com/blader/humanizer/blob/main/SKILL.md) under the heading `### 19. Bold as decoration`, which establishes the enforcement logic that the Humanizer engine applies via its `apply()` method.

## Implementation in Agent Configurations

The rule is packaged for different LLM backends through configuration files. In [`agents/openai.yaml`](https://github.com/blader/humanizer/blob/main/agents/openai.yaml), Pattern 19 is embedded in the default system prompt, ensuring consistent behavior across OpenAI-compatible endpoints without requiring per-request parameters.

## Summary

- **Pattern 15/19** targets bold used purely for visual decoration, not semantic emphasis
- **Remediation** removes `**` markup and rewrites labeled lists as prose sentences
- **Preservation** keeps bold intact inside code blocks, inline code, paths, and URLs
- **Entry point** is `Humanizer.apply(text)` as implemented in the core library
- **Authority** rests in [`SKILL.md`](https://github.com/blader/humanizer/blob/main/SKILL.md) lines 77-80 of the blader/humanizer repository

## Frequently Asked Questions

### What is the difference between Pattern 15 and Pattern 19 in Humanizer?

**Pattern 15 and Pattern 19 refer to the same rule.** The raw analysis uses "Pattern 15" colloquially while the authoritative source in [`SKILL.md`](https://github.com/blader/humanizer/blob/main/SKILL.md) labels it "Pattern 19" under the section "### 19. Bold as decoration." The discrepancy appears to be a numbering convention difference between internal references and the documented schema.

### Does Humanizer remove all bold formatting automatically?

No. Humanizer only removes bold when it determines the formatting serves **no functional purpose**. Bold that aids navigation, distinguishes technical terms in running text, or appears inside code contexts remains untouched. The `apply()` method evaluates semantic necessity before stripping markup.

### How can I preserve specific bold text that Humanizer incorrectly flags?

The current implementation in [`SKILL.md`](https://github.com/blader/humanizer/blob/main/SKILL.md) does not expose granular override parameters. To preserve specific bold phrases, wrap them in inline code backticks (`` `**term**` ``) or place them within fenced code blocks—both contexts are explicitly excluded from Pattern 19 processing according to the rule specification.