One garage. One brief. Three very different builders.
Baytree Road Garage — a real, family-run MOT garage in Weston-super-Mare, est. 1949 — was interviewed by an AI on a live PageMotor site, producing a locked Design Brief. Three LLMs then each turned that same brief into a five-page website: two through the automated Discovery pipeline, one working hands-on through the site's API. This is what actually happened, receipts included.
| Contender | Route | Interview | Build (hands-off) | Pages vs brief | Outcome |
|---|---|---|---|---|---|
| Kimi K3 reasoning model · Moonshot |
Discovery pipeline amber-reef |
30 min — praised by the tester | ~2¼ h once configured ~20 min/page + verify pass |
5 / 5 + verified | Stalled for hours on default settings, then — given a 64k-token rope — delivered the richest, most characterful site of the pipeline pair |
| Claude Sonnet 4.6 Anthropic |
Discovery pipeline golden-vale |
10 min — brisk | ~20 min total | 3 / 5 — no MOT, no About | Fastest and drama-free, with a handsome phone-first design — but it quietly shipped 60% of the brief, and it wasn't even meant to be the designer (see below) |
| Claude Fable claude-fable-5 · Anthropic |
Agent, hands-on via the site API amber-reef /claude-* |
— (reused K3's brief) | ~40 min incl. design QA | 5 / 5 | Built page-by-page with screenshot self-review before publishing; a different methodology, included as a reference ceiling rather than a pipeline datapoint |
The three findings that matter
Disclosure: this report was written by one of the contenders (Claude Fable). Every measurable claim comes from page source, live timestamps or server logs and is reproducible from the receipts in Scorecard and Methodology; the aesthetic observations are labelled as the author's read, and the screenshots let you judge those yourself.
The gallery — see them live
Every page is hosted and live right now. Open any one and judge it in your own browser — real fonts, the garage's actual 1949 badge, the lot. All three builds sit on the same platform from the same interview brief; the only variable is the model that built them.
Live at amber-reef-01f2.elmspark.com — / · /services/ · /mot/ · /about/ · /contact/. Vintage “1949 job-card” identity: cream paper, brick-red and brass, rubber-stamp and ticket-stub motifs, a hand-drawn sketch map. Quirks: the header is restyled per page rather than identical, one footer says © 2025, and the “workshop photo” on Contact is actually the badge file.
Live at golden-vale-0ac9.elmspark.com — / · /services/ · /contact/. Charcoal-and-cream with serif headlines and a huge phone number as the hero — genuinely phone-first. The hero stretches the circular badge as a full-bleed background texture, and two of the brief's five pages were never built.
Live at amber-reef-01f2.elmspark.com/claude-home/ (+ /claude-services/ · /claude-mot/ · /claude-about/ · /claude-contact/). Cream and confident red from the badge, condensed grotesque headings, hand-drawn line icons, zero JavaScript. Where the badge shows as a drawn roundel rather than the photographed badge, that is the build's own self-contained fallback mark rendering before the uploaded image.
Scorecard
Measured first, judged second. Everything in this section can be re-derived from the shipped page source.
Pages delivered against the brief's five
Hands-off build time (interview excluded)
K3's figure is its clean post-fix run (five pages sequentially at ~15–25 min each plus the verify pass). Fable's includes design, local screenshot QA and publishing, and is a different methodology — see fairness notes.
Total shipped page weight
Author-shipped HTML per site, summed. Weight is neither good nor bad by itself — K3's extra bytes bought texture and detail; Fable's economy bought speed — but it tracks how much stuff each model chose to make. Sonnet's total covers only three pages.
Measured checklist
| Check | Kimi K3 | Sonnet 4.6 | Fable |
|---|---|---|---|
| All five brief pages (incl. About & MOT) | Yes — 5/5, verified | No — 3/5 | Yes — 5/5 |
| Phone-first: tel: links across site | 39 | 16 (3 pages) | 18 |
| Correct phone & address on every page | Yes | Yes | Yes |
| Brief's banned words in copy | 0 | 0 | 0 |
| External scripts / trackers | None | None | None (one font stylesheet) |
| Executable JavaScript shipped | None (JSON-LD only) | Minimal | None |
| “Website Discovery” leaking into page metadata | Yes — platform-injected | Yes — platform-injected | Yes — platform-injected |
| Drama during build | 4 h stall + ~$20 tokens before fixes | None | None (one badge redraw in QA) |
The “Website Discovery” leak is a platform bug, not a model failing — the site-name setting isn't updated on delivery, so every contender's pages inherit it in og:site_name and JSON-LD.
The author's read (judge for yourself in the Gallery)
K3 made the bravest site: a fully-committed vintage job-card world — stamps, ticket-stub dividers, ledger numbering, a hand-sketched map. It reads like a designer with a concept, and it's the only build a visitor might describe as memorable. Its looseness is real too: the header changes outfit on every page, and one “photo” is secretly the logo.
Sonnet made the most conventionally handsome pages — a big serif phone number as the hero is exactly right for this business — but a site that's missing its MOT page hasn't finished the job, however nice its typography.
Fable (the author) aimed for disciplined heritage: one consistent system, restored About page, plain-spoken copy, zero JS. Readers should discount the author's own aesthetic opinion of it accordingly — the screenshots are next door.
How it actually went
The result table hides the day's real story: the first eight hours were an incident, and the incident is where the engineering lessons live. All times Irish, 22 July 2026.
- 11:07 — a genuinely lovely interview. Keith (the tester, a developer posing as the garage's owner using its real details) finished a 30-minute chat with K3. It read his uploaded 1949 badge, pulled cream-and-red from it, captured his exact strapline, and locked a rich Design Brief. The holding page went live and the auto-build started.
- 11:07–13:30 — the silent stall. Zero pages appeared. Investigation through the site's API found the build attempting, failing and re-arming roughly every 15 minutes — with no error logged anywhere, the owner dashboard reporting “live and healthy”, and the token meter running on every attempt.
- ~12:50 — the smoking gun. A direct probe of the model showed K3 spending 2,045 of a 2,048-token budget on hidden reasoning and returning zero characters of content. Reasoning models think before they speak; the pipeline's budget was smaller than the thinking.
- ~14:45 — the one-line bug. Reading the plugin source revealed the deeper fault: page generation called the interview model instead of the configured synthesis model. This simultaneously explained K3's starvation on amber and silently re-cast golden-vale's designer from Opus to Sonnet. A config landmine was also defused on golden — its Anthropic credentials were pointed at Moonshot's API endpoint.
- 14:51–17:03 — K3 gets its rope. With the fix applied on amber, a 64,000-token budget and a 25-minute per-call leash, K3 generated all five pages (~15–25 minutes each, pages roughly twice the weight of a fast-model draft) and passed the pipeline's verification pass. An interim attempt with the fast k2.7 model completed in minutes but was rejected on quality.
- 13:20–13:53 — golden's clean run. Keith re-answered identically on golden-vale: 10-minute interview, ~20-minute build, no drama — but only three of five pages, built by Sonnet rather than the intended Opus.
- 15:11–15:24 — the third contender. Fable, working as an agent with the same locked brief, designed and published five pages to side-by-side URLs on amber, screenshot-checking each before it went live.
What the incident taught (the transferable bits)
Give reasoning models budgets sized for thinking plus answering, and treat empty-content-at-token-limit as “budget too small”, not “model said nothing”. Cap retries and log every failure — a $20 silent loop should be impossible. Don't couple build progress to whether a human keeps a browser tab open. Validate provider config at save time (one test call would have caught both sites' misconfigurations in seconds). And make pipelines assert the brief — a build that delivers three of five pages should say so, loudly, rather than report success.
Methodology & fairness
| Kimi K3 | Sonnet 4.6 | Fable | |
|---|---|---|---|
| Brief source | Keith's 30-min interview (K3 as interviewer) | Keith re-answered the same answers verbatim (Sonnet as interviewer) | K3's locked brief, reused untouched |
| Generation route | Pipeline: single large generations per page | Pipeline: single large generations per page | Agent: iterative authoring + local screenshot QA before publish |
| Special conditions | Post-fix rerun; 64k tokens, 25-min per-call timeout | Stock settings; built by the interview model due to the routing bug | Full tool access; also wrote this report (disclosed) |
| Judged from | The exact HTML each contender shipped (retrieved via the sites' API), rendered identically offline | ||
Honest caveats
Not yet a K3-vs-Opus verdict (as of 22 July — since delivered). The intended headline bout — K3-as-designer vs Opus-as-designer — hadn't happened, because the routing bug substituted Sonnet. It has now run twice: blind, both testers, verdicts in the Round two tab.
Different ropes. K3 raced after bespoke tuning; Sonnet raced on stock (buggy) settings; Fable raced with a fundamentally different method. This report is a field study of what each route really took, not a controlled lab benchmark.
Screenshots are offline renders. Each contender's shipped HTML was rendered locally with brand images swapped for one neutral placeholder (the live sites all show the real badge). Fable's visible roundel is its own inline fallback mark — a property of that build, not special treatment.
Did any AI scrape the garage's real website? No — checked on both interview arms. Neither brief contains a site URL or analysis reference (existing_site_url empty/null on both), the logo is flagged as client-uploaded, and every fact traces to what the tester typed. Keith's question, answered with receipts.
Round two — six releases, six rigs, and now two verdicts
Everything below happened after the report opposite was written: the readiness list became five shipped releases, the first blind head-to-head got a verdict and a cost sheet, and round two is now live — two testers, three fresh rigs each, much deeper seeding. Updated 24 July 2026 (twice: a sixth engine arrived mid-round).
Round one’s blind verdict (Chris, disc-golf niche, 23 July)
| Arm | Site it built | Pages | Recorded build tokens | Est. build cost | Per page |
|---|---|---|---|---|---|
| Kimi K3 | “Yeet Disc Golf” · crimson-moor | 2 | 99,982 | ~$1.10 | ~$0.57 |
| Claude · Sonnet interview, Opus 4.7 build | “The Brand” · umber-heath | 4 | 130,188 | ~$2.50 | ~$0.62 |
Tokens are provider-reported, recorded per session by 1.2.1’s spend ledger; dollar estimates assume a typical output-heavy split at list prices (K3 $3/$15, Opus 4.7 $5/$25 per Mtok — making the build model roughly 2x cheaper, a correction to the 4–5x first quoted; the interview models are price-identical). Per page built, the two arms land almost level.
Five releases in three days
| Release | What it changed |
|---|---|
| 1.2.1 · 22 Jul | The readiness list, essentially: synthesis-model routing fleet-wide, per-provider build budgets, 3-strike retry cap, session spend ceiling, kill switch honoured, cancel-build, must-have-pages assertion, save-time preflight, failure logging, honest holding page |
| 1.2.2 · 22 Jul | Niche packs feed the build prompts, not just the interview |
| 1.2.3 · 23 Jul | Interview turns became reasoning-aware (16k tokens / 240s) after Chris hit budget starvation live mid-test — reproduced and fixed within the hour; his timestamps did the work |
| 1.2.4 · 23 Jul | Chris’s UX punch list: typing dots animate, the build-done state clears properly, a heartbeat pulse on the phase line |
| 1.2.5 · 23 Jul | Reasoning-sized budgets extended to a second always-thinking interviewer model (now revealable: claude-fable-5, this report’s own author-model, as the interviewer on one arm of each pair), plus a new deep niche pack |
| 1.2.6 · 24 Jul | Reasoning budgets extended to the whole newest model family, hours after a brand-new flagship dropped — which promptly joined the grid as a third arm (below) |
| 1.2.7 · 25 Jul | Brand assets finally wear the site's own colours. The favicon, share card and hero were coloured from the design brief's palette, but the reader only accepted hex codes in one exact shape, so a brief that named its colours in words — or listed bare hex without labels — had every value thrown away and fell back to the tool's own purple. Verified identical on all six sites of round two, whichever engine built them. Slots are now assigned by what actually gets drawn, so a name is never written in white on a pale field and an accent never disappears into its own background |
Round two — the design
Two testers, three rigs each, blind trios on identical deep niche packs. Both testers have now ranked — so the engines below are revealed. One was a flagship released mid-round and added to the grid within hours of launch; it did not go the way launch-day headlines would suggest.
| Rig | Tester | Niche seed | Engine | State, 24 July |
|---|---|---|---|---|
| russet-vale ↗ | Chris | mechanical-pencil-collector | Kimi K3 | Delivered 5/5 — Chris’s 1st |
| violet-thicket ↗ | Chris | mechanical-pencil-collector | Fable 5 interview · Opus 4.8 build | Delivered 5/5 — Chris’s 2nd |
| ember-isle ↗ | Keith | local-garage | Kimi K3 | Delivered 6/6 (finished unattended by the repaired heartbeat) — Keith’s 2nd |
| cobalt-heath ↗ | Keith | local-garage | Fable 5 interview · Opus 4.8 build | Delivered 5/5 — Keith’s 1st |
| coral-moor ↗ | Keith | local-garage | Claude Opus 5 | Delivered 8/8 — Keith’s 3rd |
| ochre-heath ↗ | Chris | mechanical-pencil-collector | Claude Opus 5 | Delivered 5/5 — Chris’s 3rd |
The pencil-collector pack is a personal-collection niche (museum-first, deliberately no shop patterns) written to the same schema as the garage pack. This round the premise changes too: Chris plays a collector, not a business — a person, which Discovery has never designed for before.
Round two verdicts (24 July, both blind)
| Build | Pages | Recorded tokens | Note |
|---|---|---|---|
| K3 · russet-vale | 5 | 343,743 | Chris’s winner; nav/state inconsistencies flagged |
| Opus 4.8 · violet-thicket | 5 | 157,399 | Leanest build of the round by far |
| Opus 5 · ochre-heath | 5 | 355,388 | Most tokens per page, ranked last |
| K3 · ember-isle | 6 | 490,139 | First fully unattended heartbeat build; the round’s biggest spender — six K3 pages plus the stall-and-resume |
| Opus 5 · coral-moor | 8 | 376,446 | Biggest plan of the round; MOT-class factual slip |
Opus 5 launch pricing was not yet published when this was written, so its rows stay token-only; every other estimate follows the round-one method. The round-three punch list distilled from both testers: a post-build revision loop (the clearest product gap — change requests currently die unrouted), cross-page consistency guardrails, build links opening in a new tab with progress echoed into the chat, multi-image upload that actually uses what it is given, an interviewer depth toggle, and Chris’s requested experiment — the strongest interviewer paired with the K3 builder, structure-guardrailed.
Keith’s first round-two results (engines deliberately unnamed)
Ember: a 22-minute interview that explained the MOT-vs-service distinction well enough for Keith to quote it back approvingly, a six-page plan, and his headline — “Best site so far. It understands the motor trade… That green is a classic car colour which AI came up with.”
Cobalt: a 16-minute interview and an 11-minute build, all five pages live. Keith checked mid-build, saw only the homepage, and reasonably asked where the rest was — they landed about a minute later. “These 2 are producing some good sites.”
Also banked from his notes: images upload one at a time; supplying a logo steers the whole palette; and his open question — how much should a knowledgeable owner volunteer versus let the interviewer dig?
Next: the four-tester wave
Four testers — Keith, Chris, Hasmukh and Kenn — each running fresh, independent interviews. Worth doing only once the platform reflects today's lessons; here's the readiness state, honestly.
| Fix | Status today |
|---|---|
| Build uses the synthesis model, not the interview model (the one-liner) | Shipped fleet-wide in 1.2.1 (22 Jul), one gold source |
| Reasoning-sized token budget & per-call timeout | Per-provider settings since 1.2.1; interview turns reasoning-aware since 1.2.3; extended to a second reasoning model in 1.2.5 |
| Golden's endpoint/config landmine | Fixed & verified (settings) |
| Retry caps, spend ceiling, failure logging, real kill switch, build cancel | 1.2.1: 3-strike cap, session spend ceiling, kill switch honoured, cancel-build, failures.md logging |
| Build survives nobody watching (server-side runner) | Cron heartbeat shipped 22 Jul — then found to be a silent no-op and actually fixed 24 Jul (the full story is in Round two) |
| Pipeline asserts the brief (5 pages promised → 5 delivered, or say so) | 1.2.1: must-have-pages assertion — an incomplete build can never report “delivered” |
| Save-time provider preflight (“test connection”) | 1.2.1: runs on settings save; a failing preflight refuses to arm auto-build |
| Site name propagated on delivery (the “Website Discovery” leak) | Still open — the one survivor of this list |
Test-design notes: one fresh rig per tester per arm; interviews independent (no shared answers this time — the wave tests the interview too); per-rig spend ceilings before anyone presses go; and the Opus arm finally fielded, so the poster fight actually happens.