What it requires. An action that is not safe to run twice, on a path that can run it twice - a retry, a re-planned step, or a user repeating themselves.
Why it matters. Planners retry, and users repeat themselves. Where the action creates, sends or moves money, the second run is a second real-world effect. The remedy is an idempotency key derived from the run itself, so a retry cannot double-charge or double-refund; without one the failure is silent and expensive.
How to fix it. Give the action an idempotency key derived from the request rather than the attempt, or gate it behind a confirmation the planner cannot repeat.
Source. Our refund model implementation
Is this rule worth checking?
Votes and comments are published here. We read them, and we publish what we change with the reasoning — a vote does not move a rule on its own.
