A confirmation dialog that shows the change list first — grouped create/update/delete counts, expandable before → after rows, type-to-confirm past a destructive threshold, and a failure state that keeps the plan on screen.
npx shadcn@latest add @zyeon/diff-confirmZyeon UI limits how often it can be asked, and Diff Confirm hasn't had its turn. Its source will show here once it has.