What Is the Hallmark Slop-Test for AI Aesthetic Detection? A Deep Dive into the 58-Gate Quality System

The Hallmark slop-test is a deterministic 58-gate quality audit that screens generated web pages for tell-tale signs of AI-produced "sloppiness," forcing a revision loop until every gate passes.

The slop-test sits at the heart of Hallmark, an open-source framework designed to eliminate AI-generated mediocrity from web design. This architectural guardrail ensures that no page ships until it clears a rigorous, rule-based inspection covering visual design, structure, typography, and accessibility. Understanding how this system works reveals a practical approach to AI aesthetic detection that goes beyond simple prompt engineering.

How the Slop-Test Fits Into the Hallmark Workflow

The slop-test executes at Step 7 of the Hallmark skill pipeline, positioned after the build renders HTML, CSS, and JavaScript, but before any output reaches users. According to [skills/hallmark/SKILL.md](https://github.com/Nutlope/hallmark/blob/main/skills/hallmark/SKILL.md#6), the sequence flows as:

  1. Pre-emit self-critique – Six-axis scoring (Philosophy, Hierarchy, Execution, Specificity, Restraint, Variety)
  2. Build – Render page with Hallmark's macro-structures, token system, and theme
  3. Slop-test (Step 7) – Run 58 binary gates against the rendered output
  4. Fix & re-emit – Auto-fix or prompt for clarification; loop until all gates pass

A single "yes" from any gate triggers immediate revision. The final output carries a concise stamp:

· contrast: pass (40–41) · nav: N6 · footer: Ft4 · slop: pass (42–45)

The 58 Gates: Categories and Examples

The complete gate list lives in [skills/hallmark/references/slop-test.md](https://github.com/Nutlope/hallmark/blob/main/skills/hallmark/references/slop-test.md). These gates divide into universal gates (apply to every genre) and genre-scoped gates (additional constraints for specific aesthetics like atmospheric or playful).

Visual Design Gates

  • Pure black/white prohibition – Flags #000 or #fff as amateurish defaults
  • Gradient text ban – Always forbidden regardless of genre
  • Radial-gradient backgrounds – Allowed only for atmospheric genre
  • Color purity limits – Saturation and luminance must reference design tokens

Structural Gates

  • Macro-structure reuse – Pattern repetition without intentional rhythm
  • Section cadence – Enforces deliberate pacing between content blocks
  • Left-margin label placement – Catches mechanical alignment patterns

Micro-Interaction Gates

  • transition-all prohibition – Forces specific, performant transitions
  • Hover scaling limits – Prevents excessive zoom effects
  • Animation easing – Requires custom curves, not default CSS ease
  • Focus-ring behavior – Mandates visible, consistent keyboard navigation

Typography Gates

  • Maximum three font families – Enforces typographic discipline
  • No italic headings – Reserved for body emphasis only
  • Outlier usage limits – Constraints on decorative type treatments

Form and Input Gates

  • Consistent border-width – Across all interactive elements
  • Focus-ring implementation – Visible state for accessibility
  • Matching input/button heights – Vertical rhythm alignment

Contrast and Accessibility Gates

  • APCA/WCAG ratios – Text and UI element legibility requirements
  • Color-blind safe combinations – Token-derived accessible palettes
  • Fingerprint checks – Detects default AI-generated nav patterns (hamburger menus without justification, generic link ordering)
  • Hero layout evaluation – Catches centered-text-over-gradient clichés

Content Integrity Gates

Token and Responsive Gates

  • Gate 48: Token discipline – Every color/font must reference a design token
  • No horizontal scroll – Forces overflow-x: clip where needed
  • No two-line clickable text – Touch target sizing
  • Proper grid tracks – Responsive layout integrity

Pre-Emit Self-Critique: The Six-Axis Scorecard

Before binary gates execute, Hallmark runs a qualitative assessment documented in [slop-test.md](https://github.com/Nutlope/hallmark/blob/main/skills/hallmark/references/slop-test.md#pre-emit-self-critique). The six axes are:

Axis Evaluates Failure Threshold
Philosophy Coherence of design intent Score < 3 triggers revision
Hierarchy Information architecture clarity Score < 3 triggers revision
Execution Technical craft quality Score < 3 triggers revision
Specificity Relevance to actual content Score < 3 triggers revision
Restraint Avoidance of gratuitous decoration Score < 3 triggers revision
Variety Appropriate pacing and contrast Score < 3 triggers revision

This score appears as a CSS comment parsed by the test runner:

/* Hallmark · pre‑emit critique: P5 H4 E5 S4 R5 V5 */

Implementation: Running the Slop-Test in Practice

CI Integration

The pseudo-code below illustrates how Hallmark's gate logic integrates into build validation:

import { runSlopTest } from './scripts/slop-test.js';

async function validateBuild(buildPath) {
  const result = await runSlopTest(buildPath);
  if (!result.passed) {
    console.error('Slop‑test failed:', result.failedGates);
    process.exit(1);
  }
  console.log('✅ All slop‑test gates passed');
}

The runSlopTest utility applies all 58 predicates to rendered HTML/CSS, returning a structured pass/fail result.

UI Display

As implemented in [site/js/main.js](https://github.com/Nutlope/hallmark/blob/main/site/js/main.js#L162-L170), the preview block surfaces test results to users:

proofC: "57 slop-test gates"

Rendered in the Step 5 preview:

<ul>
  <li>Theme: Cobalt</li>
  <li>Macrostructure: Manifesto</li>
  <li>Slop test: 57/57 ✓</li>
</ul>

Note: The UI displays "57 gates" while the actual implementation contains 58 gates—a minor discrepancy between interface copy and internal architecture.

Failure Modes and Auto-Remediation

When gates fail, Hallmark employs two strategies per [skills/hallmark/SKILL.md](https://github.com/Nutlope/hallmark/blob/main/skills/hallmark/SKILL.md#470):

  1. Auto-fix – Direct CSS/HTML modifications (e.g., injecting overflow-x: clip for responsive failures)
  2. User prompt – Clarification requests for content issues (e.g., replacing invented metrics with verified data)

The revision loop continues until the test returns a clean 57/57 ✓ or equivalent pass state.

Key Files for Understanding the Slop-Test

File Purpose
skills/hallmark/references/slop-test.md Complete 58-gate checklist and pre-emit critique specification
skills/hallmark/SKILL.md Workflow documentation, Step 7 placement, failure handling
skills/hallmark/references/anti-patterns.md Specific AI patterns mapped to gate violations
site/js/main.js UI implementation showing gate results
site/_tests/README.md Validation suite for gate enforcement

Summary

  • The Hallmark slop-test is a 58-gate deterministic audit for AI-generated web pages, running post-build and pre-ship
  • Gates cover visual, structural, interaction, typography, contrast, and accessibility dimensions with both universal and genre-scoped rules
  • Pre-emit self-critique provides qualitative scoring across six axes before binary gates execute
  • Single failure triggers revision—no partial passes allowed
  • Implementation spans /skills/hallmark/references/slop-test.md for gate definitions, /skills/hallmark/SKILL.md for workflow, and /site/js/main.js for UI display

Frequently Asked Questions

What does "slop" mean in the Hallmark context?

"Slop" refers to visual and structural mediocrity common in AI-generated designs—generic gradients, default easing functions, invented testimonials, pure black text on pure white backgrounds. The slop-test specifically targets these patterns through deterministic gates that enforce design discipline.

Why does the UI show 57 gates if there are actually 58?

The discrepancy reflects a labeling choice rather than functional difference. The [site/js/main.js](https://github.com/Nutlope/hallmark/blob/main/site/js/main.js#L162-L170) source hardcodes "57 slop-test gates" while the [slop-test.md](https://github.com/Nutlope/hallmark/blob/main/skills/hallmark/references/slop-test.md) specification enumerates 58 discrete checks. Both the UI and internal test pass when all gates clear.

Can the slop-test run independently of the Hallmark skill pipeline?

Yes—the gate logic is portable. The pseudo-code and CI examples demonstrate running runSlopTest() against any rendered HTML/CSS directory. While designed for Hallmark's token system and macro-structures, the predicate-based approach adapts to other design systems with gate customization.

How does Hallmark handle accessibility in the slop-test?

Accessibility gates enforce APCA and WCAG contrast ratios, focus-ring visibility, and keyboard navigation patterns. Gate failures for contrast or focus states trigger auto-fixes for CSS properties, while semantic issues may prompt user clarification. The token system ensures color combinations remain accessible across themes.

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 →