Why Em-Dashes Are Banned in taste-skill and How to Avoid Them
The taste-skill design system enforces a complete ban on em-dashes (—) in all user-facing content because they function as a primary "visual tell" identifying generic LLM-generated output while preventing Unicode rendering issues across browsers and localization pipelines.
The Leonxlnx/taste-skill repository encodes a rigorous visual-design policy that treats the em-dash as a prohibited typographic element. Any occurrence of this character in production builds triggers an immediate pre-flight failure, requiring developers to eliminate it from headlines, body copy, button labels, and alt-text before deployment.
Why taste-skill Considers Em-Dashes a "Signature Stylistic Crutch"
The LLM Visual Tell
According to the taste-skill source code in skills/taste-skill/SKILL.md (lines 649-699), the em-dash ranks as the #1 visual indicator that content was generated by a large language model rather than crafted by human designers. The character creates artificial pauses and decorative separators that make interfaces appear templated and low-quality. By enforcing a strict prohibition, taste-skill forces reliance on standard hyphens and approved typographic spacing, yielding cleaner, premium aesthetics.
Technical Hygiene and Encoding Stability
Beyond design consistency, the ban addresses practical rendering concerns. The em-dash is a Unicode character (U+2014) that frequently causes encoding problems across CSS-generated content, browser rendering engines, and localization pipelines. Restricting punctuation to the plain hyphen (-) ensures assets remain compatible with SVG generation, markdown processing, and international character sets without requiring complex escape sequences.
Scope of the Em-Dash Ban in taste-skill
The prohibition defined at line 687 of skills/taste-skill/SKILL.md applies to all user-visible text without exception. This includes:
- Headlines and eyebrows
- Pills and tags
- Body copy and quotes
- Attributions and captions
- Button labels
- Image alt-text
The validation logic also extends to dependent skills such as stitch-skill and soft-skill, which inherit the em-dash restrictions from the core taste-skill policy defined at line 920.
How to Replace Em-Dashes in taste-skill Projects
Use Standard Hyphens
Replace every instance of — with a regular hyphen (-). This applies to decorative separators, pause indicators, and compound modifiers.
Employ Alternative Emphasis Techniques
Rather than using em-dashes for dramatic pauses or emphasis, utilize bold, italic, or intentional whitespace within the same font family. Keep sentences concise and rely on native punctuation such as commas, periods, and colons to control rhythm.
Pre-Flight Validation
The taste-skill build pipeline includes an automated validator that scans generated markup for Unicode character U+2014. If detected, the build aborts immediately, prompting you to edit the source text before redeployment.
Code Examples: Correcting Em-Dash Violations
The following TypeScript/React examples demonstrate compliant replacements for common taste-skill components:
// ❌ Bad – contains an em‑dash (will cause pre‑flight failure)
<h1 className="text-4xl font-bold">
Design‑Driven — Fast, Elegant, Scalable
</h1>
// ✅ Good – uses a normal hyphen
<h1 className="text-4xl font-bold">
Design‑Driven – Fast, Elegant, Scalable
</h1>
// ❌ Bad – em‑dash inside button text
<button className="px-4 py-2 bg-primary text-white">
Learn More —
</button>
// ✅ Good – replace with hyphen or remove entirely
<button className="px-4 py-2 bg-primary text-white">
Learn More –
</button>
// ❌ Bad – em‑dash in alt text (violates the rule in images)
<img src="/hero.jpg" alt="A sleek product—crafted for performance" />
// ✅ Good – use hyphen or split the phrase
<img src="/hero.jpg" alt="A sleek product – crafted for performance" />
Summary
- Em-dashes are banned in taste-skill because they signal LLM-generated content and create encoding risks.
- The prohibition is enforced in
skills/taste-skill/SKILL.md(lines 649, 687, 699) and inherited by related skills likestitch-skill. - All user-visible text must exclude U+2014, including headlines, buttons, and alt-text.
- Replace em-dashes with standard hyphens (
-) and use bold or italic for emphasis. - The pre-flight validator automatically detects violations and aborts builds containing em-dashes.
Frequently Asked Questions
What happens if I use an em-dash in a taste-skill project?
The build pipeline's pre-flight validator detects the Unicode U+2014 character and aborts the deployment immediately. You must remove the em-dash and replace it with a hyphen or alternative punctuation before the build will succeed.
Can I use en-dashes or other special dashes instead?
No. The taste-skill policy specifically targets the em-dash (U+2014) as the primary "visual tell," but the design system standardizes on plain hyphens for all use cases to maintain consistency and avoid encoding complexity.
Why does taste-skill consider em-dashes an LLM indicator?
According to the source code at line 649 of skills/taste-skill/SKILL.md, em-dashes appear repetitively in generic LLM outputs as decorative separators or artificial pause markers, creating a templated appearance that contradicts taste-skill's premium design standards.
Does the em-dash ban apply to code comments or internal documentation?
The ban specifically targets user-visible text such as headlines, body copy, and button labels as defined at line 687. While the validator focuses on rendered markup, maintaining hyphen-only consistency across all project files aligns with taste-skill's technical hygiene principles.
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:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →