AHD · Positioning
What AHD is.
AHD is a guardrail and evaluation layer for AI-generated design. Web UI, graphic design, illustration, image generation. It is not a generator itself; it sits beside any generator and measures whether the output exhibits the specific, repeated failure modes that mark AI-generated design as AI-generated.
Four pieces, one purpose
-
A named taxonomy of AI design slop.
Thirty-nine concrete tells across web, graphic and typographic surfaces. Enforced today by thirty-five HTML and CSS rules, three SVG rules, and fourteen vision-critic rules on rendered pixels. The rule count is higher than the taxonomy count because several entries are covered by more than one rule.
-
Style tokens as promptable design direction.
Ten curated bundles spanning web, editorial, identity, illustration and image-generation surfaces. Each declares grid or composition, type, palette, forbidden list, required quirks, reference lineage and per-model prompt fragments.
-
A brief compiler.
Turns a structured intent into constrained model instructions for any surface, with a final mode for single-shot output and a draft mode for human-in-the-loop exploration.
-
An empirical eval loop.
A controlled raw-vs-compiled comparison across any set of text or image generators, scored against the taxonomy, with attempted-vs-scored counts, canonical model identifiers, per-model deltas and per-tell frequency. Vision critique on rendered pixels via a multimodal critic.
What AHD is not
Not a prompt pack. Prompt packs sell style recipes. AHD's value is the repeatable scoring that tells you whether any recipe, ours or yours, actually changes what a given model produces by default.
Not a canvas product. Galileo, v0, Lovable, Bolt, Magic Patterns, Subframe optimise "prompt to shipped UI." Midjourney, Krea, Lovart optimise "prompt to image." AHD sits beside any of them as an enforcement layer.
Not a design system. Design systems prescribe components. AHD prescribes the thirty-nine patterns a page or image must not exhibit, and measures compliance.
What makes this hard to copy
What is hard to copy here is not the prompts. It is the taxonomy and the scoring that goes with it. Anyone can rewrite a prompt. A named, versioned taxonomy, enforced by rules that give the same answer every time, gets more useful the longer it is used. Anyone can fork a style token. Publishing every attempted count, every extraction failure, the exact model identifiers, the confidence intervals and the runs where AHD lost takes a discipline a fork does not inherit.
Prior art
Pieces of AHD exist in the wild. This combination does not.
Prompt libraries for AI UI generation (uiprompt.io, Promter, GenDesigns, WebGardens) encode style direction; they do not carry a taxonomy or an eval.
Design-token linters (@lapidist/design-lint, stylelint-design-tokens-plugin) enforce token consistency in source. AHD's rules target AI-generated anti-patterns, not adherence to an internal design system.
Figma-era audit tools (DesignLint AI) audit design files against token rules. AHD audits rendered output and source, not design files.
AI UI benchmarks (UI Bench) score generated HTML on engineering quality: axe, Lighthouse, semantics. AHD rates a page's slop fingerprint under a paired raw-vs-compiled control.
What nobody else bundles: a named AI-slop taxonomy spanning web and image, a token-driven brief compiler, a deterministic linter for source-checkable tells, a vision critic for rendered tells, and a raw-vs-compiled empirical eval loop, all in one reproducible project.
What we promise and what we don't
We promise an honest, versioned taxonomy spanning web, graphic and illustration. We promise a deterministic source-level linter covering every taxonomy entry that can be decided from code. We promise a vision-critic pipeline that works on any rendered image. We promise an eval harness that publishes attempted, extracted and scored counts, canonical model identifiers, and per-model deltas including negative results.
We do not promise the compiled brief beats the raw brief for every model. It does not. The published runs record Claude Opus 4.7 cutting tells by 59 percent at n=30, Qwen 2.5 Coder unmoved, Llama 3.3 70B regressing under the compiled prompt and SDXL Lightning ignoring the image negative entirely. The framework reports these differences instead of hiding them.
We do not promise aesthetic judgement. The linter catches tells, not taste. A page or image can pass every rule and still be bad design. AHD narrows the output; a human still picks.
Shelf life
AHD rests on a premise with an expiry date: that AI generators fall back on a set of named failure modes. Two or three years from now, the best models may produce credible swiss-editorial output with no compiled prompt in front of them. At that point the claim that compiled beats raw weakens against those models. The framework was built expecting that.
Two parts survive that world: the taxonomy, as a record of how AI-generated design looked while the output was still uniform, and the measurement method, as a template for the next problem of the same shape. The source linter and the compiler may not, since both exist to correct output the best models will eventually produce unaided.
Open-weight models are the reason the framework stays useful in the meantime. They trail the frontier on the qualities AHD measures, and the published runs keep showing it. We have not measured that lag in months and do not claim a figure for it. So AHD ships today as a working guardrail, and it is published as a research record, because we would rather it be worth reading in three years than pretend it will never age.
The raw measured data that underwrites every claim on this site is on the cross-provider page, the narrow-roster five-model page, and the per-run manifest links inside each. Results appear in full, including the models and runs where the compiled prompt lost.
Adjacent reading: the thirty-nine-tell taxonomy, how we measure, how to use AHD in production, install AHD.