If you’ve spent any time developing with Claude Code, you’ve probably noticed a frustrating pattern: it often forgets to run all the tests — or worse, ignores test failures entirely — and attempts to commit broken code. This article shows a simple way to stop that from happening. I’ll describe how I tried to require the tests to pass with a Git pre-commit hook, why that wasn’t enough, and how I ultimately needed to deny Claude Code direct access to git commit. Background To unders...