Pith. sign in

REVIEW 3 major objections 6 minor 1 cited by

Satori-SWE: Evolutionary Test-Time Scaling for Sample-Efficient Software Engineering

T0 review · 3 major / 6 minor · reviewed 2026-08-07 · deepseek-v4-flash

Pith's one-line read A 32B coding model can match a 70B baseline on SWE-Bench Verified by evolving patches through selection and mutation, with RL training making the model self-evolve without an external verifier.

desk verdict An interesting method with a likely contaminated headline result; the overlap issue needs to be resolved before the numbers can be trusted. read the letter →

arxiv 2505.23604 v1 pith:IVY2WW6W submitted 2025-05-29 cs.CL cs.AIcs.SE

classification cs.CLcs.AIcs.SE
keywords test-timescalingevolutionaryalgorithmssoftwareengineeringSWE-benchreinforcementlearningpotential-basedrewardshapingcodepatchgenerationmodel
verification ladder T0 review T1 audit T2 compute T3 formal

The pith

A machine-rendered reading of the paper's core claim, the machinery that carries it, and where it could break.

The reading

The paper tries to establish that test-time scaling for real-world software engineering can be made sample-efficient by treating patch generation as an evolutionary process. Instead of drawing many independent candidates and picking the one a verifier likes, EvoScale draws a small batch, keeps the top candidates, and conditions the next batch on them, so the sampling distribution shifts toward higher-scoring patches. To remove the overhead of running a verifier each round, the paper trains the editor with reinforcement learning on a potential-based reward that measures score improvement from one iteration to the next, and argues this keeps the score non-decreasing under a stated monotonicity assumption. On SWE-Bench Verified the resulting 32B model, Satori-SWE-32B, reaches 35.8% greedy accuracy and 41.6% Best@50, matching a 70B model's Best@500 score at roughly one-tenth the sampling cost. If the claim holds, small models can approach the performance of far larger systems on GitHub-issue resolution without large curated datasets or agentic rollouts.

What carries the argument

The argument runs on three mechanisms. First, the mutation operator is the language model itself: at each evolution step the editor generates patches conditioned on the previous iteration's selected patches, avoiding the syntax-breaking random mutations of classical evolutionary strategies. Second, potential-based reward shaping with potential $\Phi(y)=R(x,y)$ converts the final-score objective into a telescoping per-step reward $R(x,y_t)-R(x,y_{t-1})$, which gives a monotonic-improvement guarantee and enables local, per-iteration training. Third, a learned reward model $R$ is used both inside the RL objective and, together with regression and reproduction tests, in the final patch-selection hybrid verifier; at inference the RL-trained model can self-evolve without the reward model.

What would settle it

Take a held-out set of SWE-Bench Verified instances with known ground-truth patches; for each instance, generate the same 50-sample evolutionary pool that produced the paper's Best@50 result, then select the final patch twice---once with the learned reward model, once by executing hidden regression and reproduction tests---and compare resolution rates. If reward-model selection underperforms test-based selection by a large margin, the reward model is not faithful. A second, cheaper check: compute the reward model's binary accuracy on the held-out patches' known labels.

Watch

Extended reading notes

Core claim

The central claim is that correct patches for difficult GitHub issues are rare tail events in a small model's output distribution, and that an evolutionary loop---select, condition, mutate---can concentrate sampling on the high-scoring region with far fewer samples than independent sampling. The paper's specific discovery is that this loop can be internalized: after RL training with the potential reward $\Phi(y)=R(x,y)$ and per-step reward $R(x,y_t)-R(x,y_{t-1})$, the model improves its own reward scores across iterations without an external selector, whereas mutation-SFT alone does not. The result is Satori-SWE-32B, which resolves 35.8% of SWE-Bench Verified greedily and 41.6% at Best@50, matching the 41.0 Best@500 of the 70B SWE-RL baseline while using over 10x fewer samples and fewer than 30K open-source training instances.

Load-bearing premise

The load-bearing premise is that the learned reward model, trained on fewer than two thousand open-source instances and never evaluated against ground-truth labels, is a faithful and non-exploitable proxy for whether a patch actually fixes the issue; the same model both shapes the RL training signal and selects the final patch, so any systematic error in its scoring directly contaminates the self-evolution and Best@N claims.

Editorial extensions

If this is right

  • A 32B pipeline-based editor resolves 35.8% of SWE-Bench Verified greedily, above previous small-model results and within reach of several larger proprietary systems.
  • Best@50 under EvoScale reaches 41.6%, matching the 70B SWE-RL model's Best@500 with over 10x fewer sampled patches.
  • The RL objective guarantees non-decreasing reward scores across evolution iterations, and the effect appears even when conditioning patches are chosen at random rather than by a reward-model selector.
  • EvoScale's wall-clock cost per instance (16.6 seconds at a budget of 10) is about one-sixth that of unit-test selection (92.8 seconds), because self-evolution avoids sandbox execution during search.
  • The evolutionary training stage, not RL alone, is what gives the model iterative self-improvement; removing the potential-based evolution term leaves a model that can sample well but cannot self-refine.

Reading between the lines

Editorial extensions of the paper, not claims the author makes directly.

  • If the learned reward model is a faithful judge of patch correctness, the same evolutionary-training recipe could transfer to other structured-output tasks---such as theorem-proving, data repair, or configuration fixing---where correct answers are rare but an imperfect scorer is available.
  • The paper's Best@N numbers inherit the reward model's blind spots: since $R$ is trained on only 1,889 unique instances and is never checked against ground-truth labels, a fair test would evaluate self-evolved patches by hidden-test execution alone and compare resolution rates with and without reward-model selection.
  • The monotonic-improvement guarantee is about the reward model's score, not about true correctness; if the paper's mechanism evidence were re-plotted against pass/fail on hidden tests, the monotonicity might weaken or disappear.
  • A practical implication the paper leaves implicit: the retriever becomes a bottleneck once editing improves, so gains from EvoScale may grow further if the retriever is also evolved or trained on harder instances.
Share X Bluesky LinkedIn Reddit HN

Editorial analysis

A structured set of objections, weighed in public.

Desk editor's note, referee report, and a circularity audit.

Referee Report

3 major / 6 minor

Summary. The paper proposes EvoScale, an evolutionary test-time scaling method for software engineering: iteratively generate patch samples, select or condition on previous patches, and (with RL training) self-evolve without external verifiers. The authors train a 32B model (Satori-SWE-32B) on ~29K open-source instances and report 35.8 greedy and 41.6 Best@50 on SWE-Bench Verified, claiming parity with Llama3-SWE-RL-70B Best@500 at >10x lower sampling cost. They also present a potential-based RL objective and a monotonic-improvement theorem.

Significance. If the empirical results prove clean, the paper makes a useful contribution: it demonstrates that small models can approach large-model performance on realistic SWE tasks through iterative self-refinement, and it provides a practical RL recipe for learning to mutate patches. The authors evaluate on the external SWE-Bench Verified benchmark, report runtime comparisons, and promise open-sourced code and data. The main concerns are (i) potential train/eval contamination, (ii) a theory that does not cover the actual RL objective, and (iii) reliance on the same learned reward model for both training and final selection, which clouds the claimed self-evolution mechanism. These issues are addressable but are central to the paper's headline claims.

major comments (3)
  1. [Section 5.1 and Appendix D.1] The training pool is stated to come from SWE-Fixer and SWE-Gym. SWE-Gym is built from SWE-bench tasks, and SWE-bench Verified is a subset of SWE-bench. The filtering described in Appendix D.1 does not remove SWE-bench instances. The paper must report the overlap between the 29,404 training instances and the 500 evaluation instances, exclude overlapping instances, and rerun Table 1. Until this is done, the claimed 35.8 greedy and 41.6 Best@50, and the >10x sample-efficiency advantage over Llama3-SWE-RL-70B, are not reliable.
  2. [Section 4.4, Eq. (5) and Eq. (6)] Proposition 1 proves monotonicity only for a myopic argmax policy. The actual policy is trained with Eq. (6), which adds a bonus term R(x,y) not present in Eq. (5), and is stochastic. Therefore the sentence in Section 4.4 ('training with the potential reward in Equation (5) guarantees that R(x,yt) ≥ R(x,yt-1)') is not justified for the trained model. Please either extend the analysis to the actual objective or relax the claim to 'the training objective encourages...' and state explicitly that the theoretical guarantee does not apply to the learned policy.
  3. [Section 4.3 vs Section 5.3 and abstract] The same reward model R is used in the RL objective and in the final patch-selection pipeline. R is trained on only 1,889 unique instances (Appendix D.6) and is never evaluated against ground-truth correctness. As a result, the monotonic self-evolution evidence in Figures 4-6 is essentially improvement in the objective being optimized, and the Best@N numbers in Table 1 depend on this R plus unit tests. Moreover, the abstract's claim that the model self-evolves 'rather than relying on external verifiers at inference time' is contradicted by Section 5.3, which uses both the reward model and unit tests for selection. The paper should report pure self-evolution results on SWE-bench Verified or adjust the abstract and contribution claims.
minor comments (6)
  1. [Section 5.1] The definition of the 'Greedy' metric says 'zero-shot pass@1 accuracy' but then allows up to five random samples until syntactically correct; this is not a strict greedy/pass@1 metric and should be renamed or described differently for fair comparison with other models' greedy numbers.
  2. [Appendix D.2] The text says 'use VERL [27]' but reference [27] is HybridFlow; please correct the citation or the framework name.
  3. [Figure 5 caption] The phrase 'validating our theoretical results' overstates the connection, since Proposition 1 does not apply to the stochastic learned policy; suggest 'consistent with the spirit of Proposition 1'.
  4. [Section 5.3 and Table 1] The comparison with Llama3-SWE-RL-70B is not controlled for model size, scaffold, or retrieval; the '>10x lower sampling cost' claim refers only to patch samples and should be qualified.
  5. [Section 4.4, Assumption 1] Assumption 1 requires that from every patch there exists a finite non-decreasing path; this is not established for the learned reward model and should be either proved for R or discussed as an idealization.
  6. [Abstract and Section 6] The claim 'matching or exceeding models with over 100B parameters' is supported only on SWE-Bench Verified; the paper should avoid implying generality beyond that benchmark.

Circularity Check

2 steps flagged · score 4.0 of 10

External SWE-bench result is not circular, but the monotonic-improvement proof is definitional and the Figure 5 self-evolution validation measures the training objective.

  1. self definitional [Section 4.4, Definition 1 and Proposition 1]
    "Definition 1 (Myopic Policy). Define the one-step action-value Q0(y, y′) = Φ(y′) − Φ(y), y, y′ ∈ Y. The myopic policy π0 selects, at each state y, any successor that maximizes Q0: π0(y) ∈ arg maxy′∈Y Φ(y′) − Φ(y). Proposition 1 (Monotonic Improvement). Under Assumption 1, any trajectory {yt}t≥0 generated by the myopic policy π0 satisfies Φ(yt) ≥ Φ(yt−1) ... Proof. By definition of π0, at each step yt ∈ arg maxy′ Φ(y′)−Φ(yt−1). Hence Φ(yt)−Φ(yt−1) ≥ 0"

    The property to be proven (monotonic Φ increase) is inserted into the definition of π0 as the argmax of the score difference Φ(y′)−Φ(y). Proposition 1 therefore restates the definition; it cannot serve as independent evidence that RL training (Eq. 5/6) yields monotonic improvement. The paper then asserts 'Thus the learned policy produces non-decreasing scores over iterations,' equating the trained policy with the definitionally monotone myopic policy. The guarantee is a tautology for π0 and an unsupported identification for the learned policy, not a derived prediction.

  2. fitted input called prediction [Section 5.2, Figure 5]
    "We further analyze the evolutionary behavior of the SFT and RL models by measuring the average reward score of the patch samples generated at each iteration. ... In contrast, the RL model trained with potential-based reward, naturally learns to self-evolve without any external guidance. Its reward scores improve monotonically across iterations, aligns with our theoretical analysis in Section 4.4."

    The RL objective (Eq. 5, implemented as Eq. 6) trains the policy to maximize R(x,y) − Σ R(x,ȳi) plus an R(x,y) bonus, with the same learned reward model R used in Figure 5. Thus 'average reward score' is the exact quantity being optimized; monotonic R improvement across iterations is the training signal, not an independent measure of self-evolution. The resolved-instance curves in Figures 4 and 6 provide external evidence, but the monotonic-reward validation cited here reduces by construction to the fitted reward model and the training objective.

full rationale

The headline numbers in Table 1 are measured on the external SWE-bench Verified benchmark, and the sample-efficiency comparison to Llama3-SWE-RL-70B is therefore not circular. The self-citations ([25] for evolutionary inspiration, [26] for sparse-reward RL) are not load-bearing; no uniqueness theorem or ansatz is imported from the authors' prior work. The circularity is confined to two places. First, Proposition 1 defines the myopic policy as the argmax of the score difference and then 'proves' monotonicity from that definition; the additional step equating the trained RL policy with this myopic policy is an unsupported identification, so the theoretical guarantee is a tautology rather than a derivation. Second, the self-evolution validation in Figure 5 reports average reward-model scores, which is exactly the training objective of Eq. 5/6 (potential reward plus R bonus), so monotonic improvement in R is the fitted signal being optimized, not independent evidence. Independent resolved-instance curves (Figures 4b and 6) partially support the self-evolution claim, and Table 1 remains externally grounded, which is why the overall score is moderate rather than high. The possible SWE-bench overlap in the SWE-Fixer/SWE-Gym training pool is an evaluation-contamination risk, not a circularity, and is not counted here.

Assumptions & free parameters 4 free parameters · 4 assumptions · 0 invented entities

The central method rests on a few unverified premises: the reward model is a reliable correctness proxy, the teacher model produces correct oracle-matching CoTs, the mutation conditioning transfers to new issues, and the training data is disjoint from SWE-Bench Verified. The formal proof additionally assumes an exact myopic argmax policy that the RL-trained model does not implement.

free parameters (4)
  • Format penalty weight lambda = not reported
    Appears in Eq. (5) and Eq. (6) as lambda*F(y); the value is never stated, and results depend on it to avoid syntax errors.
  • Evolution hyperparameters (M, K, T) = M=10, K=5, T=4 in Section 5.1; M=25, N=50 in Section 5.3
    Sample budget and selection size are chosen by hand and vary across experiments; no sensitivity analysis is given for the main result.
  • Mutation sampling temperature = 1.2
    Selected after comparing 0.7, 1.0, 1.2 in Figure 7; higher temperature improves self-evolution, so the main recipe uses the best-performing value from the same ablation.
  • Bonus reward coefficient = not reported
    Eq. (6) adds an unconditional R(x,y) bonus to the potential reward, but the weighting relative to the potential term is not specified.
assumptions (4)
  • ad hoc to paper Assumption 1 (Phi-monotonicity): from any patch there exists a finite patch sequence with non-decreasing R scores
    Invoked in Proposition 1 and Section 4.4 to claim monotonic improvement; not justified for real SWE patch spaces and not used to verify the trained policy.
  • domain assumption Reward model R(x,y) approximates true patch correctness
    RL training (Eq. 6) and final patch selection (Section 5.3) rely on this learned classifier; its accuracy is never reported, and if it is exploitable the self-evolution gains may not reflect real fixes.
  • domain assumption Teacher model DeepSeek-V3-0324 generates correct CoT traces and oracle-matching patches for SFT data
    Used to synthesize all SFT targets (Appendix D.5); no quality checks beyond filtering are described.
  • domain assumption Training data (SWE-Fixer, SWE-Gym) is disjoint from SWE-Bench Verified
    Required for the benchmark numbers to be uncontaminated; the paper does not demonstrate this.

how reviews work

0 comments
Cite this review

Pith. "Pith review of Satori-SWE: Evolutionary Test-Time Scaling for Sample-Efficient Software Engineering." pith.science (2026). https://pith.science/paper/IVY2WW6W

@misc{pith2026250523604,
  author       = {Pith},
  title        = {Pith review of: Satori-SWE: Evolutionary Test-Time Scaling for Sample-Efficient Software Engineering},
  year         = {2026},
  howpublished = {\url{https://pith.science/paper/IVY2WW6W}},
  note         = {Machine review of arXiv:2505.23604}
}
read the original abstract

Language models (LMs) perform well on standardized coding benchmarks but struggle with real-world software engineering tasks such as resolving GitHub issues in SWE-Bench, especially when model parameters are less than 100B. While smaller models are preferable in practice due to their lower computational cost, improving their performance remains challenging. Existing approaches primarily rely on supervised fine-tuning (SFT) with high-quality data, which is expensive to curate at scale. An alternative is test-time scaling: generating multiple outputs, scoring them using a verifier, and selecting the best one. Although effective, this strategy often requires excessive sampling and costly scoring, limiting its practical application. We propose Evolutionary Test-Time Scaling (EvoScale), a sample-efficient method that treats generation as an evolutionary process. By iteratively refining outputs via selection and mutation, EvoScale shifts the output distribution toward higher-scoring regions, reducing the number of samples needed to find correct solutions. To reduce the overhead from repeatedly sampling and selection, we train the model to self-evolve using reinforcement learning (RL). Rather than relying on external verifiers at inference time, the model learns to self-improve the scores of its own generations across iterations. Evaluated on SWE-Bench-Verified, EvoScale enables our 32B model, Satori-SWE-32B, to match or exceed the performance of models with over 100B parameters while using a few samples. Code, data, and models will be fully open-sourced.

Figures

Figures reproduced from arXiv: 2505.23604 by the authors.

Figure 1
Figure 1. Reward score distri￾bution of outputs from a SFT model, with high-scoring out￾puts concentrated in the long tail. In this paper, we propose Evolutionary Test-Time Scaling (EvoScale), a sample-efficient method for improving test-time per￾formance on SWE tasks. Existing test-time scaling methods often require an excessive number of samples because model outputs are highly dispersed—correct solutions exist but are rare… view at source ↗
Figure 2
Figure 2. Pipeline for SWE Tasks. Given a GitHub issue, the retriever identifies the code files most relevant to the issue. The code editor then generates a code patch to resolve it. Software engineering (SWE) tasks. We study the problem of using LMs to resolve real-world GitHub issues, where each issue consists of a textual description and a corresponding code repository. Since issues are not self-contained, solving them req… view at source ↗
Figure 3
Figure 3. An Overview of Evolutionary Test-Time Scaling. Given a GitHub issue x and its code context C(x), the editor model π first generates a batch of candidate patches Y t . The reward landscape is illustrated with contour lines, where brighter contours indicate a higher score of a scoring function R (e.g., reward model or unit tests). A set of patches E t is selected (e.g., via a scoring function R) and combined with x an… view at source ↗
Figures from the paper (5 more)
Figure 4
Figure 4. Figure 4: Evolutionary Capability of Different Stages of SFT and RL Models. (a) Reward Model selects the top-5 patch candidates from 10 samples from the previous iteration, and the model iteratively evolves by generating new 10 samples conditioned on the candidates. Performance …
Figure 5
Figure 5. Figure 5: Average Reward Score of Patch Samples at Each Evolution Iteration. Reward scores are nor￾malized via a sigmoid function before average. The SFT model struggles to improve reward scores with￾out the guidance of a reward model to select top-K conditional patch samples, w…
Figure 7
Figure 7. Figure 7: Impact of Mutation Sampling Temper￾ature. Higher sampling temperatures in EvoScale encourage greater diversity among mutation samples, leading to more effective iterative improvements. 1 5 10 15 20 25 50 Number of Samples 120 130 140 150 160 170 180 190 200 210 Resolve…
Figure 9
Figure 9. Figure 9: RL with vs. without Self-Evolution Training. Removing evolution training during the RL stage results in a model that lacks iterative self-improvement capabilities. B Demo Examples The core idea of EvoScale is to use a mix of correct and incorrect patches as context to …
Figure 10
Figure 10. Figure 10: Retrieval Pipeline. Given the repository’s file structure, the retrieval model first selects the top-5 candidate files. These candidates are then re-scored by the retrieval reward model based on file content, and the top-ranked (Top-1) file is returned as the final re…

Discussion (0). Sign in to comment.

Forward citations

Cited by 1 Pith paper

Reviewed papers in the Pith corpus that reference this work. Sorted by Pith novelty score. Full citation record

  1. Pushing Forward Pareto Frontiers of Proactive Agents with Behavioral Agentic Optimization

    cs.AI 2026-02 conditional novelty 5.0 of 10

    BAO, a behavior-enhanced SFT plus regularized RL pipeline, improves proactive agents' task performance while lowering user-involvement rate, beating UserRL baselines on three UserRL gym tasks.

Reference graph

Works this paper leans on

113 extracted references · 58 canonical work pages · cited by 1 Pith paper

  1. [1]

    Introducing claude 3.7 sonnet, 2025., 2025

    Anthropic. Introducing claude 3.7 sonnet, 2025., 2025. URL https://www.anthropic.com/ claude/sonnet. 9

  2. [2]

    SWE-search: Enhancing software agents with monte carlo tree search and iterative refinement

    Antonis Antoniades, Albert Örwall, Kexun Zhang, Yuxi Xie, Anirudh Goyal, and William Yang Wang. SWE-search: Enhancing software agents with monte carlo tree search and iterative refinement. In The Thirteenth International Conference on Learning Representations, 2025. URLhttps://openreview.net/forum?id=G7sIFXugTX. 3

  3. [3]

    Le, Christopher Ré, and Azalia Mirhoseini

    Bradley Brown, Jordan Juravsky, Ryan Ehrlich, Ronald Clark, Quoc V . Le, Christopher Ré, and Azalia Mirhoseini. Large language monkeys: Scaling inference compute with repeated sampling, 2024. URL https://arxiv.org/abs/2407.21787. 2, 3

  4. [4]

    Mark Chen, Jerry Tworek, Heewoo Jun, Qiming Yuan, Henrique Ponde de Oliveira Pinto, Jared Kaplan, Harri Edwards, Yuri Burda, Nicholas Joseph, Greg Brockman, Alex Ray, Raul Puri, Gretchen Krueger, Michael Petrov, Heidy Khlaaf, Girish Sastry, Pamela Mishkin, Brooke Chan, Scott Gray, Nick Ryder, Mikhail Pavlov, Alethea Power, Lukasz Kaiser, Mohammad Bavarian...

  5. [5]

    Training verifiers to solve math word problems

    Karl Cobbe, Vineet Kosaraju, Mohammad Bavarian, Mark Chen, Heewoo Jun, Lukasz Kaiser, Matthias Plappert, Jerry Tworek, Jacob Hilton, Reiichiro Nakano, et al. Training verifiers to solve math word problems. arXiv preprint arXiv:2110.14168, 2021. 2, 4

  6. [6]

    Codemonkeys: Scaling test-time compute for software engineering

    Ryan Ehrlich, Bradley Brown, Jordan Juravsky, Ronald Clark, Christopher Ré, and Azalia Mirhoseini. Codemonkeys: Scaling test-time compute for software engineering. arXiv preprint arXiv:2501.14723, 2025. 3

  7. [7]

    Deepseek-r1: Incentivizing reasoning capability in llms via reinforcement learning

    Daya Guo, Dejian Yang, Haowei Zhang, Junxiao Song, Ruoyu Zhang, Runxin Xu, Qihao Zhu, Shirong Ma, Peiyi Wang, Xiao Bi, et al. Deepseek-r1: Incentivizing reasoning capability in llms via reinforcement learning. arXiv preprint arXiv:2501.12948, 2025. 9

  8. [8]

    The cma evolution strategy: A tutorial

    Nikolaus Hansen. The cma evolution strategy: A tutorial. arXiv preprint arXiv:1604.00772,

Show all 113 references
  1. [9]

    Training compute-optimal large language models

    Jordan Hoffmann, Sebastian Borgeaud, Arthur Mensch, Elena Buchatskaya, Trevor Cai, Eliza Rutherford, Diego de Las Casas, Lisa Anne Hendricks, Johannes Welbl, Aidan Clark, et al. Training compute-optimal large language models. arXiv preprint arXiv:2203.15556, 2022. 2, 3

  2. [10]

    Openrlhf: An easy-to-use, scalable and high-performance rlhf framework

    Jian Hu, Xibin Wu, Zilin Zhu, Xianyu, Weixun Wang, Dehao Zhang, and Yu Cao. Openrlhf: An easy-to-use, scalable and high-performance rlhf framework. arXiv preprint arXiv:2405.11143,

  3. [11]

    Reinforce++: An efficient rlhf algorithm with robustness to both prompt and reward models, 2025

    Jian Hu, Jason Klein Liu, and Wei Shen. Reinforce++: An efficient rlhf algorithm with robustness to both prompt and reward models, 2025. URL https://arxiv.org/abs/2501. 03262. 32, 33, 34

  4. [12]

    Qwen2.5-coder technical report, 2024

    Binyuan Hui, Jian Yang, Zeyu Cui, Jiaxi Yang, Dayiheng Liu, Lei Zhang, Tianyu Liu, Jiajun Zhang, Bowen Yu, Keming Lu, Kai Dang, Yang Fan, Yichang Zhang, An Yang, Rui Men, Fei Huang, Bo Zheng, Yibo Miao, Shanghaoran Quan, Yunlong Feng, Xingzhang Ren, Xuancheng Ren, Jingren Zhou...

  5. [13]

    Livecodebench: Holistic and contamination free evaluation of large language models for code

    Naman Jain, King Han, Alex Gu, Wen-Ding Li, Fanjia Yan, Tianjun Zhang, Sida Wang, Ar- mando Solar-Lezama, Koushik Sen, and Ion Stoica. Livecodebench: Holistic and contamination free evaluation of large language models for code. InThe Thirteenth International Conference on Lear...

  6. [14]

    R2e- gym: Procedural environments and hybrid verifiers for scaling open-weights swe agents

    Naman Jain, Jaskirat Singh, Manish Shetty, Liang Zheng, Koushik Sen, and Ion Stoica. R2e- gym: Procedural environments and hybrid verifiers for scaling open-weights swe agents. arXiv preprint arXiv:2504.07164, 2025. 3, 4

  7. [15]

    SWE-bench: Can language models resolve real-world github issues? In The Twelfth International Conference on Learning Representations , 2024

    Carlos E Jimenez, John Yang, Alexander Wettig, Shunyu Yao, Kexin Pei, Ofir Press, and Karthik R Narasimhan. SWE-bench: Can language models resolve real-world github issues? In The Twelfth International Conference on Learning Representations , 2024. URL https: //openreview.net/...

  8. [16]

    Going beyond heuristics by imposing policy improvement as a constraint

    Chi-Chang Lee, Zhang-Wei Hong, and Pulkit Agrawal. Going beyond heuristics by imposing policy improvement as a constraint. Advances in Neural Information Processing Systems, 37: 138032–138087, 2024. 6

  9. [17]

    Let’s verify step by step

    Hunter Lightman, Vineet Kosaraju, Yuri Burda, Harrison Edwards, Bowen Baker, Teddy Lee, Jan Leike, John Schulman, Ilya Sutskever, and Karl Cobbe. Let’s verify step by step. In The Twelfth International Conference on Learning Representations, 2023. 2, 4

  10. [18]

    Deepseek-v3 technical report

    Aixin Liu, Bei Feng, Bing Xue, Bingxuan Wang, Bochao Wu, Chengda Lu, Chenggang Zhao, Chengqi Deng, Chenyu Zhang, Chong Ruan, et al. Deepseek-v3 technical report. arXiv preprint arXiv:2412.19437, 2024. 9

  11. [19]

    Lingma swe-gpt: An open development-process-centric language model for automated software improvement

    Yingwei Ma, Rongyu Cao, Yongchang Cao, Yue Zhang, Jue Chen, Yibo Liu, Yuchen Liu, Binhua Li, Fei Huang, and Yongbin Li. Lingma swe-gpt: An open development-process-centric language model for automated software improvement. arXiv preprint arXiv:2411.00622, 2024. 3, 9

  12. [20]

    Thinking longer, not larger: Enhancing software engineering agents via scaling test-time compute, 2025

    Yingwei Ma, Yongbin Li, Yihong Dong, Xue Jiang, Rongyu Cao, Jue Chen, Fei Huang, and Binhua Li. Thinking longer, not larger: Enhancing software engineering agents via scaling test-time compute, 2025. URL https://arxiv.org/abs/2503.23803. 3

  13. [21]

    Policy invariance under reward transforma- tions: Theory and application to reward shaping

    Andrew Y Ng, Daishi Harada, and Stuart Russell. Policy invariance under reward transforma- tions: Theory and application to reward shaping. In Icml, volume 99, pages 278–287, 1999. 2, 6

  14. [22]

    Training software engineering agents and verifiers with SWE-gym

    Jiayi Pan, Xingyao Wang, Graham Neubig, Navdeep Jaitly, Heng Ji, Alane Suhr, and Yizhe Zhang. Training software engineering agents and verifiers with SWE-gym. In ICLR 2025 Third Workshop on Deep Learning for Code, 2025. URL https://openreview.net/forum?id= lpFFpTbi9s. 1, 2, 3,...

  15. [23]

    Evolution strategies as a scalable alternative to reinforcement learning

    Tim Salimans, Jonathan Ho, Xi Chen, Szymon Sidor, and Ilya Sutskever. Evolution strategies as a scalable alternative to reinforcement learning. arXiv preprint arXiv:1703.03864, 2017. 2

  16. [24]

    Zhihong Shao, Peiyi Wang, Qihao Zhu, Runxin Xu, Junxiao Song, Xiao Bi, Haowei Zhang, Mingchuan Zhang, Y . K. Li, Y . Wu, and Daya Guo. Deepseekmath: Pushing the limits of mathematical reasoning in open language models, 2024. URL https://arxiv.org/abs/ 2402.03300. 3

  17. [25]

    Reliable gradient-free and likelihood-free prompt tuning

    Maohao Shen, Soumya Ghosh, Prasanna Sattigeri, Subhro Das, Yuheng Bu, and Gregory Wornell. Reliable gradient-free and likelihood-free prompt tuning. InFindings of the Association for Computational Linguistics: EACL 2023. Association for Computational Linguistics, 2023. URLhttp...

  18. [26]

    Satori: Reinforcement learning with Chain-of-Action-Thought enhances llm reasoning via autoregressive search

    Maohao Shen, Guangtao Zeng, Zhenting Qi, Zhang-Wei Hong, Zhenfang Chen, Wei Lu, Gregory Wornell, Subhro Das, David Cox, and Chuang Gan. Satori: Reinforcement learning with Chain-of-Action-Thought enhances llm reasoning via autoregressive search. arXiv preprint arXiv:2502.02508...

  19. [27]

    Hybridflow: A flexible and efficient RLHF framework

    Guangming Sheng, Chi Zhang, Zilingfeng Ye, Xibin Wu, Wang Zhang, Ru Zhang, Yanghua Peng, Haibin Lin, and Chuan Wu. Hybridflow: A flexible and efficient RLHF framework. In Proceedings of the Twentieth European Conference on Computer Systems. ACM, 2025. 31

  20. [28]

    Scaling LLM test- time compute optimally can be more effective than scaling parameters for reasoning

    Charlie Victor Snell, Jaehoon Lee, Kelvin Xu, and Aviral Kumar. Scaling LLM test- time compute optimally can be more effective than scaling parameters for reasoning. In The Thirteenth International Conference on Learning Representations , 2025. URL https: //openreview.net/foru...

  21. [29]

    Reinforcement learning: An introduction

    Richard S Sutton and Andrew G Barto. Reinforcement learning: An introduction. 2018. 6

  22. [30]

    Xu, Xiangru Tang, Mingchen Zhuge, Jiayi Pan, Yueqi Song, Bowen Li, Jaskirat Singh, Hoang H

    Xingyao Wang, Boxuan Li, Yufan Song, Frank F. Xu, Xiangru Tang, Mingchen Zhuge, Jiayi Pan, Yueqi Song, Bowen Li, Jaskirat Singh, Hoang H. Tran, Fuqiang Li, Ren Ma, Mingzhang Zheng, Bill Qian, Yanjun Shao, Niklas Muennighoff, Yizhe Zhang, Binyuan Hui, Junyang Lin, Robert Brenna...

  23. [31]

    Swe-rl: Advancing llm reasoning via reinforcement learning on open software evolution

    Yuxiang Wei, Olivier Duchenne, Jade Copet, Quentin Carbonneaux, Lingming Zhang, Daniel Fried, Gabriel Synnaeve, Rishabh Singh, and Sida I Wang. Swe-rl: Advancing llm reasoning via reinforcement learning on open software evolution. arXiv preprint arXiv:2502.18449, 2025. 2, 3, 4...

  24. [32]

    Natural evolution strategies

    Daan Wierstra, Tom Schaul, Tobias Glasmachers, Yi Sun, Jan Peters, and Jürgen Schmidhuber. Natural evolution strategies. The Journal of Machine Learning Research, 15(1):949–980, 2014. 2

  25. [33]

    Agentless: Demystifying llm-based software engineering agents, 2024

    Chunqiu Steven Xia, Yinlin Deng, Soren Dunn, and Lingming Zhang. Agentless: Demystifying llm-based software engineering agents, 2024. URL https://arxiv.org/abs/2407.01489. 1, 2, 3, 4, 9, 14, 30, 31, 34

  26. [34]

    Swe- fixer: Training open-source llms for effective and efficient github issue resolution, 2025

    Chengxing Xie, Bowen Li, Chang Gao, He Du, Wai Lam, Difan Zou, and Kai Chen. Swe- fixer: Training open-source llms for effective and efficient github issue resolution, 2025. URL https://arxiv.org/abs/2501.05040. 1, 2, 3, 5, 7, 9

  27. [35]

    SWE-agent: Agent-computer interfaces enable automated soft- ware engineering

    John Yang, Carlos E Jimenez, Alexander Wettig, Kilian Lieret, Shunyu Yao, Karthik R Narasimhan, and Ofir Press. SWE-agent: Agent-computer interfaces enable automated soft- ware engineering. In The Thirty-eighth Annual Conference on Neural Information Processing Systems, 2024. ...

  28. [36]

    Jimenez, Alexander Wettig, Kabir Khandpur, Yanzhe Zhang, Binyuan Hui, Ofir Press, Ludwig Schmidt, and Diyi Yang

    John Yang, Kilian Leret, Carlos E. Jimenez, Alexander Wettig, Kabir Khandpur, Yanzhe Zhang, Binyuan Hui, Ofir Press, Ludwig Schmidt, and Diyi Yang. Swe-smith: Scaling data for software engineering agents, 2025. URL https://arxiv.org/abs/2504.21798. 2, 3, 5

  29. [37]

    Autocoderover: Au- tonomous program improvement

    Yuntong Zhang, Haifeng Ruan, Zhiyu Fan, and Abhik Roychoudhury. Autocoderover: Au- tonomous program improvement. In Proceedings of the 33rd ACM SIGSOFT International Symposium on Software Testing and Analysis, pages 1592–1604, 2024. 9 12 Appendix A Additional Experiments 13 B ...

  30. [38]

    Generate correct patches even when all prior patches are incorrect—essential for making progress when initial generations fail

  31. [39]

    Generate correct patches when most prior patches are incorrect—common in practice, requiring the model to identify and build on the few correct ones

  32. [40]

    dim_0",

    Preserve correctness when all prior patches are correct—ensuring the model doesn’t over-edit and degrade already correct solutions. We present examples below to illustrate each of these capabilities. B.1 Type 1: Prior patches are all wrong Problem Statement 1 sum: min_count is...

  33. [41]

    Peer Patch Review: - All five patches are essentially identical in their approach to solving the issue. They all modify the same section of code in _maybe_null_out() to handle the case where axis is a list/tuple by calculating the product of the sizes of the reduced dimensions...

  34. [42]

    Issue Analysis: - The problem occurs when using sum() with min_count on multiple dimensions because the current code only checks the size of one dimension (the first in the axis list) rather than the total number of elements being reduced. ,→ ,→ - The intended behavior is that...

  35. [43]

    ,→ ,→ - For single dimension reductions, we can keep the existing behavior of using just mask.shape[axis]

    Solution Approach: - The key change needed is in the _maybe_null_out() function where it calculates null_mask for multi-dimensional reductions.,→ 17 - When axis is a list/tuple, we should calculate the total number of elements being reduced by taking the product of the sizes o...

  36. [44]

    "" if hasattr(axis,

    Code Localization: - The issue is in xarray/core/nanops.py in the _maybe_null_out() function. - The specific location is where it calculates null_mask for multi-dimensional reductions (when axis is not None and result has ndim).,→ - The current code uses mask.shape[axis] which...

  37. [45]

    Mul"] - 1 might be too low since we want to group at the same level as MUL args,→ - Patch 2: - Uses PRECEDENCE[

    Peer Patch Review: - Patch 1: - Correctly identifies the need to use a lower precedence than MUL to force parentheses - The solution is reasonable since MUL precedence is high enough to always add needed parens - However, using PRECEDENCE["Mul"] - 1 might be too low since we w...

  38. [46]

    Issue Analysis: - The issue shows that when a Subs expression is multiplied by a coefficient (like 3*Subs(-x+y, (x,),(1,))), the expression inside Subs isn't properly parenthesized in LaTeX output,→ - The current code just prints the expression directly without considering its...

  39. [47]

    Solution Approach: - The key is to modify the _print_Subs method to always parenthesize the expression using the MUL precedence level,→ - This ensures that when Subs appears in a multiplication context, it will be properly grouped with parentheses,→ - Using MUL precedence is a...

  40. [48]

    <stdin>", line 1, in <module> File

    Code Localization: - The issue is in sympy/printing/latex.py in the _print_Subs method - The current implementation directly prints the expression without any parenthesizing - We need to modify it to use the parenthesize method with MUL precedence Evolved Patch diff --git a/sy...

  41. [49]

    x is in S

    Peer Patch Review: - Patch 1: This patch correctly identifies that the set being contained in (self.args[1]) is the most meaningful set representation of a Contains object. The implementation is simple and correct. ,→ ,→ - Patch 2: Similar to Patch 1 but with slightly differen...

  42. [50]

    Issue Analysis: - The issue occurs when Contains.as_set() returns the Contains object itself instead of a proper set.,→ - This causes problems because other code expects a set with as_relational() method. - The correct behavior should be to return the set that x is being teste...

  43. [51]

    x is in S

    Solution Approach: - The simplest and most correct solution is to modify as_set() to return self.args[1], which is the set being tested for containment.,→ - This matches the mathematical interpretation that Contains(x, S) means "x is in S", so the set representation is just S....

  44. [52]

    x is in S

    Code Localization: - The issue is in sympy/sets/contains.py in the Contains class. - The problematic method is as_set() which currently raises NotImplementedError. - The fix is to modify this method to return self.args[1]. Evolved Patch diff --git a/sympy/sets/contains.py b/sy...

  45. [53]

    Peer Patch Review: - Patch 1: - Correctly identifies the need to modify the mode attribute when accessed - Uses __getattr__ to intercept the mode attribute and remove 'b' - Simple and effective solution that matches the issue requirements - Correctly maintains all other attrib...

  46. [54]

    Issue Analysis: - The problem occurs when youtube-dl checks the mode of the captured output stream - It sees 'b' in the mode and tries to write bytes when the EncodedFile expects str - The solution needs to make the EncodedFile appear as a text stream (no 'b' in mode) - While ...

  47. [55]

    Solution Approach: - The key is to intercept access to the 'mode' attribute of the underlying buffer - When 'mode' is accessed, we should return the mode string with 'b' removed - All other attribute access should continue to work normally from the buffer - This matches exactl...

  48. [56]

    ""Ensure that file.name is a string

    Code Localization: - The issue is in the EncodedFile class in src/_pytest/capture.py - Need to modify the class to add a mode property that removes 'b' from the underlying buffer's mode - All other behavior should remain unchanged Evolved Patch diff --git a/src/_pytest/capture...

  49. [57]

    Peer Patch Review: - Patch 1: - Correctly identifies the need to zero-pad the year using '%04d' - The comment explains the issue well for years < 1000 - Simple and correct solution that matches the issue requirements - Patch 2: - Similar to Patch 1 but with slightly different ...

  50. [58]

    4 digits

    Issue Analysis: - The issue states that DateFormat.Y() should always return a 4-digit year padded with zeros - Currently it returns the raw year number which doesn't zero-pad for years < 1000 - The fix requires modifying the Y() method to format the year as a 4-digit string wi...

  51. [59]

    Solution Approach: - The solution is to modify the Y() method to use string formatting with '%04d' - This will ensure the year is always returned as a 4-character string with leading zeros if needed - The change is simple and focused on just the Y() method where the issue occurs

  52. [60]

    Year, 4 digits; e.g. '1999'

    Code Localization: - The issue is in django/utils/dateformat.py in the DateFormat class - The problematic method is Y() which currently just returns self.data.year - Need to modify it to return '%04d' % self.data.year instead Evolved Patch diff --git a/django/utils/dateformat....

  53. [61]

    Enclose reasoning process within `<think>...</think>`

  54. [62]

    Always return exactly 5 files, Do Not output less than 5 or more than 5 files

    Please only provide the full path and return 5 most important files. Always return exactly 5 files, Do Not output less than 5 or more than 5 files

  55. [63]

    Wrap all files together within `<file>...</file>`

    The returned files should be separated by new lines ordered by most to least important. Wrap all files together within `<file>...</file>`

  56. [64]

    ### Examples ### <think>

    Do not include any explanations after `</think>`, only provide the file path within `<file>...</file>`. ### Examples ### <think>

  57. [65]

    Check the files in provided repository structure for relevance

  58. [66]

    </think> <file> file1.py file2.py file3.py file4.py file5.py </file> --- Please provide your response below

    Confirm that the issue might be most relevant to 5 relevant files... </think> <file> file1.py file2.py file3.py file4.py file5.py </file> --- Please provide your response below. Prompt Template — Retrieval Reward Model You are an expert software engineer and seasoned code revi...

  59. [69]

    - Explain how each snippet relates to the sub-task

    **Code Localization and Editing**: For each sub-task: - Identify relevant code snippets by file path and code location. - Explain how each snippet relates to the sub-task. - Describe how the code should be changed and justify your reasoning. - After thorough explanation, provi...

  60. [79]

    </think> ```python # Final patch here (must match the oracle patch exactly) ``` --- Please provide your response

    Apply necessary changes... </think> ```python # Final patch here (must match the oracle patch exactly) ``` --- Please provide your response. Prompt Template — Code Editing Model (Classical SFT) You are an expert software engineer and seasoned code reviewer, specializing in bug...

  61. [80]

    Explain what the problem is, why it matters, and what 36 the intended behavior should be

    **Issue Analysis**: Start by thoroughly analyzing the issue. Explain what the problem is, why it matters, and what 36 the intended behavior should be. Identify the key goals and constraints that must be addressed in your solution

  62. [84]

    Justify the exclusion of any sections that are not relevant.,→

    **Comprehensive and Concise**: Address all relevant aspects of the issue comprehensively while being concise. Justify the exclusion of any sections that are not relevant.,→

  63. [93]

    The end of the replace block: >>>>>>> REPLACE If, in `Files to be Modified` part, there are multiple files or multiple locations in a single file require changes. You should provide separate patches for each modification, clearly indicating the file name and the specific locat...

  64. [95]

    Apply necessary changes... </think> ```python ### mathweb/flask/app.py <<<<<<< SEARCH from flask import Flask ======= import math from flask import Flask >>>>>>> REPLACE ``` ```python ### mathweb/utils/calc.py <<<<<<< SEARCH def calculate_area(radius): return 3.14 * radius * r...

  65. [96]

    Identify whether each patch resolves the issue correctly, partially, or incorrectly

    **Patch Review**: Carefully evaluate each of the several candidate patches **individually**. Identify whether each patch resolves the issue correctly, partially, or incorrectly. If you identify any issues (e.g., logical errors, misunderstandings of the bug, overlooked edge cas...

  66. [97]

    Your patch should:,→ - Be grounded solely in the issue description and provided source code

    **Patch Synthesis**: After analyzing all several candidate patches, synthesize your understanding to produce your **own final code patch** that fully resolves the issue. Your patch should:,→ - Be grounded solely in the issue description and provided source code. - Be informed ...

  67. [100]

    - Explain how each snippet relates to the sub-task

    **Code Localization and Editing**: For each sub-task: - Identify relevant code snippets by file path and code location. - Explain how each snippet relates to the sub-task. - Describe how the code should be changed and justify your reasoning. - Incorporate useful insights from ...

  68. [101]

    Do not reference or imply knowledge of the oracle patch.,→

    **Independent and Evidence-Based Reasoning**: Your reasoning must be constructed as if independently derived, based solely on the issue and code. Do not reference or imply knowledge of the oracle patch.,→

  69. [102]

    **Clarity and Justification**: Ensure that each reasoning step is clear, well-justified, and easy to follow

  70. [103]

    **Comprehensiveness with Focus**: Address all relevant components of the issue while remaining concise and focused.,→

  71. [104]

    **Faithful Final Output**: Your final code output must match the oracle patch exactly

  72. [105]

    based on the oracle,

    **Strict Neutrality**: Treat the oracle patch purely as a grading mechanism. Any hint of knowing the patch in your reasoning (e.g., “based on the oracle,” “we can verify,” or “as we see in the patch”) will result in exam failure. ,→ ,→ --- # Response Format

  73. [107]

    The final oracle patch should be output in a standalone Python code block *after* the </think> block

  74. [108]

    Example: <think>

    Do not include any commentary or justification after the </think> block. Example: <think>

  75. [109]

    - Review of patch-2:

    Review of candidate patch: - Review of patch-1: ... - Review of patch-2: ... -

  76. [111]

    Locate the relevant code... 38

  77. [112]

    </think> ```python # Final patch here (must match the oracle patch exactly) ``` --- Please provide your response

    Apply necessary changes... </think> ```python # Final patch here (must match the oracle patch exactly) ``` --- Please provide your response. Prompt Template — Code Editing Model (Mutation SFT) You are an expert software engineer and seasoned code reviewer, specializing in bug ...

  78. [113]

    Identify whether each patch resolves the issue correctly, partially, or incorrectly

    **Patch Review**: Carefully evaluate each of the five candidate patches **individually**. Identify whether each patch resolves the issue correctly, partially, or incorrectly. If you identify any issues (e.g., logical errors, misunderstandings of the bug, overlooked edge cases,...

  79. [114]

    Your patch should:,→ - Be grounded solely in the issue description and provided source code

    **Patch Synthesis**: After analyzing all five candidate patches, synthesize your understanding to produce your **own final code patch** that fully resolves the issue. Your patch should:,→ - Be grounded solely in the issue description and provided source code. - Be informed by ...

  80. [115]

    Explain what the problem is, why it matters, and what the intended behavior should be

    **Issue Analysis**: Start by thoroughly analyzing the issue. Explain what the problem is, why it matters, and what the intended behavior should be. Identify the key goals and constraints that must be addressed in your solution.,→

  81. [116]

    Describe the purpose of each sub-task and how it contributes to solving the overall problem.,→

    **Task Decomposition**: Break down the issue into smaller, manageable sub-tasks. Describe the purpose of each sub-task and how it contributes to solving the overall problem.,→

  82. [117]

    - Explain how each snippet relates to the sub-task

    **Code Localization and Editing**: For each sub-task: - Identify relevant code snippets by file path and code location. - Explain how each snippet relates to the sub-task. - Describe how the code should be changed and justify your reasoning. - After thorough explanation, provi...

  83. [118]

    **Clear and Evidence-Based Reasoning**: Provide clear and precise reasoning for each step, strictly based on the provided issue and code without inferring information not explicitly stated.,→

  84. [119]

    Justify the exclusion of any sections that are not relevant.,→ 39

    **Comprehensive and Concise**: Address all relevant aspects of the issue comprehensively while being concise. Justify the exclusion of any sections that are not relevant.,→ 39

  85. [120]

    **Detailed Guidance**: Ensure the reasoning steps are detailed enough to allow someone unfamiliar with the solution to infer and implement the necessary code modifications.,→ --- # Response Format

  86. [121]

    </think>

    The reasoning process should be enclosed in <think> ... </think>

  87. [122]

    The final patch should be output in a standalone Python code block *after* the </think> block

  88. [123]

    --- # Patch Format Please generate *SEARCH/REPLACE* edits to fix the issue

    Do not include any commentary or justification after the </think> block. --- # Patch Format Please generate *SEARCH/REPLACE* edits to fix the issue. Every *SEARCH/REPLACE* edit must use this format:

  89. [124]

    The start of search block: <<<<<<< SEARCH

  90. [125]

    A contiguous chunk of lines to search for in the existing source code

  91. [126]

    The dividing line: =======

  92. [127]

    The lines to replace into the source code

  93. [128]

    You should provide separate patches for each modification, clearly indicating the file name and the specific location of the modification

    The end of the replace block: >>>>>>> REPLACE If, in `Files to be Modified` part, there are multiple files or multiple locations in a single file require changes. You should provide separate patches for each modification, clearly indicating the file name and the specific locat...

  94. [129]

    However, it fails to consider Z

    Review of candidate patch: - Review of patch-1: This patch attempts to fix X by modifying function Y. However, it fails to consider Z... - Review of patch-2: ... - Review of patch-3: ... - Review of patch-4: ... - Review of patch-5:

  95. [130]

    Analyze the issue by myself

  96. [131]

    Locate the relevant code

  97. [132]

    Apply necessary changes... </think> ```python ### mathweb/flask/app.py <<<<<<< SEARCH from flask import Flask ======= import math from flask import Flask >>>>>>> REPLACE ``` ```python ### mathweb/utils/calc.py <<<<<<< SEARCH def calculate_area(radius): return 3.14 * radius * r...

  98. [135]

    Issue reproduced

    Prints exactly one of: * `"Issue reproduced"` – bug still present (via AssertionError) * `"Issue resolved"` – bug fixed / expectations met * `"Other issues"` – unexpected exception unrelated to the Issue Reuse helpers from *Original tests* only if indispensable; otherwise keep...

  99. [136]

    </think>` block

    Wrap **all reasoning** in a `<think> ... </think>` block. *Inside `<think>* you may explain how you interpreted the Issue and designed the test **without** mentioning or implying knowledge of the Test patch or any oracle.*,→

  100. [137]

    Issue reproduced

    After `</think>`, output **only** the final test script in a single Python code block. Example skeleton *(follow this pattern exactly)*: ```text <think> your independent reasoning here (no references to test_patch/oracle) </think> ```python # All necessary imports def test_<me...

  101. [138]

    **Reproduces _only_ the bug described in the Issue** when the bug is present

  102. [139]

    Issue resolved

    **Passes** (prints `"Issue resolved"`) once the bug has been fixed

  103. [140]

    Issue reproduced

    Prints exactly one of: * `"Issue reproduced"` – bug still present (via AssertionError) * `"Issue resolved"` – bug fixed / expectations met * `"Other issues"` – unexpected exception unrelated to the Issue --- ## Response Format (**strict**)

  104. [141]

    </think>` block

    Wrap **all reasoning** in a `<think> ... </think>` block. *Inside `<think>* explain how you interpreted the Issue and designed the test **without referencing any hidden tools, patches, or external files.***,→

  105. [142]

    Issue reproduced

    After `</think>`, output **only** the final test script in a single Python code block. Example skeleton *(follow this pattern exactly)*: <think> your independent reasoning here (no references to other tests or oracles) </think> ```python # All necessary imports def test_<meani...

Pith tools

Reviewed August 7, 2026 · model on record in the stance chip above.