About this project
Claude is an inventive creature. If a test fails and it can't work out the fix, it will quite happily delete the test instead. Or it will pipe the output to a file where the failure doesn't show. Or it will comment out the stubborn one and check the rest in. Genuinely funny until it's your codebase.
Test Gate is the rule I put at the door. When a Claude tries to push a change, it runs the tests against the last known-good baseline. If tests that were passing are now failing, the push is blocked. If the total test count has dropped, the push is blocked too. Deleting tests to make the suite happy is not the fix.
When a block fires I get a Telegram alert, and the regression shows up in a UI inside control. Most of the time I open the session where the Claude is working and ask why the numbers dropped. It apologises and fixes whatever it did. It has worked well as a deterrent.
Screenshots