Routing the job
intermediate·8 min·Markdown for agents
What this lesson teaches
Know how the skill decides who owns a request (posture, phase, material, companion skills) and run multi-step jobs in an order that doesn't waste passes.
Ask an agent "is this modal animation any good?" and one of two things happens. It hands you a careful verdict. Or it rewrites your modal.
Same words, very different jobs. The skill's first move on any request is to work out which job it is.
“Is this modal animation any good?”
Pick the posture before you read anything.
Four postures
Every request falls into one of four , and each has a fixed answer shape:
| Posture | You want | The answer |
|---|---|---|
| Build | UI made or changed | code, using the right values |
| Judge | existing work assessed | a table or list, no edits |
| Decide | a call before building | yes, no or a pick, with the trade named |
| Name | the precise word | the term in one line, then stop |
Judge never writes. A review request gets a table; a fix request gets code. Turning one into the other silently is how "is this good?" becomes a rewritten file you didn't ask for.
One entry node, not four
The skill is a graph of small notes called nodes. The maps a job to exactly one node to open first: "pick easing for one animation" opens the easing node, "a dropdown hides under the header" opens the z-index node.
Opening four nodes up front means you skipped the sorting. Start at one, follow its links to the companions it names (the easing node points at reduced motion, for example), and always finish by applying the two override files: your gotchas and your taste.
The router: phase, then material
Before the routing table, the asks two questions. First, what phase is this?
| The user is saying | Phase | Owner |
|---|---|---|
| "try a few", "not sure which" | undecided | three options behind a picker |
| "something like…" | stuck on a vibe | research, then a generator |
| "build this screen" | foundation | hierarchy and spacing first |
| "feels cheap", "janky" | works, feels off | polish, motion or mobile |
| "review before I ship" | done | the review table |
| "closer, but not quite" | keeps missing | build a tool |
Then, what is it made of? Type, colour, motion, sound, SVG, forms. That picks the node or the specialist.
One or two owners, never five
Loading four craft skills at once spreads attention across four quality bars and applies none of them. The router names one or two owners and hands off.
Some owners live outside this skill. A is another installed skill that does one job better: HyperFrames builds launch films, diagram-design draws figures, Stageshow builds faux product UI, the AgentsORG design skill owns .design files. When one is installed, the job goes to it, and the result still passes back through your gotchas, your taste and, for reviews, the table.
Jakub Krehel's interfaces skills are a good example of how the hand-off works. Install them and some jobs move:
| Job | With Jakub's skills | Without them |
|---|---|---|
| Review a branch or PR | /interface-review | change-scoped review |
| Stress one component | /break | stress scenarios |
| Three variants | /variant | the prototype picker |
| How another site was built | /explain-interface | reading others' interfaces |
His slash commands are ones you start, so the agent tells you the command and stops. Where his values and the skill's disagree, a reconciliation note settles each case. A press scale of 0.96 with no scaling when disabled. A brand focus ring is fine if it clears 3:1 against everything it crosses. Unrelated icons (play and pause) cross-fade; related shapes morph.
When two owners both seem right, answer from the narrower one and link the other.Questions that sound the same
Some requests blur together and land on the wrong node. The skill keeps a list of these and a tiebreaker for each:
- Four motion questions. How should this one thing move? Is this diff's motion good? What's wrong across the whole app? Where is motion missing? Tiebreaker: scope.
- Layout shift has two owners. Once, while loading: skeletons and reserved space. On every interaction: animating the wrong properties.
- Looks right, feels finished, should ship. Designing, polishing, gating. Don't hand a gate verdict to someone still designing.
- Sound. Is there a user who can mute it? Product rules. If not, it's a video.
Chains: the order for a whole job
Single questions go to single nodes. Real jobs chain several, and the order matters. The encode orders that survived use.
The screen loop, for one screen:
Decide
If you can't describe it yet, options behind a picker.Foundations
Hierarchy, spacing, alignment; delete what adds nothing.One material pass
Forms, surfaces, type, a component's API or a landing page. Just one.Refine
Polish, then motion, mobile or accessibility only if that's the problem.Review
The table.Ship
Once every screen is done, the whole-app pass.
Chains are orderings, not checklists: skip links that don't apply, never reorder them. And don't run a chain on a one-line change; a hover tweak goes to one node and stops.
/design-engineering which "the toast says Saved but screen readers never announce it"
Quick check
Someone asks 'Is this dropdown animation any good?' and shares the code. What should the agent return?
In the skill
The nodes your agent reads when it does this work.
- The skill routerWhat `/design-engineering` does first — classify the phase and the material, resolve the design contract, then hand the job to the owning node, subagent, or installed companion skill (AgentsORG design, impeccable, HyperFrames, cinetic, scenario-kinetic-film, earshot, ElevenLabs, the transitions catalog, the shadcn CLI, diagram-design, tldraw, GSAP, better-icons, Jakub Krehel's interfaces skills, fun-isometric, Stageshow, taste-skill on request). One or two owners, never five.
meta/skill-router - Routing table — intent → entry nodeIntent → entry-node router. Name the job first, then open exactly one node — most questions have one canonical entry point into the graph.
meta/routing-table - Disambiguation — the questions that blur togetherThe intents that blur together — four motion questions, three dark-mode owners, two layout-shift owners — and which node owns each.
meta/disambiguation - Stacking chains — ordered routes for multi-step jobsOrdered node chains for multi-step jobs — a new screen, a feel-better pass, a design system, a marketing site — so sequencing decisions aren't re-derived per session.
meta/stacking-chains - interfaces, reconciledJakub Krehel's interfaces skills (better-* domain skills, interface-review, break, state-machine, variant, explain-interface, build-design, teardown) as companions — which job each owns when installed, what this graph distilled from them, and twelve value conflicts settled. Exact values and WCAG criteria are his; motion ratios, the default press, APCA for design and the installer's pov stay here.
meta/interfaces-reconciliation
Connected lessons
What this lesson builds on and leads to, across every course.