# How to Manage the Eyebrow Restraint Rule in Taste Skill (Maximum 1 per 3 Sections)

> Master the eyebrow restraint rule in Taste Skill. Learn how to apply one uppercase eyebrow label per three sections to enhance AI layout clarity and rhythm. Avoid visual clutter effectively.

- Repository: [Leon Lin/taste-skill](https://github.com/Leonxlnx/taste-skill)
- Tags: how-to-guide
- Published: 2026-05-30

---

**The eyebrow restraint rule in Taste Skill limits you to one uppercase eyebrow label for every three sections, including the hero, to prevent visual clutter and mechanical rhythm in AI-generated layouts.**

The **eyebrow restraint** is a hard-coded stylistic constraint in the [Taste Skill](https://github.com/Leonxlnx/taste-skill) design system that governs how frequently small categorical labels may appear above section headlines. According to the source documentation in [`skills/taste-skill/SKILL.md`](https://github.com/Leonxlnx/taste-skill/blob/main/skills/taste-skill/SKILL.md), this rule enforces a maximum of one eyebrow per three sections to maintain clean visual hierarchy and avoid the templated appearance common in AI-generated sites.

## What Is the Eyebrow Restraint Rule?

An **eyebrow** is the small, uppercase, high-tracking label placed above a section headline, such as `**FOUR COLORWAYS**` or `**SELECTED WORK**`. The rule, defined at lines 253-255 in [`skills/taste-skill/SKILL.md`](https://github.com/Leonxlnx/taste-skill/blob/main/skills/taste-skill/SKILL.md), states: **Maximum 1 eyebrow per 3 sections. Hero counts as 1.**

This means:
- A page with nine sections can contain at most three eyebrows.
- After placing an eyebrow, the next two sections must not have one.
- The hero section automatically counts as your first eyebrow placement.

## Why the Restraint Matters

Unrestricted eyebrows create a uniform, templated rhythm that makes AI-generated sites feel mechanical. Enforcing the restraint encourages cleaner hierarchy, reduces visual noise, and forces careful consideration of which sections truly need categorical labels.

## How to Implement the Eyebrow Restraint Rule

### Plan the Section Structure

Before writing copy, identify which sections benefit from an eyebrow. Reserve eyebrows for major thematic breaks only.

### Count Sections as You Draft

After placing an eyebrow, mark the next two sections as "no-eyebrow" in your notes. This manual tracking ensures you maintain the 1-per-3 ratio throughout the document.

### Validate with a Script

Run a manual audit or use the following Python script to scan your Markdown for eyebrow patterns and verify compliance.

## Eyebrow Restraint Examples

Correct implementation:

```markdown
<!-- ✅ Correct: eyebrow used, then two sections without it -->

# HERO SECTION

**FOUR COLORWAYS**   <!-- eyebrow (section 1) -->

## Section 1 Headline

Content…

## Section 2 Headline

Content…

## Section 3 Headline

Content…

**SELECTED WORK**   <!-- eyebrow (section 4, after two non-eyebrow sections) -->

## Section 4 Headline

Content…

```

Incorrect implementation:

```markdown
<!-- ❌ Incorrect: three consecutive eyebrows (violates 1 per 3 rule) -->
**FOUR COLORWAYS**   <!-- eyebrow -->

## Section 1

**SELECTED WORK**   <!-- eyebrow – invalid, only two sections passed -->

## Section 2

**THE HARDWARE**    <!-- eyebrow – invalid -->

## Section 3

```

## Automated Validation Script

The following Python script checks [`skills/taste-skill/SKILL.md`](https://github.com/Leonxlnx/taste-skill/blob/main/skills/taste-skill/SKILL.md) for eyebrow restraint violations:

```python

# Simple validation script -------------------------------------------------

import re, pathlib

EYEBROW_RE = re.compile(r'^\*\*\s*[A-Z][A-Z\s\.\-]*\s*\*\*')
path = pathlib.Path('skills/taste-skill/SKILL.md')

def count_eyebrows():
    eyebrows = []
    for i, line in enumerate(path.read_text().splitlines(), 1):
        if EYEBROW_RE.search(line):
            eyebrows.append(i)
    return eyebrows

def validate():
    eb = count_eyebrows()
    # enforce max 1 eyebrow per 3 sections (hero counts as section 0)

    for i in range(len(eb) - 1):
        if eb[i+1] - eb[i] < 3:
            print(f'Violation: eyebrows at lines {eb[i]} and {eb[i+1]} are too close.')
            return False
    print('Eyebrow restraint satisfied.')
    return True

validate()

```

## When to Skip the Eyebrow

As noted at lines 245-246 in [`SKILL.md`](https://github.com/Leonxlnx/taste-skill/blob/main/SKILL.md), if an eyebrow feels optional, **drop it entirely**. The headline alone is sufficient, and the page layout already provides contextual grouping. Alternatively, use visual hierarchy such as spacing, dividers, or background contrast to separate sections without textual labels.

## Copy Self-Audit Requirement

Before shipping any content, perform the mandatory **COPY SELF-AUDIT** step referenced at line 321 in [`SKILL.md`](https://github.com/Leonxlnx/taste-skill/blob/main/SKILL.md). This audit includes verifying that your eyebrow count does not exceed the maximum density and that every visible string serves a clear purpose.

## Summary

- The eyebrow restraint allows **maximum one eyebrow per three sections** in Taste Skill Markdown files.
- The hero section counts as the first eyebrow in your calculation.
- Eyebrows are uppercase, high-tracking labels (e.g., `**FOUR COLORWAYS**`) that appear above headlines.
- Violations occur when eyebrows appear in consecutive sections or with fewer than two non-eyebrow sections between them.
- When in doubt, omit the eyebrow and rely on visual hierarchy instead.
- Always run the copy self-audit before finalizing content, as specified in [`skills/taste-skill/SKILL.md`](https://github.com/Leonxlnx/taste-skill/blob/main/skills/taste-skill/SKILL.md).

## Frequently Asked Questions

### What counts as an eyebrow in Taste Skill?

An eyebrow is a small, uppercase, high-tracking label placed above a section headline, typically formatted as bold uppercase text like `**FOUR COLORWAYS**` or `**SELECTED WORK**`. It serves as a categorical marker or section identifier.

### Does the hero section count toward the eyebrow limit?

Yes. According to the rule definition at lines 253-255 in [`skills/taste-skill/SKILL.md`](https://github.com/Leonxlnx/taste-skill/blob/main/skills/taste-skill/SKILL.md), the hero section counts as the first eyebrow. This means if your hero has an eyebrow, you must have two subsequent sections without eyebrows before using another one.

### How can I check if my document violates the eyebrow restraint?

You can manually count sections between eyebrows to ensure there are at least two non-eyebrow sections between each label, or run the Python validation script provided in the repository that scans for bold uppercase patterns and verifies spacing compliance.

### What should I do if I need more than one eyebrow in three sections?

The rule explicitly recommends dropping optional eyebrows. If a section feels like it needs a label but you've already used your quota for that block of three sections, remove the eyebrow and rely on the headline alone or adjust your spacing and visual hierarchy to create separation without the label.