How do Agents Refactor: An Empirical Study
Lukas Ottenhof, Daniel Penner, Abram Hindle, Thibaud Lutellier
TL;DR
The study investigates how software development agents perform Java refactoring and how their changes compare to human refactorings. Using RefactoringMiner to classify refactorings and DesigniteJava to detect code smells across 86 projects per group, the authors contrast agentic pull requests with developer ones, revealing that agents predominantly perform annotation edits (notably Claude Code) while developers enact a broader set of structural improvements. Although agents generate more refactoring commits, these changes do not consistently reduce code smells; Cursor, in particular, shows a significant smell increase, whereas Codex may mildly reduce smells. The findings highlight limitations in current agent refactoring capabilities and suggest that future work should focus on expanding agents’ repertoire beyond annotations to deliver tangible improvements in code quality.
Abstract
Software development agents such as Claude Code, GitHub Copilot, Cursor Agent, Devin, and OpenAI Codex are being increasingly integrated into developer workflows. While prior work has evaluated agent capabilities for code completion and task automation, there is little work investigating how these agents perform Java refactoring in practice, the types of changes they make, and their impact on code quality. In this study, we present the first analysis of agentic refactoring pull requests in Java, comparing them to developer refactorings across 86 projects per group. Using RefactoringMiner and DesigniteJava 3.0, we identify refactoring types and detect code smells before and after refactoring commits. Our results show that agent refactorings are dominated by annotation changes (the 5 most common refactoring types done by agents are annotation related), in contrast to the diverse structural improvements typical of developers. Despite these differences in refactoring types, we find Cursor to be the only model to show a statistically significant increase in refactoring smells.
