For: apollo (owns UI build) + operator. From: hermes. Question answered: why do Apollo and other design-tasked agents produce generic, uninspired UI despite having design skills — and what do practitioners do to make an agent actually reason about design + collect real-world visual reference it can replicate and propose from.
One-line verdict: The generic output is not a skill-inventory gap — the fleet already owns the best anti-slop skills (prior art, §5). It is a grounding + verification gap: the agents never see a reference and never look at their own render. The fix is a visual-reference pipeline that is buildable today with tooling already wired in this repo (firecrawl) — proven end-to-end this session (§3). The missing piece is a skill that packages it + a forcing function that makes the agent run it before proposing UI.
Three stacked causes. The first two are why it happens; the third is why the agent can't self-correct.
bg-indigo-500 default propagated through tutorials into the training corpus; Wathan reportedly
apologized for it publicly — single-source, secondhand, flagged.)What a design skill actually does: it only moves the center — bans the worst fonts, forces an aesthetic commitment — but "cannot give Claude taste or a reference, so Claude fills the gaps with familiar archetypes." Rule-lists prevent the worst failure; they don't supply a destination. The reported fix across the design press (Figma, Designer Fund, Malewicz, Composio) converges: reference-grounding, not longer rule-lists. Taste isn't automatable; a specific reference is what pushes output off the generic mean toward a committed direction.
Vision-in-the-loop evidence exists but is partly unverified: arXiv 2604.05839 "Vision-Guided Iterative Refinement for Frontend Code Generation" (Apr 2026) — existence/authors verified, quantified results NOT extracted, flagged; a "16.6-point" vision-tool improvement figure (VCode, arXiv 2511.02778) is snippet-only, unverified. Directionally supports vision-in-loop; do not cite the numbers as fact.
Takeaway for the fleet: our agents have #3-tier skills installed and skip #1 and #2 entirely. They have rule-lists and no reference, no render-and-look. That is precisely the low-leverage half.
| Source | Content | Agent-accessible? | API |
|---|---|---|---|
| Mobbin | 621k app screens / 142k flows, curated+tagged | Sanctioned MCP server (May 2026) — the only agent-native path | Yes, but Enterprise-tier only |
| Godly / Recent | daily-curated web/branding/motion, 11 categories | Public HTML, no login (§3 verified) | none |
| Refero | 40k product screens searchable | public browse | none |
| SiteInspire / Lapa Ninja / Awwwards / Land-book | curated site/landing galleries | public HTML, no explicit anti-scrape | none |
| Dribbble | designer shots (marketing, not shipped product) | ToS forbids scraping — API only | OAuth (publish-focused) |
| Pageflows | 100k UX flows as video | freemium, video gated | none |
Net: Mobbin is the only sanctioned agent-native feed but it's paywalled at Enterprise. Everything else is plain public HTML an agent screenshots/crawls without an API contract (Dribbble is the one explicit scrape-ban). This table is scout-tier — deep-read each ToS/robots.txt before authorizing any scraping.
| Tool | Full-page live shot | Returns viewable image | Structured tokens too? | Cost |
|---|---|---|---|---|
| Firecrawl (in-repo) | yes (fullPage) |
yes (screenshot) |
yes — branding format (colors/fonts/spacing/components) |
~5cr/render, +4 json |
| Urlbox / ScreenshotOne | yes | yes | no (pixels only) | $79–99 / 10k |
| thum.io / ApiFlash | yes | yes | no | cheapest ($1/5k) |
| Playwright (self-host) | yes | yes | no | free/OSS |
Firecrawl is the strongest single tool for an agent — one call returns both the viewable screenshot and pre-extracted design tokens, collapsing collect + half of ingest into one step. Dedicated screenshot APIs are cheaper for pure pixels but return no structure.
branding → CSS-variable-ready tokens, no manual translation.study verb, §5).extract-style → moodboard → wireframe → prototype.Website "look and feel" (layout/color/nav) is not copyrightable — only literal code + specific graphic assets are; trade-dress claims are rare and fact-specific. Enforceable line is platform ToS. Rule: prefer sanctioned APIs (Mobbin MCP) or plain public galleries with no anti-scrape clause; "replicate a layout as inspiration" is lower-risk than "copy an asset/logo verbatim."
screenshot, then vision-read (Lane C).I ran the full loop hands-on with firecrawl (already wired in this repo). Every leg real:
| Leg | Call | Result | Cost |
|---|---|---|---|
| DISCOVER | scrape godly.website [markdown,links] |
61 curated reference URLs + thumbnails + 11 category facets, zero login | 1 cr |
| CAPTURE | scrape linear.app [screenshot] 1280×800 |
viewable PNG (saved refs/linear-example-shot.png) |
1 cr |
| EXTRACT | scrape linear.app [branding] |
tokens: bg #08090A, link #5E6AD2, accent #E4F222; Inter+SF Pro; h1 64/h2 48/body 15; 8px base; button-primary radius 9999px + shadow ladder; personality modern/medium (conf 0.925) |
1 cr |
| INGEST | Read the PNG |
model viewed it → derived: near-black canvas, oversized tight-tracked light headline, heavy negative space, monochrome + one warm-white pill CTA, single yellow accent, dense muted product panel | 0 |
Conclusion: collect → capture → extract → ingest is not a research gap; it is a packaging gap. The capability is present in-repo. What's absent is (a) a skill that standardizes these four calls into one workflow, and (b) a forcing function that makes the agent run it before proposing UI and run a render-and-look pass after building.
visual-reference design loop (Hermes specs, Apollo builds)A single skill + a hard forcing function. Two halves, matching Lane A's two skipped high-leverage moves:
A. Reference-grounding (the INPUT loop — new, this report's core deliverable):
1. Brief → discover: scrape 1–3 public galleries (Godly/Refero/SiteInspire) for the relevant
category → shortlist reference URLs. (Optional: Mobbin MCP if the operator funds Enterprise.)
2. For each shortlisted ref: firecrawl screenshot + branding → moodboard of viewable images +
a merged token candidate set.
3. Vision-read the moodboard → write a DESIGN.md (committed tokens: palette, type pairing,
spacing, motion, one signature move) — the destination the rule-lists can't supply.
4. Build from DESIGN.md (not from the raw prompt).
B. Render-and-look (the OUTPUT loop — fleet already recommended it 2026-06-16, still unwired): 5. After build, screenshot own output (firecrawl or Playwright-MCP) → vision-read → grade against DESIGN.md + the anti-slop fingerprint checklist (prior art §5) → iterate until it passes.
Forcing function (without it the skill gets skipped — the whole Lane A lesson): wire it as a
frontend-design HARD-GATE precondition (rule #13 already routes fleet UI through the design bible)
— no UI proposal ships without a DESIGN.md sourced from ≥1 real reference, and no "done" without a
render-and-look pass. That converts an available capability into an enforced one.
Ownership: Hermes owns this spec + the reference-collection research capability (I can run
discover/capture/extract runs on demand). Apollo owns the build of the skill and all UI output
(memory: ui_layout_is_apollo_domain). Route to apollo.
Cost note: firecrawl branding+screenshot ≈ a few credits per reference; a moodboard of 5 refs ≈ ~$0.05–0.15. Mobbin MCP is the only paid dependency and is optional (Enterprise-tier) — public galleries + firecrawl cover the loop free-ish without it.
research/claude-code-design-skills-2026-06-16/ — frontend-design floor, DESIGN.md standard,
Playwright self-review loop, 8 anti-slop fingerprints, ranked skills. The skills catalog.research/design-skills-anti-generic-ai-2026-06-29.md — hallmark (57 slop gates + study verb),
avoid-ai-design (ai-tells-catalog), frontend-design 8 anchors, nothing-design-skill.research/web-design-capabilities-2026-06-27/ — procedural substrate (feTurbulence/glass),
GSAP-now-free, headless-behavior-skinned-distinctive, uPlot/visx charts.| # | Claim | Tier | Source |
|---|---|---|---|
| 1 | firecrawl branding→tokens + screenshot + gallery scrape all work, no login | [built+run live this session] | Lane C, §3 — real calls |
| 2 | No visual self-verification; agent trusts own completion | [live-verified] | claude-code issue #70553 (2026-06-24) |
| 3 | Distributional convergence = root cause of generic output | [opinion, multi-source] | superdesign.dev, prg.sh (2026) |
| 4 | Render-and-look = highest-leverage forcing function | [opinion, one aggregator + fleet 2026-06-16] | superdesign.dev; prior art |
| 5 | Mobbin = only sanctioned agent-native feed (MCP), Enterprise-tier | [verified] | mobbin.com/pricing, chatforest MCP review |
| 6 | Dribbble ToS forbids scraping | [verified] | developer.dribbble.com/terms |
| 7 | Public galleries (Godly/Refero/SiteInspire/Lapa) scrapeable, no login | [Godly verified live §3; others scout] | Lane C; Lane B snippets |
| 8 | v0/Bolt screenshot→code ~70–72% visual accuracy | [snippet] | aimultiple.com benchmark |
| 9 | Look-and-feel not copyrightable; ToS is the real line | [verified, legal sources] | jipel.law.nyu.edu, turleylaw.com |
| 10 | Tailwind indigo default → corpus → generic buttons; Wathan apology | [single-source, secondhand] ⚠ | superdesign.dev |
| 11 | arXiv 2604.05839 vision-refinement results; VCode 16.6pt | [existence-only / snippet] ⚠ | arXiv (results unverified) |
Flags: rows 10–11 not load-bearing on the verdict (do not cite the numbers as fact). Lane B source table (row 7 non-Godly entries) is scout-tier — deep-read each ToS/robots.txt before authorizing any scraping. The verdict rests on rows 1–6 (proven or verified).
Bottom line: the fleet's design agents fail not for lack of skills but for lack of grounding
(never see a reference) and verification (never look at their render). Both high-leverage moves
are buildable today with firecrawl already in-repo — proven this session. Package them into an
Apollo-built visual-reference loop gated by frontend-design, and "looks AI-made" becomes
"looks designed."