The workflow
multi-model.fabro
Model stylesheets
Themodel_stylesheet graph attribute contains CSS-like rules that assign models to nodes:
Selectors
Higher specificity wins. If two rules have the same specificity, the last one in the stylesheet wins.
How this workflow routes
Assigning classes
Set theclass attribute on a node to target it with class selectors:
class="coding critical".
Properties
Stylesheets support four properties:Why route models?
Not every task needs a frontier model:- Spec writing, classification, summarization — use a fast, cheap model (Haiku, Flash Lite)
- Code implementation, complex reasoning — use a capable model (Sonnet, Opus, GPT-5.4)
- Cross-critique — use a different provider so the reviewer brings fresh eyes
claude-haiku-4-5 to gemini-3-flash-preview in the stylesheet and the workflow behaves the same — just with a different model underneath.
Explicit overrides
A model set directly on a node attribute always beats the stylesheet:.coding says.
See Model Stylesheets for the full reference and Models for available model IDs.
What you’ve learned
- Model stylesheets use CSS-like rules to assign models to nodes
- Selectors match by universal (
*), shape, class (.name), or ID (#name) - Specificity determines which rule wins when multiple match
- Route cheap models to simple tasks and capable models to hard ones
Next
Ensemble
Fan out to multiple providers and synthesize their independent opinions.