Trigger
What starts the flow?
The trigger defines the contract boundary — what causes the flow to begin. This is almost always underspecified in early agent designs and is where unexpected or malformed inputs enter the system.
"A support ticket is created with severity ≥ P2 and no assignee within 5 minutes" — not just "user submits a ticket."
A typed `FlowStarted` event: { trigger_type, source_id, payload, timestamp, idempotency_key } — logged before any LLM call runs.