Every consequential intent receives a stable operation identity before execution.
Material changes create a new version and invalidate prior approvals.
Preparation, approval, commitment, reconciliation, verification, and notification are separate states.
Every side effect has a ledger record written before or atomically with submission.
Provider idempotency keys remain stable across retries of the same intent.
Timeouts after submission become unknown states and trigger lookup.
Price, inventory, availability, session, and permission facts have freshness rules.
Approval names action, destination, amount or limit, details, and expiration.
Only one worker owns commitment; expired ownership does not imply no effect.
Verification checks amount, details, final state, and duplicate count.
Partial success enters an explicit compensation or escalation path.
User notification retries independently from the purchase or booking.
Secrets stay outside prompts, logs, messages, and receipts.
Tests cover lost responses, crashes, concurrency, stale approval, and changed intent.