Separating test generation from code repair prevents agents from hiding mistakes in their own feedback loops, enabling execution-based learning to actually improve code quality.
ExecCritic trains coding agents to write better tests and use those tests to fix code bugs. The key insight: when one agent writes both the test and the fix, errors can hide from each other. By splitting the work—one agent writes tests, another fixes code based on test results—the system catches more bugs. On real repository fixes, this approach improves success rates from 61% to 73%.