# Testing conventions - Prefer integration tests over mocks. Mocks mask production divergence; real systems catch real failures. - Automate everything automatable. Manual testing only for nuanced UI/UX or agent interaction behaviour requiring human judgment. - Test observable end-state, not implementation internals. Tests must survive refactoring. - No test is better than a wrong test. A passing mock that masks a real failure is actively harmful. - A clean result can mean nothing ran. Before trusting a new check, prove it fails against a deliberately-bad fixture, then run it against the real target. Where a check can scan zero inputs, assert on the input count, not just the exit code — a zero-file run and a real clean pass look identical otherwise.