Disagree that they are bad at enforcing.
In a single session? Agree. The agent is bad at enforcing rules against itself. In a multi-agent, disconnected session setup? You'll see that this works very well.
Rules and code are both just text, after all.