
TL;DR
A calibrated study on real ConflictBench Java conflicts finds LLM agents match the developer's own resolution on 55-59% of true conflicts versus 36.7% for the best structured tool. The edge is coverage, not accuracy: the tools abstain on 20-90% of conflicts, the LLM on none.
Merge conflicts are the tax every parallel workflow pays, and the structured merge tools built to automate them (JDime, IntelliMerge, AutoMerge, FSTMerge) share a common failure mode: when their heuristics do not apply, they abstain and leave the conflict for a human. A new study from Virginia Tech asks whether an LLM agent can do better, and measures the answer on real Java conflicts with a judge that is calibrated against human labels before it grades anything.
The headline: on true conflicts, the LLM solvers match the developer's own resolution on 55.1% (OpenAI) and 61.7% (Gemini), versus 36.7% for the strongest structured tool. The edge is almost entirely coverage, not accuracy. When a structured tool does fire, it is competitive. It just fires far less often.
The researcher, Bowen Shen, built a harness called ConflictAgent on top of ConflictBench's 180 scenarios: 106 are Java, 93 are reconstructable into complete base/left/right triples, and all 93 were fed to each LLM. The scored population narrows further to 67 scenarios (49 true conflicts, 18 false), where the developer's resolution region can be reliably extracted.
The solver is a generate-validate-retry agent with a strict information diet. It reconstructs the diff3 file with git merge-file --diff3, selects the target conflict block, builds a windowed prompt (the package/import/type skeleton plus the smallest complete brace scope enclosing the block), generates a resolution, and validates it with three inference-time signals only: no leftover conflict markers, a clean javalang parse, and no duplicate declarations. Validation failures feed back into up to four retries. It never sees the developer's answer or any judge verdict.
The two solvers were OpenAI's gpt-5.4-2026-03-05 and Gemini 3.5 Flash. The judge, deliberately, was a different vendor from both: claude-sonnet-4-6 at temperature 0, so no solver gets a self-preference. Before grading anything, the judge was calibrated against 292 human-labeled cases from ConflictBench. The meta-evaluation is the methodological core: 100% precision (zero false accepts) at 64.6% recall, accuracy 78.1%. Zero false accepts means every "acceptable" verdict is trustworthy, and every rate in the paper is a conservative lower bound, since the judge under-credits acceptable alternatives.
From the archive
Jul 31, 2026 • 8 min read
Jul 31, 2026 • 7 min read
Jul 31, 2026 • 7 min read
Jul 31, 2026 • 12 min read
Developer-match rates on true conflicts (validated judge, threshold 0.5):
| Solver | Developer-match | Pooled |
|---|---|---|
| OpenAI (gpt-5.4) | 27/49 = 55.1% | 56/96 = 58.3% |
| Gemini (3.5 Flash) | 29/47 = 61.7% | - |
The coverage-fair comparison against the five ConflictBench tools tells the fuller story:
| Resolver | Among-resolved | Overall | Abstentions (of 49) |
|---|---|---|---|
| LLM Gemini | 61.7% | 59.2% | 0 |
| LLM OpenAI | 55.1% | 55.1% | 0 |
| AutoMerge | 47.4% | 36.7% | 10 |
| JDime | 54.8% | 34.7% | 16 |
| IntelliMerge | 48.1% | 26.5% | 22 |
| FSTMerge | 28.6% | 12.2% | 18 |
| KDiff3 | 50.0% | 4.1% | 45 |
When JDime fires, it matches the developer at 54.8%, essentially tied with the LLMs. The tools abstain on 20-90% of conflicts because their structural assumptions do not hold, and every abstention is a human merge. The LLM under forced resolution abstains on none.
Structural validity ran as a separate, deterministic check: no leftover markers, parses as Java, no duplicate declarations. LLM resolutions passed 92/96 (95.8%) on true conflicts, and the 4 failures were all retries-exhausted cases. But the paper's most important finding is about the judge: of the 5 resolutions that failed the deterministic structural check, the LLM judge accepted 4. Structural correctness cannot be delegated to an LLM, even one that is otherwise calibrated. That is a finding with a shelf life well beyond merge conflicts.
Merge automation now has two regimes. Structured tools give you high precision when their heuristics apply, and silence otherwise. LLMs give you a plausible resolution for everything, 55-59% of the time matching what the developer actually did. Those are complementary, not competing: a sane pipeline runs the structured tool first, then lets an LLM take the abstained cases, gated by deterministic checks, never by an LLM's opinion of its own output.
This is the realistic shape of agentic merge handling. Teams already hit merge conflicts constantly when parallel coding agents touch shared files - the exact problem we covered in Git worktrees for parallel Claude agents and Claude Code worktrees. The paper's windowed-prompt trick (skeleton plus smallest complete brace scope, not the whole file) is a good pattern for anyone building that: it keeps the token cost flat and the context tight, which our coverage of context files and agent ablation suggests is exactly where agents behave best.
Reduce the number of conflicts you have to resolve. 55% match is a floor, and the study does not pretend otherwise - the judge's 64.6% recall means it under-credits good alternatives, so the true rate is higher. But no tool makes conflicts fun. GitHub's stacked PRs attack the same cost from the other direction: smaller, ordered, fast-merging PRs produce fewer and smaller conflicts in the first place. The best merge resolution is the one that never happens.
Caveats: Java only, 49 scored true conflicts, one snapshot of three model versions, and the judge is a single model at a single threshold. The harness is released as an open engineering artifact, so the methodology can be rerun as models improve. That matters: if the match rate climbs toward 70-80% with the next model generation, the default position on merge conflicts shifts from "human resolves, tools help" to "agent proposes, human reviews".
Read next
Running multiple Claude Code agents on the same repo causes branch collisions and stash chaos - git worktrees fix this by giving each agent its own isolated directory while sharing one Git history.
7 min readGitHub's stacked pull requests went into public preview on July 30. Stacks turn one large change into an ordered chain of small, reviewable PRs with one-click merge, plus a gh-stack skill for coding agents.
7 min readGitHub's June Copilot review updates point to a practical policy stack for agent-authored pull requests: validation, review depth, repo instructions, attribution, and release-note accountability.
8 min readTechnical content at the intersection of AI and development. Building with AI agents, Claude Code, and modern dev tools - then showing you exactly how it works.
Gives AI agents access to 250+ external tools (GitHub, Slack, Gmail, databases) with managed OAuth. Handles the auth and...
View ToolThe TypeScript toolkit for building AI apps. Unified API across OpenAI, Anthropic, Google. Streaming, tool calling, stru...
View ToolConstrained generation library for LLMs. Uses finite state machines to mask invalid tokens during generation. Guarantees...
View ToolC++ inference engine for LLMs. GGUF format, quantization, CPU and Metal/CUDA support. The foundation most local tools bu...
View ToolGive your agents a filesystem that branches like git. Crash-safe by default.
View AppCatch broken SKILL.md files in CI before they hit your team.
View AppFind the right CLI without trawling GitHub. Search, filter, install.
View AppWhat MCP servers are, how they work, and how to build your own in 5 minutes.
AI AgentsContext-aware follow-up suggestions derived from git history.
Claude CodeStage, commit, branch, and open PRs without leaving the session.
Claude Code
Running multiple Claude Code agents on the same repo causes branch collisions and stash chaos - git worktrees fix this b...

GitHub's stacked pull requests went into public preview on July 30. Stacks turn one large change into an ordered chain o...

GitHub's June Copilot review updates point to a practical policy stack for agent-authored pull requests: validation, rev...

A new 188-task benchmark for non-functional improvements finds coding agents hit 70% on functional correctness but lag h...

A controlled ablation across Claude Code and Codex, 17 real tasks, and 288 evaluated runs finds context-injection strate...

A SCAM 2026 study of 100 top-starred repos catalogs six configuration smells in AGENTS.md and CLAUDE.md files: Lint Leak...

New tutorials, open-source projects, and deep dives on coding agents - delivered weekly.