Skip to content

tutorial

Chapter 7 of 10

Chapter 7 — Ordered blocks

by Rod Rivera Published

Build report_baggage with a strict collection sequence, confirmation, and verbatim notices.

Goal

Add the progressive-control showcase: report_baggage with recording notice, ordered collection, confirmation, and success utter.

Teach

Reach for ordered blocks when order itself is the requirement. Most skills never need them. When they do, prose can invoke a block with @block.<id>.

Once they want to file a report, invoke @block.collect_baggage

:::ordered_block id=collect_baggage
steps:

- id: fetch_bookings
  execute_tool: list_bookings
- id: select_booking
  instructions: |
  Ask which trip the bag belongs to. Set booking_ref.
  complete_when: session.report_baggage.booking_ref

# ... more steps ...

:::

The block id goes on the fence line as id=collect_baggage. Putting it inside the body as id: is the most common mistake here, and the error you get back is “must declare an id attribute”. A step’s complete_when is the same condition expression used everywhere else, so a bare session.report_baggage.booking_ref means “this step is done once that field has a value”.

Step types:

Type Properties Behaviour
Execute tool execute_tool: Framework calls the tool directly
Conversational instructions: + complete_when: LLM talks within the step
Collect collect: + utter: Framework collects a value

tool_constraints, including requires and requires_confirmation, still apply when a block or the LLM attempts a tool call.

Paste

Paste set: tutorial/snippets/step-05-baggage/

Copy the whole skills/report_baggage/ folder (includes skill.md, memory.yml, responses.yml).

Train and try

make train
make inspect

Try (voice if possible): “My bag did not arrive.”

Verify:

  1. Recording notice plays on activate
  2. Bookings are listed before details are collected
  3. Summary confirmation happens before submit
  4. A report id such as BAG1001 is returned

Talking point

This skill combines every lever from earlier chapters. The hybrid pattern — prose around one ordered block — covers most enterprise needs. Fully controlled skills (entire body is one ordered block) are for the most regulated cases only.

Next

Chapter 8 — Compose skills