Hill-climbing UI design with a model council
- YT :: https://www.youtube.com/watch?v=xq0eB8vxeqk
- Original title :: Agents Sucked At UI (Until Today)
Prompted by a Twitter complaint that T3 Code looks unpolished, Theo turned UI design into a hill climb: an agent edits the app, a "council" of models from different providers scores screenshots out of 10, and the loop repeats until every reviewer hits the target. After ~18 hours of parallel agent time, five models and 30+ review rounds (~$250 in API-equivalent spend, mostly covered by subscriptions), the result is a redesign Theo considers genuinely good — now behind a toggle in the T3 Code beta tab. The broader lesson: any problem that can be turned into a score, even a vibe-based one, can be climbed by agents. Theo applies the same pattern to T3 Code's MCP tool descriptions with a real eval.
The council skill
- Part of Theo's new minimal skills repo ("T-Stack"). The council brings in three delegates — Opus 5.5, Muse, and Codex GPT-6.1 Soul — gives each the request and context, keeps review read-only, and summarizes findings, disagreements and next steps.
- For reviews, each delegate gives a score out of 10; one full review pass is one round. Theo also made it report scores per round so progress is visible over time.
- Gemini is added as a hidden "jester": same brief, score ignored, and its funny mistakes are logged under "Gemini flubs" (e.g. quoting line 173 of a 72-line file, hallucinating IPs and device names, thinking JS numbers overflow).
- Vibe-based scoring is noisy — the same screenshot can get three different scores — but getting 9/10 from several models at once is hard enough to be a meaningful signal.
Round 1: climbing against itself
- Prompt: a
/goalto make the UI "Robin-approved" and iterate until the council rates screenshots at least 9/10, in a new UI polish PR. - Starting scores were around 6–6.5. Changes were subtle: fallback font, thread-title hierarchy, branch-name truncation that cut the meaningful part, card radius, softer inline code without needless borders.
- Asking the agent for annotated before/after diagrams made the subtle changes visible to a non-designer.
- After three rounds every model gave 9/10 and the goal was met in about an hour — but side-by-side with Claude Code and ChatGPT, it still was not good enough.
Round 2: climbing against competitors
- New thread: rerun the council on the before/after with self-generated screenshots, and add Claude Code and Codex screenshots to the comparison. Goal: T3 Code must outscore both in every category.
- With competitors in context, the "9/10" PR dropped to ~7.4 — scores depend heavily on what the judge sees alongside the subject.
- Competitor scores rose over time even though their screenshots never changed (Claude Code ~8.3 → 9.1, Codex ~8.6 → 9.0, flipping the order). Theo suspects mentioning the target score leaks into judging and plans to hide the target from sub-agents.
- To save quota: query Soul first, bring in Opus only once Soul is satisfied, and Muse last. Gemini is not allowed to block progress because it is slow.
- Gains: consistent labeling across surfaces, calmer sidebar hierarchy, consistent border radius, fonts and indicators, much better light-mode contrast.
Rounds 3–4: 9.5 and 10
- A forked worktree targeted 9.5+ in every category; this took 10 more iterations.
- A further run targeted 10/10 with an extra instruction to bring color back, since the design had become too grayscale. Soul gave straight 10s, Opus mostly 10s, and Muse moved from ~7.5 to 10. Theo calls the result "just good", not merely less ugly.
- Cost: ~17.6 hours of parallel agent runtime; ~$250 for what is shown (~$400 including the latest refinement), mostly inside subscriptions that would allow ~$12k of usage a month. Reproducible with just a Claude Code and a Codex subscription.
Same pattern with a programmatic eval
- Theo collected real cases where models misused the T3 Code MCP (opening a thread instead of a sub-agent, and so on) and turned them into an eval of 85–88 cases. Sonnet 5.5 initially passed ~60.
- Two-phase hill climb: first reach a perfect score and commit it, then shrink tool descriptions to a third of their size while keeping the perfect score.
- Result: 52% fewer context tokens from T3 Code's tools, 78% fewer with tool search on. Now in nightly.
- Programmatic verification beats vibe scoring, but both work. Shape problems into a hill with a measurable score and agents will climb it.