Hallmark: A Design Skill That Shuts Down the AI-Slop Defaults in Generated Pages
Unconstrained coding assistants produce a recognizably flat default look on every page; Hallmark replaces subjective "design taste" with machine-checkable gates, so teams can fail a build in CI or an editor hook on an eyebrow label or a fake form instead of eyeballing each output.
Hallmark exists to make assistant-generated pages stop looking generated. Instead of nudging models with fancier prompts, it writes the telltale signs of "AI slop" into rules — eyebrow kickers above headings, letterspaced uppercase labels, one gradient word in a title, card-inside-card layouts, a mail-capture box on every page, submit buttons that do nothing — and then checks them with tooling. The build flow starts with a preflight that reads the project's fonts, palette, and locked design.md, then deals three of 48 material themes while a log prevents consecutive builds from converging. Only the hero is built first; after a fresh-context subagent reviews it, the rest of the page follows.
The checker is sloplint, a zero-dependency script that renders pages in a real browser and measures above-the-fold fit, contrast, focus rings, section rhythm, and whether text collides with edges. Gates are tiered into Floor (never waivable), Reflex (waivable with a recorded reason), and Finish (advisory). A separate fresh-context reviewer, whose criteria the builder never sees, gives a final ship or rebuild verdict. For existing pages, `/hallmark redesign` records every link and form field before touching anything, then fails the rebuild if any of them disappears. Photos come from a 755-image Wikimedia Commons library, credited on the page, and fabricated numbers, testimonials, and logos are banned outright.
Turning aesthetic judgment into a numbered, machine-checkable gate list means the author is betting that "AI flavor" has stable fingerprints, and the roadmap shows those fingerprints drift — cream paper and pill buttons already read as generated.
The waiver ledger turns a design dispute into an auditable record: you can disagree with a rule, but the exception is logged with protecting evidence, and three repeat waivers are pushed back as "your house style."
The redesign failure-on-loss rule is a meaningful safety precept for any agent-driven refactor: record the whole old state before rewriting, and treat any drop as a failed outcome.
The subagent reviewer working in a fresh context, with the builder barred from seeing the review criteria, is a deliberate guard against the model gaming its own grader.
The rule forbidding `transition: all` in Floor is harsh, but rightly so. Models default to writing `transition: all .3s`, animating width and height together, causing layout jitter that's hard to debug. The fake form rule is also practical: clicking submit only shows a thank-you, the request never actually fires — that's really common in landing pages. Rules divided into Floor / Reflex / Finish are more reliable than just telling the prompt to 'make it design-savvy'.