What AI Tell Patterns Does Taste Skill Ban? The Complete Anti-Slop Reference

Taste Skill explicitly forbids over 30 recurring AI-generated design clichés—including em-dashes, Inter font, three-column equal card grids, and window.addEventListener('scroll')—to prevent "AI slop" in frontend interfaces.

Taste Skill is an "anti-slop" enforcement layer developed in the Leonxlnx/taste-skill repository that acts as a pre-flight check for AI-generated frontend code. Rather than suggesting improvements, it hard-bans specific visual, typographic, and interaction patterns that signal low-quality, templated output. These AI tell patterns are codified in skills/taste-skill/SKILL.md and enforced across the skill's entire pipeline.

Visual and Color AI Tell Bans

The skill treats certain color palettes and visual effects as immediate markers of AI-generated mediocrity.

Warm-beige, brass, and espresso palettes are banned as the default for premium-consumer briefs. According to SKILL.md section 9.2, this combination is recognized as the LLM default that makes every premium product look identical. Instead, designers must derive palettes from actual brand assets.

Neon colors and outer glows are prohibited for creating a "glitchy" look that screams AI artifact. The specification in section 9.A also bans pure black (#000000) and pure white (#ffffff), requiring off-black (e.g., zinc-950) and off-white to add visual depth.

Other banned visual patterns include:

  • Oversaturated accent colors that distract from neutral primaries
  • Excessive gradient text that looks cheap
  • Custom mouse cursors due to poor accessibility and performance

Typography and Text AI Tell Bans

Taste Skill maintains strict rules against type choices that dominate AI training data.

Inter as the default font is identified as the single most-tested AI tell in the repository's CHANGELOG.md and SKILL.md section 4.1. The skill prefers alternatives like Geist or Satoshi. Similarly, serif fonts as the default are "very discouraged" except in genuinely editorial or luxury contexts.

The em-dash (—) is completely banned in all contexts—headlines, eyebrows, body copy, and quotes—as documented in SKILL.md section 9.G. This punctuation mark is considered the biggest visual AI tell in text.

Layout and Structural AI Tell Bans

Structural clichés that create a "templated" feel are strictly prohibited.

Three equal feature cards in a row are banned under section 4.25 as overly generic; the skill requires asymmetric or varied grids. Split-header layouts (left headline plus right paragraph) are only allowed when justified, not as a default split-screen pattern.

Eyebrow overuse—defined as more than one eyebrow text element per three sections—is restricted because the eyebrow pattern is a signature AI tell. Section-number eyebrows like 001 · Capabilities or 00 / INDEX are explicitly banned per the CHANGELOG.md entry for version 3.7.

Other structural bans include:

  • Version labels in the hero (e.g., V0.6, BETA) except for explicit product-launch briefs
  • Decorative colored status dots on every list or badge when not conveying real state
  • Cross-hair or hairline grid lines used purely for decoration
  • Locale, city-name, time, or weather strips (agency-portfolio filler)
  • Scroll cues (Scroll, ↓ scroll, animated mouse-wheel icons)
  • Kinetic marquees (endless scrolling text bands)
  • Div-based fake screenshots built from HTML rectangles instead of real assets

Interaction and Motion AI Tell Bans

Performance-killing animation patterns common in AI output are forbidden.

Using window.addEventListener("scroll", …) causes jank and is banned in section 5.11. The skill requires Motion's useScroll or GSAP ScrollTrigger. Similarly, requestAnimationFrame loops that update React state are prohibited for triggering full re-renders on every frame.

Using useState for continuous values like mouse position or scroll progress is inefficient; Motion's useMotionValue must be used instead. Infinite-loop animations without reduced-motion fallback violate accessibility requirements under section 6.26 and must honor prefers-reduced-motion.

Content and Copy AI Tell Bans

Content generation shortcuts that signal AI hallucination are blocked.

Fake-precise numbers like 92% or 4.1× not derived from real data are forbidden unless explicitly labeled as mock data. Long raw lists with more than five items must be replaced with proper UI components like tabs, accordions, or cards rather than simple <ul> elements.

Placeholder spec tables featuring border-bottom rows simulating a datasheet are banned; the skill forces real visual representations using cards, pills, or grouped clusters.

Writing Compliant Code: Correct Patterns

To pass Taste Skill pre-flight checks, replace banned patterns with approved implementations from the repository.

Handling Scroll with Motion Instead of Window Events

Replace window.addEventListener('scroll') with Motion's optimized hooks:

'use client';
import { motion, useScroll, useTransform } from 'motion/react';

export function ParallaxHeader() {
  const { scrollY } = useScroll();
  const y = useTransform(scrollY, [0, 300], [0, -150]);

  return (
    <motion.div style={{ y }} className="h-[70vh] bg-hero">
      {/* hero content */}
    </motion.div>
  );
}

Source: skills/taste-skill/SKILL.md section 5.D

Avoiding the Three-Equal-Cards Pattern

Instead of identical columns, use varied card variants:

<div className="grid gap-8 md:grid-cols-2 lg:grid-cols-3">
  <Card variant="featured" />
  <Card variant="stacked" />
  <Card variant="wide" />
</div>

This satisfies the asymmetric grid requirement in section 4.25.

Eliminating the Em-Dash

Replace em-dashes with hyphens or restructured phrases:

<h2 className="text-2xl font-bold">
  Seamless integration - fast onboarding
</h2>

Using — (em-dash) in any text element violates section 9.G.

Using Approved Icon Libraries

Import from allowed families listed in section 3.C:

import { ArrowRight } from '@phosphor-icons/react';

export function LearnMore() {
  return (
    <a className="flex items-center gap-2">
      Learn More <ArrowRight weight="bold" />
    </a>
  );
}

Summary

Taste Skill enforces a hard ban on design patterns that signal low-quality AI generation across six categories:

  • Visual: No warm-beige premium palettes, pure black/white, neon glows, or custom cursors
  • Typography: No Inter font, default serifs, or em-dashes anywhere in the interface
  • Layout: No three-equal-card rows, split-header defaults, eyebrow overuse, or kinetic marquees
  • Motion: No window.addEventListener('scroll'), requestAnimationFrame state updates, or continuous values in useState
  • Content: No fake-precision statistics or raw long lists without component abstraction
  • Accessibility: No infinite animations without prefers-reduced-motion guards

Violations are detected via pre-flight checks in skills/output-skill/SKILL.md before code reaches production.

Frequently Asked Questions

What constitutes an "AI tell" in Taste Skill?

An AI tell is a recurring visual, structural, or interactive cliché that appears disproportionately in AI-generated frontend code, such as the em-dash in headlines or three identical feature cards in a row. These patterns are documented in skills/taste-skill/SKILL.md and treated as hard errors rather than warnings.

Why is the em-dash completely banned rather than just limited?

According to SKILL.md section 9.G, the em-dash is identified as the single biggest visual AI tell across generated text. Its use creates artificial pauses in headings and body copy that immediately signal templated content, so Taste Skill enforces a zero-tolerance policy across all text elements including quotes and testimonials.

Can I use a three-column layout if the cards contain different content?

No—three equal feature cards are banned regardless of content variation because the structural pattern itself is the AI tell. As documented in section 4.25, you must use asymmetric grids, varied card sizes, or different layout patterns (such as a featured card plus stacked variants) to pass the skill's layout checks.

How does Taste Skill prevent banned patterns from reaching production?

The skill operates as a pre-flight enforcement layer defined in skills/output-skill/SKILL.md. Before any code is finalized, it runs checks against the banned pattern list; if violations like window.addEventListener('scroll') or Inter font usage are detected, the generation fails and must be corrected, ensuring only "anti-slop" code is deployed.

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 →