SpecRover is an LLM agent that resolves software issues — bug fixes and feature additions described in a GitHub issue — by first inferring what the code is supposed to do. The paper that introduces it, SpecRover: Code Intent Extraction via LLMs, calls it a progeny of AutoCodeRover: it was implemented on the AutoCodeRover codebase and reuses its context retrieval APIs, adding function summary extraction, patch reviewing and patch selection. The authors state that its source code and experimental artifacts are available on Zenodo, and they identify SpecRover with AutoCodeRover-v2, which they have also packaged as a GitHub bot offering one-click issue resolution.

Capabilities

Given an issue statement and a codebase, SpecRover runs a sequence of LLM agents. A reproducer agent writes a test that reproduces the reported fault. A context retrieval agent searches the codebase through structure-aware APIs, and for every function it retrieves writes a short natural-language summary of how that function should behave to meet the issue’s requirements; it ends by deciding on the buggy locations. A patching agent then modifies code at those locations, guided by the paired function summaries.

A reviewer agent executes the reproducer test on the original and the patched program and, given the results, the issue and the test, decides separately whether the patch and the test are correct, with an explanation; rejected patches and tests are revised using this feedback. An accepted patch is checked against the project’s regression test suite, with the workflow retried up to a predefined number of times if regressions appear, and when no candidate passes, a selection agent picks one from the issue description and states its reason. Alongside the final patch, SpecRover outputs the buggy locations with their intended behaviors, the reproducer test, and the reason the patch was approved or selected, which the authors suggest can serve as a commit message or be kept with the code to track future regressions.

Adoption & Ecosystem

SpecRover supports multiple LLMs as backends; the paper’s experiments use Claude 3.5 Sonnet as the main model, switching to GPT-4o for a task only when the Claude API returns an error. Although it was designed for GitHub issues in Python repositories, the paper demonstrates it on a C security vulnerability in the Linux kernel from DARPA’s AI Cyber Challenge, starting from a vulnerability report. It belongs to the line of agents for Software Issue Resolution and Automated Program Repair.