Skip to content
🆕 New skill: Pstack Skill! Lauren Tan's rigorous engineering orchestrator — 23 playbooks, 21 procedures, and 21 principles in a single skill for any agent.View skill →

Slop Eval

Evaluate a design the way skill-evaluation evaluates a skill: every finding cites concrete evidence, every axis gets a 0–100 score, arithmetic runs through a script, and the output is a structured report — never a vibe check.

Based on The pols.dev anti-slop design law — the tell catalog, absolute rules, and signature formula are distilled from it.

  • Evaluate whether a design looks generic/AI-generated
  • Requests like “slop report”, “is this AI slop”, “audit this landing page design”, “de-slop review”
  • Objective score of how templated/machine-made a design looks
  • CI quality gate (block PR if Slop Index > threshold)
  • Before delivering design to client or publishing
  • Track design evolution over time (Tracking Mode)

For text (not design), use human-ai (EN) or humanizar (PT-BR).

Terminal window
npx skills add https://github.com/fabricioctelles/skills -s slop-eval

Per-section verdicts with tell density bands:

Verdict Tells Meaning
CLEAN 0–1 Ship as-is
SUSPICIOUS 2–3 Review before shipping
INFLATED 4–6 Redesign section
CRITICAL ≥7 or any crit Rebuild from scratch

Context-aware evaluation for 4 design types:

Context Priority Tells Tolerances
Landing Page L1, L2, S1, C1, K9, L4 K2, K14 (if real deadline), L9
SaaS Dashboard X1, X3, K6, K22, L3, L15 K1, K13, T4, K7 (if real UI)
Editorial T1, T2, T3, L7, W2, L10 C7, L5, K21, T6
E-commerce X3, X5, K23, W3, M8, L3 K14, K22, K17, L12

Formalized tags for documenting excluded tells:

Tag When to use
// BRIEF: Client/stakeholder explicitly directed
// DESIGN DECISION: Documented design decision with reasoning
// CONTEXT: Design context makes pattern acceptable
// PREMIUM PAIR: This is the premium version, not slop

Temporal evolution analysis with:

  • Score progression table with trends (✅/⚠️)
  • Tells resolved (what got fixed)
  • New tells (what got introduced)
  • Regressions (axes/sections that got worse)
  • Velocity metrics (tells resolved per week)
  • Recommendations for next iteration
Terminal window
# First evaluation — establishes baseline
slop-eval --target https://site.com --output ./reports/baseline.md
# Later evaluation — tracks evolution
slop-eval --target https://site.com --output ./reports/week-2.md \
--compare ./reports/baseline.md

Prescription-oriented guide for injecting personality into each axis — not just “remove tell X” but “replace with premium alternative Y”:

Axis Generic With soul
Color UI kit palette One unexpected color with a reason
Typography Inter/Space Grotesk A face with opinion (Gambarino, Reckless)
Components Lucide icons in tiles Bespoke icons in house style
Layout Centered hero stack Asymmetric composition
Motion Fade-in on scroll Authored micro-interaction

25+ checks across 6 phases:

  • Pre-sweep: evidence inventory, brief documented, context identified
  • During-sweep: cite-or-cut, premium pair checked, portability and defense tests
  • Exclusion: tags documented, genuine exclusions, reasonable count
  • Post-sweep: unverifiable checks marked, absolute rules, gates applied
  • Report: template followed, fixes ranked by impact
  • Self-audit: “What still looks like obvious slop that I didn’t flag?”
# Axis Weight Scored from
1 Color & Light 2x Tells C1–C15
2 Typography & Copy 2x Tells T1–T10, W1–W3
3 Components & Ornament 1x Tells K1–K27
4 Layout & Composition 2x Tells L1–L21
5 Motion & Interaction 1x Tells M1–M8
6 Execution & Craft 2x Tells X1–X14
7 Signature & Uniqueness 3x 7-element formula
8 Cohesion 2x 4 checks
Grade Overall Slop Index Verdict
A 80–100 0–20 Premium — deliberate, signed, executed
B 60–79 21–40 Considered — mostly deliberate
C 40–59 41–60 Generic — clean but templated
D 20–39 61–80 Slop — assembled from presets
F 0–19 81–100 Pure slop

Each is pass/fail — failure is a critical tell that triggers the gate:

  1. Content visible by default — nothing gated on entrance animation
  2. Clear the cut — no text/control sliced by clip, notch, or overflow
  3. Parallel alignment — comparable columns share baselines
  4. Real centering — everything meant to be centered is (math and optical)
  5. Legible contrast — every text clears its background by a real value gap
  6. Controls work — every interactive-looking control responds
Channel Can verify Cannot verify
Code (CSS/JSX/HTML) Fonts, hex values, gradients, shadows, radii, layout Optical centering, rendered contrast, interactions
Screenshot(s) Everything visual: palette, type, layout, alignment Hover/scroll motion, dead controls
Live URL All of the above plus interactions, motion, fold Only what you didn’t exercise
  • Signature gate: Axis 7 < 40 → caps overall at 59 (grade C max). Clean design with no signature is still slop.
  • Absolute-rule gate: any confirmed critical tell → caps overall at 69 (no grade A with broken execution).
  • Compounding cap: ≥3 major layout tells → caps Axis 4 at 40.
.github/workflows/slop-gate.yml
- name: Slop gate
run: |
python3 skills/slop-eval/scripts/score.py overall \
1:$A1:2 2:$A2:2 3:$A3:1 4:$A4:2 5:$A5:1 6:$A6:2 7:$A7:3 8:$A8:2 \
--fail-below 40

📄 Full documentation on GitHub