Telling an AI "never move money" is a wish it can misread, ignore, or be talked out of. Making a money-move fail to compile is a guarantee. The difference between asking for safe behaviour and designing so the unsafe thing can't exist.
A demo is a performance where nothing fails, because in a demo there is no wrong moment. Production is the same feature with one difference: the wrong moment is always available. Two holes I found in my own app, and the tests that catch them.
I sat in a meeting about a system my own team built, and I couldn't answer the simple questions. Neither could most of the room. So how does a team work this hard and still not understand its own code?