The ExecCritic paper reports a counterintuitive result for coding agents: adding generated tests can make a repair agent worse when those tests encode the wrong behavior. On SWE-bench Verified, the authors hold the base Repair agent fixed and report that tests from their base Test agent reduce the resolved rate from a 61.2% no-test baseline to 57.3%, while tests generated by GPT-5.6 Sol raise it to 65.3%.

That result matters because many agentic coding systems treat execution feedback as inherently trustworthy. ExecCritic argues that the feedback channel has its own failure mode. If an agent writes a bad test and then repairs code to satisfy that test, the system can become more confident while moving farther from the repository behavior the issue actually requires.

The paper separates the agent that tests from the agent that repairs

ExecCritic uses two roles. A Test agent produces repository-native tests intended to capture the behavior described by an issue. A fail-closed harness then qualifies and freezes those tests. A separate Repair agent changes source code using the execution feedback, but it is not allowed to modify the tests.

The authors use Qwen-3.5-35B-A3B for both roles and train them separately. The paper calls the two training stages Learn to Test and Test to Improve. The public repository includes the behavior-contract testing path, repair orchestration and official SWE-bench verification tooling.

The architecture is important because it removes one easy form of self-confirmation. The same trajectory cannot silently weaken its own test after seeing that a patch fails. Once the test is accepted by the harness, it becomes a fixed constraint for the repair loop.

Bad tests are not neutral feedback

The most useful result is not the final benchmark number. It is the comparison showing that execution feedback can have negative value.

With the base Repair agent unchanged, the authors report a 61.2% resolved rate without generated tests. Adding tests from the base Test agent lowers that result to 57.3%. Using tests generated by GPT-5.6 Sol raises it to 65.3%. In other words, the presence of an executable test does not make the signal reliable. Test quality determines whether the feedback helps or harms.

That creates a practical warning for coding-agent platforms. A green generated test can be misleading when the test itself misunderstands the issue, checks only an easy proxy, or shares the same mistaken assumption as the patch.

Training the verifier changes the composition

The paper reports that role-specific post-training raises the Qwen Test agent's Base-to-Gold success from 22.2% to 62.2%. When the trained Test and Repair agents are composed, the authors report 72.6% on SWE-bench Verified, 11.4 percentage points above the original no-test baseline.

These are author-reported results from a new arXiv preprint, not independently reproduced production measurements. The composed system also uses additional test-generation and revision work, so the final comparison should not be read as a compute-matched model-quality gain.

Still, the experiment isolates an important systems variable: improving the quality of the verification artifact changes whether the repair loop benefits from feedback.

The verifier should have less freedom than the producer

The Aipolix analysis is that ExecCritic supports a broader engineering rule for agents: the component producing a change should not have unrestricted control over the evidence used to accept that change.

In software delivery, that means generated tests need their own qualification path. A repair agent can propose code, but acceptance evidence should be frozen, externally checked or derived from an independent role before the repair loop optimizes against it.

This is similar to keeping deployment gates outside the process that produces an artifact. If the producer can rewrite the gate whenever it fails, the gate stops being a meaningful control.

Fail-closed qualification is the more transferable idea

ExecCritic's fail-closed harness is especially relevant beyond the specific training recipe. The harness attempts to determine whether a generated test is suitable before allowing it to guide repair. Once qualified, the test is frozen.

For enterprise coding agents, an equivalent control could include checking that a generated test fails on the buggy base state, passes on a known-correct reference when one exists, targets behavior described in the issue, and does not simply encode implementation details introduced by the agent.

Not every repository will have a Gold patch or benchmark oracle. That makes the qualification problem harder in real development than in SWE-bench. Teams may need human review, existing regression suites, specification checks or independent agents to judge whether a newly generated test deserves authority.

Benchmark gains should not hide the extra execution loop

The headline 72.6% result is useful evidence, but the architectural lesson is stronger than the score. ExecCritic adds a test-generation stage, a qualification gate, repair revision and official verification. Those steps consume more inference and execution than a one-shot repair baseline.

Teams evaluating a similar design should therefore measure accepted fixes per unit of cost and latency, not only resolved rate. They should also track how often generated tests are rejected, how often they contradict existing tests, and whether test failures reveal real behavioral defects or merely artifacts of the generated specification.

What coding-agent teams should take from ExecCritic

The paper suggests that "run tests and revise" is not enough as an agent strategy. The system must decide which tests are allowed to become feedback.

A useful production pattern is to separate test generation from repair, qualify tests before they can steer the patch, freeze accepted verification evidence during the repair loop, and keep final repository acceptance in the existing CI and review path.

ExecCritic is still preliminary research, and its reported gains need broader reproduction. But the negative result is already operationally valuable: generated execution feedback can make an agent worse when the verifier is wrong. More feedback is not automatically better feedback.

Sources
- https://arxiv.org/abs/2609.09133
- https://github.com/MSR-Orchard/execcritic