Conversational lead capture as a state machine
Welcome → name → intent qualification → info collection → hand-off. Each transition is a typed state with explicit guards and a side-effect contract. Adding a new intent path (e.g., 'cloud migration vs. internal tools') is a state-extension change, not a rewrite.


