M3 Anti-Slop Validator
Purpose
Enforce M3 Expressive aesthetic standards by detecting and preventing generic "AI slop" patterns: purple gradients, flat layouts, timid contrasts, and cookie-cutter designs. Provides automated validation with aesthetic quality scoring (0-100) and actionable remediation steps.
When to Use
Use this skill when you need to:
- Validate component aesthetics against M3 Expressive standards before deployment
- Detect generic AI patterns (Inter fonts, purple gradients, flat backgrounds)
- Score design quality with objective 0-100 aesthetic rating
- Generate remediation reports with specific improvement recommendations
- Prevent design system drift by catching slop before it ships
- Enforce expressive standards in CI/CD pipelines
- Audit existing components for M3 compliance
Trigger scenarios:
- "Is this component too generic?"
- "Validate this design against M3 Expressive standards"
- "Why does this feel like AI-generated slop?"
- "Score this component's aesthetic quality"
Overview
This skill enforces M3 Expressive aesthetic standards by:
- Detecting Generic Fonts - Flag Inter, Roboto, Arial, system fonts (unless paired with distinctive display fonts)
- Identifying Clichéd Colors - Detect purple gradients on white, timid palettes, boring color schemes
- Spotting Flat Layouts - Find solid backgrounds, lack of depth, no layering
- Flagging Predictable Patterns - Generic component arrangements, cookie-cutter designs
- Scoring Aesthetic Quality - Overall creativity and distinctiveness rating (0-100)
Core Validation Categories
1. Generic Fonts (Critical)
Forbidden Fonts (Without Distinctive Pairing):
- ❌ Inter, Roboto, Open Sans, Arial, Helvetica, Lato
- ❌ System fonts (-apple-system, BlinkMacSystemFont, etc.)
Detection:
Scans code for forbidden font families. If found alone (without distinctive display font), flags as critical violation.
Pass: Plus Jakarta Sans, Poppins, Montserrat, Sora, Crimson Pro
Fail: Inter alone, Roboto alone, system fonts
2. Clichéd Colors (Critical)
Forbidden Color Patterns:
- ❌ Purple gradient on white (#7C4DFF → #9C27B0 on #FFFFFF)
- ❌ Generic Material Blue (#2196F3, #1976D2)
- ❌ Timid palettes (all colors < 20% saturation)
- ❌ Evenly distributed colors (no dominant color)
Pass: Vibrant, personalized palettes (teal/coral, magenta/cyan)
Fail: Purple gradients, desaturated colors, no dominant color
3. Flat Layouts (Warning)
Forbidden Layout Patterns:
- ❌ Solid backgrounds (no gradients, no patterns)
- ❌ No elevation (all elements at same z-level)
- ❌ Uniform spacing (all gaps identical, no rhythm)
Pass: Layered gradients, elevation tokens, varied spacing
Fail: Flat solids, no depth effects, mechanical spacing
4. Predictable Patterns (Warning)
Forbidden Design Patterns:
- ❌ Monotone font pairing (Roboto display + Roboto body)
- ❌ Timid weight contrasts (400 vs 500, ratio < 1.5x)
- ❌ Timid size contrasts (24px vs 16px, ratio < 2x)
- ❌ No hover states (static components)
Pass: High-contrast pairings, extreme weights (100 vs 900), spring-physics hover
Fail: Same font family, timid contrasts, no interactions
Aesthetic Quality Score (0-100)
Scoring Algorithm:
- Typography (25 points): Font distinctiveness, weight contrast, size contrast
- Color (25 points): Palette vibrancy, saturation, dominance
- Layout (25 points): Depth effects, elevation, spacing rhythm
- Interaction (25 points): Hover states, animations, spring physics
Grade Scale:
- A (90-100): Exceptional - Strong M3 Expressive principles
- B (80-89): Good - Minor improvements possible
- C (70-79): Acceptable - Needs improvement
- D (60-69): Below standards - Review violations
- F (<60): Critical - Complete redesign recommended
Validation Report Format
{
"aestheticQuality": {
"total": 72,
"breakdown": {
"typography": 18,
"color": 20,
"layout": 15,
"interaction": 19
},
"grade": "C",
"recommendation": "Acceptable design. Focus on improving typography and color for more impact."
},
"violations": [
{
"category": "typography",
"pattern": "Generic font detected",
"severity": "critical",
"details": {
"fontFamily": "Inter, sans-serif",
"location": "Line 42",
"suggestion": "Replace 'Inter' with 'Plus Jakarta Sans Variable'."
}
}
],
"remediationSteps": ["1. Replace Inter with Plus Jakarta Sans Variable", "2. Use vibrant color palette: teal + coral + purple", "3. Add layered background gradients", "4. Apply elevation tokens for depth", "5. Add spring-physics hover effects"]
}
Usage
Basic Validation
# Validate aesthetic quality and detect AI slop
m3-anti-slop-validator \
--file frontend/src/components/ui/Card/Card.tsx \
--tokens design-system/tokens-expressive.json \
--report validation-report.json
Within Design Systems
// Run after M3 migrations to validate final output
const validation = await runSkill("m3-anti-slop-validator", {
code: finalCode,
tokens: tokensExpressive,
});
if (validation.aestheticQuality.total < 80) {
console.warn("⚠️ Low aesthetic quality score. Review violations.");
}
Validation Checklist
Troubleshooting
Issue: False Positive on Inter Font
Solution:
- Ensure distinctive display font is clearly defined in code
- Pair with Playfair Display, Crimson Pro, or similar high-contrast font
Issue: Low Color Score Despite Vibrant Palette
Solution:
- Check for dominant color (avoid evenly distributed colors)
- Ensure 40-80% saturation range
- Avoid generic Material Blue (#2196F3)
Issue: Layout Score Low Despite Using Elevation
Solution:
- Add layered backgrounds (gradients, patterns)
- Vary spacing scales (8px, 16px, 24px, 40px)
- Ensure visual hierarchy is clear
Related Skills
Version: 2.0.0 (Optimized)
Status: Production Ready
1---2name: m3-anti-slop-validator3description: Detect and prevent generic AI aesthetics (purple gradients, flat layouts, predictable patterns) in M3 components. Validates typography, colors, and layout against expressive design standards with 0-100 quality scoring.4---5
6# M3 Anti-Slop Validator
7
8## Purpose
9
10Enforce M3 Expressive aesthetic standards by detecting and preventing generic "AI slop" patterns: purple gradients, flat layouts, timid contrasts, and cookie-cutter designs. Provides automated validation with aesthetic quality scoring (0-100) and actionable remediation steps.
11
12## When to Use
13
14Use this skill when you need to:
15
16- **Validate component aesthetics** against M3 Expressive standards before deployment
17- **Detect generic AI patterns** (Inter fonts, purple gradients, flat backgrounds)
18- **Score design quality** with objective 0-100 aesthetic rating
19- **Generate remediation reports** with specific improvement recommendations
20- **Prevent design system drift** by catching slop before it ships
21- **Enforce expressive standards** in CI/CD pipelines
22- **Audit existing components** for M3 compliance
23
24**Trigger scenarios:**
25
26- "Is this component too generic?"
27- "Validate this design against M3 Expressive standards"
28- "Why does this feel like AI-generated slop?"
29- "Score this component's aesthetic quality"
30
31## Overview
32
33This skill enforces M3 Expressive aesthetic standards by:
34
351. **Detecting Generic Fonts** - Flag Inter, Roboto, Arial, system fonts (unless paired with distinctive display fonts)
362. **Identifying Clichéd Colors** - Detect purple gradients on white, timid palettes, boring color schemes
373. **Spotting Flat Layouts** - Find solid backgrounds, lack of depth, no layering
384. **Flagging Predictable Patterns** - Generic component arrangements, cookie-cutter designs
395. **Scoring Aesthetic Quality** - Overall creativity and distinctiveness rating (0-100)
40
41## Core Validation Categories
42
43### 1. Generic Fonts (Critical)
44
45**Forbidden Fonts (Without Distinctive Pairing):**
46
47- ❌ Inter, Roboto, Open Sans, Arial, Helvetica, Lato
48- ❌ System fonts (-apple-system, BlinkMacSystemFont, etc.)
49
50**Detection:**
51Scans code for forbidden font families. If found alone (without distinctive display font), flags as critical violation.
52
53**Pass:** Plus Jakarta Sans, Poppins, Montserrat, Sora, Crimson Pro
54**Fail:** Inter alone, Roboto alone, system fonts
55
56### 2. Clichéd Colors (Critical)
57
58**Forbidden Color Patterns:**
59
60- ❌ Purple gradient on white (#7C4DFF → #9C27B0 on #FFFFFF)
61- ❌ Generic Material Blue (#2196F3, #1976D2)
62- ❌ Timid palettes (all colors < 20% saturation)
63- ❌ Evenly distributed colors (no dominant color)
64
65**Pass:** Vibrant, personalized palettes (teal/coral, magenta/cyan)
66**Fail:** Purple gradients, desaturated colors, no dominant color
67
68### 3. Flat Layouts (Warning)
69
70**Forbidden Layout Patterns:**
71
72- ❌ Solid backgrounds (no gradients, no patterns)
73- ❌ No elevation (all elements at same z-level)
74- ❌ Uniform spacing (all gaps identical, no rhythm)
75
76**Pass:** Layered gradients, elevation tokens, varied spacing
77**Fail:** Flat solids, no depth effects, mechanical spacing
78
79### 4. Predictable Patterns (Warning)
80
81**Forbidden Design Patterns:**
82
83- ❌ Monotone font pairing (Roboto display + Roboto body)
84- ❌ Timid weight contrasts (400 vs 500, ratio < 1.5x)
85- ❌ Timid size contrasts (24px vs 16px, ratio < 2x)
86- ❌ No hover states (static components)
87
88**Pass:** High-contrast pairings, extreme weights (100 vs 900), spring-physics hover
89**Fail:** Same font family, timid contrasts, no interactions
90
91## Aesthetic Quality Score (0-100)
92
93**Scoring Algorithm:**
94
95- **Typography (25 points)**: Font distinctiveness, weight contrast, size contrast
96- **Color (25 points)**: Palette vibrancy, saturation, dominance
97- **Layout (25 points)**: Depth effects, elevation, spacing rhythm
98- **Interaction (25 points)**: Hover states, animations, spring physics
99
100**Grade Scale:**
101
102- **A (90-100)**: Exceptional - Strong M3 Expressive principles
103- **B (80-89)**: Good - Minor improvements possible
104- **C (70-79)**: Acceptable - Needs improvement
105- **D (60-69)**: Below standards - Review violations
106- **F (<60)**: Critical - Complete redesign recommended
107
108## Validation Report Format
109
110```json
111{
112 "aestheticQuality": {
113 "total": 72,
114 "breakdown": {
115 "typography": 18,
116 "color": 20,
117 "layout": 15,
118 "interaction": 19
119 },
120 "grade": "C",
121 "recommendation": "Acceptable design. Focus on improving typography and color for more impact."
122 },
123 "violations": [
124 {
125 "category": "typography",
126 "pattern": "Generic font detected",
127 "severity": "critical",
128 "details": {
129 "fontFamily": "Inter, sans-serif",
130 "location": "Line 42",
131 "suggestion": "Replace 'Inter' with 'Plus Jakarta Sans Variable'."
132 }
133 }
134 ],
135 "remediationSteps": ["1. Replace Inter with Plus Jakarta Sans Variable", "2. Use vibrant color palette: teal + coral + purple", "3. Add layered background gradients", "4. Apply elevation tokens for depth", "5. Add spring-physics hover effects"]
136}
137```
138
139## Usage
140
141### Basic Validation
142
143```bash
144# Validate aesthetic quality and detect AI slop
145m3-anti-slop-validator \
146 --file frontend/src/components/ui/Card/Card.tsx \
147 --tokens design-system/tokens-expressive.json \
148 --report validation-report.json
149```
150
151### Within Design Systems
152
153```javascript
154// Run after M3 migrations to validate final output
155const validation = await runSkill("m3-anti-slop-validator", {
156 code: finalCode,
157 tokens: tokensExpressive,
158});
159
160if (validation.aestheticQuality.total < 80) {
161 console.warn("⚠️ Low aesthetic quality score. Review violations.");
162}
163```
164
165## Validation Checklist
166
167- [ ] No forbidden fonts (Inter, Roboto, Arial) without distinctive pairing
168- [ ] No purple gradients on white backgrounds
169- [ ] Color saturation ≥ 30% (vibrant, not timid)
170- [ ] Dominant color palette (not evenly distributed)
171- [ ] Layered backgrounds (gradients, patterns, not flat solids)
172- [ ] Elevation tokens used for depth
173- [ ] Varied spacing rhythm (not uniform)
174- [ ] Weight contrast ≥ 3x (100 vs 900, not 400 vs 500)
175- [ ] Size contrast ≥ 3x (57px vs 12px, not 24px vs 16px)
176- [ ] Hover states with spring physics
177- [ ] Aesthetic quality score ≥ 80
178
179## Troubleshooting
180
181### Issue: False Positive on Inter Font
182
183**Solution:**
184
185- Ensure distinctive display font is clearly defined in code
186- Pair with Playfair Display, Crimson Pro, or similar high-contrast font
187
188### Issue: Low Color Score Despite Vibrant Palette
189
190**Solution:**
191
192- Check for dominant color (avoid evenly distributed colors)
193- Ensure 40-80% saturation range
194- Avoid generic Material Blue (#2196F3)
195
196### Issue: Layout Score Low Despite Using Elevation
197
198**Solution:**
199
200- Add layered backgrounds (gradients, patterns)
201- Vary spacing scales (8px, 16px, 24px, 40px)
202- Ensure visual hierarchy is clear
203
204## Related Skills
205
206- [m3-expressive-typography-enhancer](../m3-expressive-typography-enhancer/SKILL.md) - Enhance typography with variable fonts
207- [m3-atmospheric-backgrounds](../m3-atmospheric-backgrounds/SKILL.md) - Create layered atmospheric effects
208- [m3-spring-motion-choreography](../m3-spring-motion-choreography/SKILL.md) - Add spring-physics interactions
209
210---
211
212**Version:** 2.0.0 (Optimized)
213**Status:** Production Ready