Skip to main content
Most skills don’t need this. The previous levers handle the majority of enterprise requirements without strict sequencing. Reach for an ordered block only when the order itself is the requirement: regulatory processes, multi-step approvals, compliance sequences.

When to use an ordered block vs. another lever

The fence

The id goes on the fence line as an attribute, id=pick_card. The body between the fences is YAML: the steps: list. The prose around the block is what tells the LLM when to enter it, so say so in the same sentence that references @block.<block_id>. When the block completes, execution returns to the surrounding prose.

Hybrid: one ordered block inline

The Card Replace skill has a problem: the agent sometimes checks eligibility after the customer picks a card, or skips the check entirely. Order matters, and prose isn’t enforcing it. That section becomes a block; the rest stays prose.
skills/card_replace/skill.md
The block guarantees eligibility is checked before a card is chosen. The select_card step is still a conversation: the LLM owns the wording and the back-and-forth, and the step ends once selected_card_id is set. Everything outside the block stays prose with if: scoping. For the full step vocabulary, see Ordered block steps.

Fully controlled

For the most regulated cases, the whole body is one block and there is no prose:
skills/card_replace/skill.md

The tradeoff

Every step you put inside a block is a step the agent can no longer reorder. A block is a state machine, and it holds that order even when the conversation would naturally take another route: a customer who volunteers the answer to step four while you are on step one, or who asks a question mid-sequence, is moving against the grain of the block. The more of a skill you enclose, the more of that flexibility you trade away, and the more scripted the conversation feels. That trade is worth making where the order carries a regulatory or correctness requirement, and rarely worth making anywhere else. In practice that is two to five steps, not a whole skill, which is why the hybrid form covers most enterprise needs.

Boundary rules

  1. Local order, not global lock-in. The user can trigger a different skill mid-block. The block pauses and, if the user comes back to it, continues at the same step.
  2. Prose and blocks coexist. Prose enters a block via @block.<block_id>; when it completes, execution returns to the prose.
  3. tool_constraints are always enforced. Whether the LLM or an execute_tool: step attempts the call, requires: is checked.