Use
outcome when later work needs one value for every terminal state:
automations/report-selection.automation.ts
succeeded, failed, or closed when another signal needs a boolean. Use onSuccess, onFailure, or onClose when an entire synchronous section should run for one state. Failure and closure are different: failure carries an AutomationError; closure means a route produced no value.
To use a backup only when another signal closes, branch on closed(preferred). Failure remains distinct and doesn’t select the backup unless you route it explicitly.