Engineering

Skills V2: mandatory routing + preflight tokens

Skills V2: mandatory routing + preflight tokens

Early on, agents kept ignoring our Pro Skills. They would happily dump flattened HTML instead of routing through the skill that produces validated, on-system output. Skills V2 is the three-layer fix that finally locked them in.

The problem with optional guidance

A skill that an agent can use is a skill an agent will skip under pressure. When a model is mid-task and optimizing for the fastest path, optional instructions lose to the shortest route. We needed routing that was not a suggestion.

Layer one: mandatory routing

Certain intents now route to a skill by force. Ask to convert a screenshot to a Bricks template and the request cannot be answered by raw markup — it must pass through the skill that whitelists elements, maps tokens, and validates the result.

Layer two: preflight tokens

Before a skill persists anything, it mints a single-use preflight token bound to the user, the skill, and an expiry. The persist step rejects any payload without a valid token. That closes the gap where an agent tried to write directly and skip the guardrails.

  • Bound to user and skill, so tokens cannot be reused across contexts.
  • Single-use, so a captured token is worthless on the next call.
  • Short expiry, so stale attempts fail closed.
If it is not validated, it does not persist.

Layer three: server-side validation

The final layer runs on the server, not the agent. BEM grammar, token taxonomy, no clamp() font-size, and the element whitelist are all checked before a single block is written. The agent synthesizes; the server is the guardrail and the writer.

The result

Output is correct by construction, not by hope. Read more in the docs or see it run in a demo.

More reading

From the blog

See it run on a live site.

Book a demo and watch an agent work through these abilities.