You have already seen the pattern this month: the pill badge, the two centred CTAs, the three equal cards, the shimmer on the word it cannot stop shimmering. AHD treats that pattern as a measurable failure mode, not a taste argument.
The framework compiles a brief into constraints, lints the output against 28 typographic and layout rules, and runs a live eval across frontier models so you can see, on the same brief, which ones produce editorial work and which ones produce the house style of 2024.
Given a brief at briefs/landing.yml, AHD renders n candidates per model, scores each against the Swiss-editorial rule set, and writes a diffable report. The command is the whole interface:
$ ahd eval-live swiss-editorial --brief briefs/landing.yml --models <specs> --n 10
<specs> is a comma-separated list of model identifiers. The harness fans out in parallel, caches screenshots, and refuses to score anything the 28-rule linter rejects outright.
Every item below is present at HEAD, tested, and runs with no external credentials.
These exist in the codebase but are switched off by default. They are not vapour; they are things we will not ship keys or infrastructure for.
AHD is not a template library, a component kit, or a wrapper over a single model. It does not promise a faster pipeline. It promises a smaller one, with the evaluator treated as a first-class artefact rather than a demo tab.
If the rule set is wrong, fork it. The 28 rules are a file. Swiss-editorial is one profile; the harness accepts others. The point is that there is a rule set at all, and that the model is asked to justify itself against it.