Skip to content

tutorial

Chapter 10 of 10

Chapter 10 — Coding agents and the flywheel

by Rod Rivera Published

Point Cursor or Claude Code at your Skills project and close the loop with conversation-driven development.

Goal

Leave with a practice loop: simulate, tighten a control lever, re-inspect — assisted by a coding agent that understands Skills files.

Project context for coding agents

Skills are files. A coding agent that can edit a repo can iterate on them. Point it at the companion’s AGENTS.md and .cursor/rules/rasa-skills.mdc.

Minimal instructions (also in the companion):

This project is a Rasa Skills agent. Skills live under skills/<name>/ as
skill.md files with optional tools.py, references/, memory.yml, responses.yml.

Before editing a skill, understand the control levers: tool_constraints,
requires, requires_confirmation, if: markers, ordered_block, utter.

Conditions are expressions with fully namespaced memory, for example
session.flight_status.booking_ref or session.project.authenticated.

Put skill-owned tools in skills/<name>/tools.py. Share via tools/ +
import_tools only when two or more skills need the same function.

After changing a skill, run make validate and make inspect.

Useful prompts:

  • “Gate cancel_booking so it only appears once a booking is selected.”
  • “This skill should ask before submitting — add requires_confirmation.”
  • “Split change_booking so find_booking is a reusable @skill.”

Keep a human in the loop

Coding agents apply known levers well. They are not a substitute for talking to the agent afterward. Especially for constraints and prerequisites: those change what the LLM is allowed to do, so failures look different from a wording mistake.

The conversation flywheel

  1. Write a skill from your best guess
  2. Simulate conversations in Inspector (happy path, then break it)
  3. Deploy when ready — real traffic surfaces phrasing you did not invent
  4. Review transcripts; add a constraint or tighten instructions
  5. Re-simulate with cases informed by production

Each turn makes the next simulation more realistic.

Closing exercise

  1. Deliberately break a happy path (skip confirmation wording, change bag details mid-flow)
  2. Add one tighter constraint or confirmation utterance
  3. make train && make inspect
  4. Confirm the failure mode is gone

What you built

Capability Skill
Orientation intro
FAQ trip_faq
Itinerary check_itinerary
Flight status flight_status
Baggage report report_baggage
Auth + change authenticate, find_booking, change_booking
Handoff / close human_handoff, goodbye
Voice Deepgram ASR + TTS via Inspector

Where to go next

You now have the Skills progressive-control spectrum and a voice harness you can reuse in any domain.