about
SWE-CI: Evaluating Agent Capabilities in Maintaining Codebases via CI (arxiv.org)
125 points by mpweiher 209 days ago | hide | past | pdf | 41 comments on HN

In plain words: A new test asks coding agents to keep a real project working as its requirements change over dozens of rounds, not fix one bug once. Built from 100 projects averaging 71 commits, it tracks whether tests pass to show how well agents maintain code.

Abstract · SWE-CI: Evaluating Agent Capabilities in Maintaining Codebases via Continuous Integration

Large language model (LLM)-powered agents have demonstrated strong capabilities in automating software engineering tasks such as static bug fixing. However, in the real world, the development of mature software is typically predicated on complex requirement changes and long-term feature iterations -- a process that static, one-shot repair paradigms fail to capture. To bridge this gap, we propose SWE-CI, the first repository-level benchmark built upon the Continuous Integration loop, aiming to shift the evaluation paradigm for code generation from static, short-term functional correctness toward dynamic, long-term maintainability. The key insight is simple: Maintainability can be revealed by tracking how functional correctness changes over time. The benchmark comprises 100 tasks, each deriving from a real-world code repository with a development history spanning an average of 233 days and 71 consecutive commits. SWE-CI requires agents to systematically resolve these tasks through dozens of rounds of analysis and coding iterations. SWE-CI provides valuable insights into how well agents can sustain code quality throughout long-term evolution.

Jialong Chen, Xander Xu, Hu Wei, Chuan Chen, Bing Zhao
arXiv:2603.03823 · cs.SE, cs.AI, cs.CL · submitted Mar 4, 2026 · updated Apr 1, 2026
abstract · pdf · html

add comment on HN
Also discussed: Mar 2026 (2 points, 0 comments)

Claude wins by a large margin

* Claude Opus 4.6 : 0.71

* Claude Opus 4.5 : 0.51

* KIMI-K2.5 : 0.37

* GLM-5 : 0.36

* GPT-5.2 : 0.23

Note: later GPT versions seem to be only available within openAi's proprietary codex cli, so can't be tested - and if tested via the codex cli "harness" it wouldn't be a pure model-to-model comparison any more.

---

Of course, the interesting follow-up question is: How well perform these models with added agent tooling ("harness") ?

Maybe someone has tokens to burn and can run a matrix of agent tools over the top models and provide the results?

It's the other way around - Claude Code is the proprietary one. Codex CLI is open source:

https://github.com/openai/codex

You can definitely access the latest models via the API. That's how Codex CLI works.

gpt-5.3 was not accessible via API, at least for me

But it was in codex

Ah ha, I know what you're hitting.

5.3-codex is only available via the Responses API, not the Completions API. Two different APIs for model access. If you were using Completions you have to port to Responses. It's not that hard. I did this for my own agent the other week. I think it might be like that for all their new models from now on. Responses is a much more powerful API. It's more like a front to ChatGPT than the underlying models.

I am using responses API (these days I only use responses API when talking to OpenAI)

I'll try again, maybe I was doing something else wrong, or something changed

OK, in that case I'm not sure. But Codex can't hide anything. I don't think there are special codes compiled into the binaries or anything like that.
>if tested via the codex cli "harness" it wouldn't be a pure model-to-model comparison any more.

Well that's already not a very fair comparison, we've known for years (one of the early-ish LLM papers, maybe someone knows which one) that prompting makes an enormous difference on agent performance, and most strikingly, the same prompt that massively boosts performance on one model, can massively reduce performance on another.

So you already need to fine-tune the prompts for the model, if you want anything approaching best results.

Now what's really amusing is that if you run models without their official harness, they can actually do way better on some benchmarks! [0] e.g. On Terminal Bench 2, Claude Opus 4.6 goes from #33 (Claude Code) to #5 (custom harness). Similar results for Codex.

Now, this is "for this one very specific benchmark", but I still thought it was funny, since you'd expect "the harness made by the same company" to be the best for all tasks, but that's clearly not the case. (For specific tasks, it's actually quite trivial to outperform a general purpose harness.)

[0] https://www.tbench.ai/leaderboard/terminal-bench/2.0

I reached the same conclusion. I tried using both for my personal investment ambient using agent-pair programming to build and agentic intelligence layer for stocks and the difference between the 2 models if astounding.
> and if tested via the codex cli "harness" it wouldn't be a pure model-to-model comparison any more.

But the interesting comparison when evaluating coding agent capabilities is to evaluate the offerings given to users.

So this means comparing Claude Code to Codex to whatever CLI tools Kimi, GLM, and others give you.

And it might mean throwing Cursor, OpenCode, Amp, Pi, mini-swe-agent, etc into the mix

We are working on supporting agent harnesses @ www.cliwatch.com, so both 1. LLM model as well 2. LLM model + harness performance can be evaluated against your software/CLI. We also support building evals against your doc suite. End result is that you’ll feel more comfortable shipping CLIs that work for your agentic users!:)
Passing tests doesn’t mean you have a working codebase. Benchmarks that rely on a fixed test suite create a real optimization problem agents (or/and even humans) learn to satisfy the tests rather than preserve the deeper properties that make the system maintainable. AI write test cases which it thinks is easier for it to satisfy and not adhere-ing to business logic

We see this firsthand at Prismor with auto generated security fixes. Even with the best LLMs, validating fixes is the real bottleneck our pipeline struggles to exceed 70% on an internal golden dataset (which itself is somewhat biased).

Many patches technically fix the vulnerability but introduce semantic regressions or architectural drift. Passing tests is a weak signal and proving a fix is truly safe to merge is much harder

Unfortunately the paper doesn’t include gpt 5.3 which was released around the same time as opus 4.6 and also gpt 5.4 few days back. Both are available via api

https://developers.openai.com/api/docs/models/gpt-5.3-codex

IMHO The harness must be used when running these experiments. The model vendors know best on giving the best harness with gpt 5.4 and codex or Claude code with opus 4.6 which makes a big difference if you are running any kind of agentic coding tasks.

I see both Claude and gpt to be neck and neck in coding. Every other model+harness is definitely 3-6 months behind. Right now codex seems to be the best in terms of solving complex bugs, long running tasks, much higher limits and even speed while Claude seems to do well in front end and their cli ux seems nice! Codex app is very good though (wish it wasn’t electron as a memory hog but it’s good)

> model vendors know best on giving the best harness

This was only true for Claude Code for a while. Codex was poor and Gemini was unusable.

Since then Codex has gotten quite good.

It still fubars my code regularly at 11x the price. Github Copilot Agentic Mode + Sonnet 4.6 is stable and inexpensive.
Are you saying they did not use native harnesses like Claude Code or Codex? How did they do it then?
It’d be interesting to see this compared against a human baseline — e.g., a competent engineer with a fixed time budget on the same tasks.
Replace "Agent" with "Employee" and apply the same algorithm. Evaluate employee efficiency. Profit?
I'd unironically (and privately) want to do that with the code of both myself and those around me - to maybe see who I should listen more to, as well as who maybe less (ideally down to the feature level), because everyone has opinions, sometimes loud ones, but some approaches lead to a lot of churn and issues over the years.
> The benchmark comprises 100 tasks, each corresponding on average to an evolution history spanning 233 days and 71 consecutive commits in a real-world code repository.

This seems like a really cool thing to benchmark! Technically it'd be possible to take GitHub repos that the AI orgs probably already have, cross-reference the code against the issues and regressions, and train/validate on that.

The dataset would need to be way bigger to get close to the likes of SWE-bench: https://www.swebench.com/original.html

"Vibe coded stuff gets hard to maintain and will end up buggy." Yeah, so make models that deal with that better, optimize for maintainability and consistency.

Cool to see Claude doing decently though!

> Cool to see Claude doing decently though!

The scales do seem to be tipped in its favor (cf: my other comment in this thread).

The regression rates match what I saw early on with Claude Code on my monorepo. The fix was structural, not model-level: keeping everything in a single tree (packages, tests, docs, CI config) so the agent sees downstream effects of any change. When context is split across repos, agents cheerfully break imports because they literally can't see what depends on what.

Something hard to capture in benchmarks: project-level conventions. A well-maintained CLAUDE.md at the repo root — describing architecture, naming patterns, test conventions — gives the agent context it internalizes before touching code. My regression rate dropped noticeably once I started maintaining that kind of project metadata. Model choice is only half the equation — the other half is how well you've structured the information environment the agent works in.

To me using agents daily, the long term vision with maintainability in mind really makes the difference between us humans and agents, I like the idea. However evaluating long term maintainability over an average of just 500 loc changes does not sound like long term maintainability being measured here
Interesting benchmark.

I can't help but notice that they're benchmarking Opus 4.6 (Anthropic's latest and greatest model) against GPT-5.2 (which is three generations behind OpenAI's latest coding models: GPT-5.2-Codex, GPT-5.3-Codex and the latest GPT-5.4).

As far as I know, OpenAI did not release 5.3 Codex in their API. You can only use it with Codex CLI or app.
It's there, you just need to use it with the responses API. Set model field to 'gpt-5.3-codex'
5.2 and 5.2 Codex is arguably the same gen.
Sure, but one is fine-tuned for what they are testing and one is not.
Would have loved to see a more detailed breakdown of performance by task type. The commit metadata is right there, seems straightforward to tag commits as feature vs refactor vs bug fix vs API change and report per-category numbers.
It interesting to see that the eval set becoming more and more expensive. Previously we just need to evaluate one test set, right now we need to create a lot of diffs and run a lot of tests.
I'm sure with benchmarks like these future LLMs will be optimized to hide regressions by "fixing" test framework too
Isn't misalignment great.
The zero regression rate graph at the end is exactly my experience. Only Opus is useful right now, the rest are juniors.
Really long-term task benchmark showing significant improvements in very recent models, while also showing really bad regression rates across the board.
Uh, Opus 4.6 avoids introducing regressions 75% of the time?
So 1/4 times it does not introduce a regression. That's still pretty bad imo. If 1/4 commits introduced regressions, what would your team do?

We are talking about regressions, what once worked no longer does, and should be measured in 9s

You overestimate many teams I think.
>Alibaba Group