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

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 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, 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, 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:

<!-- ✅ 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:

<!-- ❌ 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 for eyebrow restraint violations:


# 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, 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. 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.

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, 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.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →