# How Humanizer Processes Lists with Bold Mini‑Headings (Pattern I6): A Complete Guide

> Learn how Humanizer handles lists with bold mini-headings Pattern I6. Discover how it removes bold markup and transforms lists into natural prose for better readability.

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

---

**Humanizer treats bold mini‑headings in lists as decorative formatting, removing the bold markup and often collapsing the list into natural prose when the labels add no semantic value.**

In the `blader/humanizer` repository, **Pattern I6 – "Bold as decoration"** defines how the system handles lists where each item begins with a bold label. This pattern ensures that mechanically formatted lists are transformed into human‑readable paragraphs without losing essential information.

## What Pattern I6 Detects

Pattern I6 specifically targets vertical or bulleted lists where every entry starts with a bold fragment such as `**Label:**`. The pattern operates on the principle that bold styling used purely for visual emphasis—rather than to convey meaning—should be eliminated in natural‑language output.

According to the implementation in [[`SKILL.md`](https://github.com/blader/humanizer/blob/main/SKILL.md)](https://github.com/blader/humanizer/blob/main/SKILL.md#L77-L89), the rule applies when:

- List items contain leading bold text (e.g., `**User Experience:**` or `**Feature A**`)
- The bold portion functions as a mini‑heading rather than integral content
- Removing the bold does not alter the factual meaning of the statement

## The Four‑Step Processing Pipeline

Humanizer transforms bold mini‑heading lists through a structured pipeline:

1. **Detection** – Scan list items for `**...**` patterns at the start of each entry
2. **Stripping** – Remove `**` markers while preserving the underlying text
3. **Semantic evaluation** – Determine whether the label text carries necessary information or serves only as decoration
4. **Rewriting** – Either merge items into flowing prose or retain labels as plain text, depending on semantic weight

## Code Examples: Before and After

### Example 1: Purely Decorative Labels

```markdown
- **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.

```

**Humanizer output:**

```markdown
The update improves the interface, speeds up load times through optimized algorithms, and adds end-to-end encryption.

```

Notice how the decorative labels (`User Experience`, `Performance`, `Security`) are absorbed into the sentence structure rather than preserved as explicit markers.

### Example 2: Feature List with Redundant Headings

```markdown
- **Feature A:** Adds automatic backups.
- **Feature B:** Enables real-time collaboration.
- **Feature C:** Provides customizable themes.

```

**Humanizer output:**

```markdown
The release adds automatic backups, enables real-time collaboration, and provides customizable themes.

```

The sequential labels (`Feature A`, `Feature B`, `Feature C`) provide no independent meaning, so Humanizer discards them entirely in favor of direct statement.

### Example 3: Semantically Weighted Labels

When bold labels carry essential information, the styling is removed but the text is preserved:

```markdown
- **REST API:** Supports up to 10,000 requests per second.
- **GraphQL endpoint:** Handles complex nested queries with built-in caching.

```

**Humanizer output:**

```markdown
The REST API supports up to 10,000 requests per second, while the GraphQL endpoint handles complex nested queries with built-in caching.

```

Here, `REST API` and `GraphQL endpoint` are retained as plain text because they distinguish between two distinct technical components.

## Where Pattern I6 Is Defined

The complete specification for this transformation lives in two primary locations:

- **[`SKILL.md`](https://github.com/blader/humanizer/blob/main/SKILL.md)** (lines 77‑89) – Contains the formal rule definition, detection criteria, and rewrite logic for bold‑as‑decoration scenarios
- **[`README.md`](https://github.com/blader/humanizer/blob/main/README.md)** – Provides higher‑level usage guidance and cross‑references Pattern I6 in the complete pattern index

Both files treat Pattern I6 as part of the broader "Inflation" or decoration‑removal category, alongside other formatting‑cleanup rules.

## When Humanizer Keeps vs. Removes Labels

| Scenario | Action | Rationale |
|----------|--------|-----------|
| Label is generic category (`User Experience`, `Benefits`) | Remove entirely | Adds no specific information |
| Label is sequential placeholder (`Item 1`, `Point A`) | Remove entirely | Mechanical numbering is non‑semantic |
| Label identifies distinct entity (`REST API`, `PostgreSQL`) | Keep as plain text | Required for accurate reference |
| Label includes critical qualifier (`Required`, `Optional`) | Keep as plain text | Alters meaning if omitted |

## Edge Cases and Limitations

Humanizer's Pattern I6 implementation makes several deliberate trade‑offs:

- **Mixed formatting**: Lists combining bold labels with inline bold for emphasis may require multiple passes
- **Nested structures**: Sublists with their own bold mini‑headings are processed recursively
- **Length thresholds**: Very long labels (exceeding ~5 words) are treated as content rather than decoration regardless of bold styling

These constraints are documented implicitly through the pattern's heuristics in [[`SKILL.md`](https://github.com/blader/humanizer/blob/main/SKILL.md)](https://github.com/blader/humanizer/blob/main/SKILL.md#L77-L89).

## Summary

- **Pattern I6** removes bold markup from list item prefixes, treating such styling as decorative inflation
- The system evaluates whether label text carries semantic weight before deciding to preserve or discard it
- Decorative labels are absorbed into flowing prose; meaningful labels transition to plain text
- Rule specification resides in **[`SKILL.md`](https://github.com/blader/humanizer/blob/main/SKILL.md)** lines 77‑89, with usage context in **[`README.md`](https://github.com/blader/humanizer/blob/main/README.md)**

## Frequently Asked Questions

### What happens if only some list items have bold mini‑headings?

Humanizer applies Pattern I6 to the subset of items matching the bold‑prefix pattern. Mixed lists may be partially transformed, with bold‑styled items processed according to the decoration‑removal logic while plain items pass through unchanged. The system does not require uniformity across all list entries to trigger the pattern.

### Can Pattern I6 be disabled for specific document types?

The current `blader/humanizer` implementation does not expose per‑pattern toggles. Pattern I6 executes as part of the standard skill pipeline. To preserve bold mini‑headings, you would need to restructure the input—moving bold labels inline with content rather than prefixing list items—or fork the skill definition in [`SKILL.md`](https://github.com/blader/humanizer/blob/main/SKILL.md).

### How does Pattern I6 relate to Pattern 19 in newer SKILL versions?

Pattern I6 (Roman numeral I, subpattern 6) and **Pattern 19 – "Bold as decoration"** describe identical behavior. The numbering changed between SKILL revisions, consolidating decoration‑removal rules under a single enumeration scheme. Both references point to the same transformation logic found in [`SKILL.md`](https://github.com/blader/humanizer/blob/main/SKILL.md).

### Does Humanizer ever add bold formatting rather than removing it?

No. Pattern I6 and related formatting rules are strictly **retractive**—they eliminate machine‑oriented styling to produce human‑oriented prose. The philosophy underlying `blader/humanizer` treats added formatting (bolding, bullet points, numbered lists) as "inflation" to be removed, not as elements to introduce.