On making the mistake hard rather than relying on care, a few things that actually work:
Never alias or script the remote flag away. The typing is the safety mechanism. Anything that makes hitting production as convenient as hitting local removes the only friction you have.
Put the destructive commands in named scripts that state their target in the name. Something you invoke by a name containing the word production is a different act from adding a flag to a command you run all day.
Make the prompt tell you. If you spend a lot of time in these commands, having the environment visible in your shell prompt or terminal title is worth the setup.
Read the output. Wrangler prints which database and which environment it acted on. It is easy to skim past and it is the confirmation you already have.
Query something identifying before you write. A single select of a row count, or of a known test row, takes two seconds and tells you where you are. I do this before anything destructive and it has caught me twice.
And for genuinely destructive operations on production, the honest answer is to not run them ad hoc at all. Put them in a migration or a reviewed script, so there is a record and a moment of deliberation.