Skip to content

routing

Different LLMs lead at different phases of design work. This rule set encodes the Contralabs Human Creativity Benchmark finding: no single model leads all three creative phases (ideation, mockup, refinement) in any domain. Skills should declare their preferred model in front-matter and reference this file as the canonical mapping.

Phase Description Preferred model Why
ideate Open exploration: “what could a battery-swap return-flow look like?” Wide divergence is desirable. Claude (Opus) Strongest at exploratory ideation and structuring novel UI propositions.
mockup Initial concrete screen / component generation against a design system. Gemini Strong at design-system implementation and adhering to token-level constraints.
refine Iteration on production-ready output: typography polish, CTA tuning, micro-copy, a11y fixes. GPT Strong at iterative tuning under tight constraints.
drift-check Compare a built UI vs DESIGN.md tokens. Pure verification. Any (deterministic) Use whichever is fastest; this is mechanical.

Two distinct evaluation signals matter, and routing should preserve both:

  • Convergence — where evaluators agree (readable typography, functional layout, hierarchy). These are objective standards. Models should be correct here. Use mockup and drift-check routing.
  • Divergence — where evaluators legitimately disagree on taste and aesthetic intent. These are subjective. Models should be steerable here, and we should preserve a diversity of options rather than collapsing to an averaged aesthetic. Use ideate routing and present multiple options to the user.

Skills in .claude/skills/ declare their phase in front-matter:

---
name: ideate-screen
phase: ideate
prefers: claude
---

The runtime resolves prefers: claude against the user’s available models and falls back to whatever is configured.

A skill author can pin a specific model (e.g. prefers: gpt-5-pro) when their evaluation has shown a specific model genuinely outperforms the default for that task. Overrides should include a rationale field.