Vibeleaderboard
← All Intel
Intel / article

Hybrid LLM-Deterministic Pipelines for Enterprise-Scale Code Migration at Bloomberg

Source
arxiv.org
Author
Mario Corchero, David Williams, Laszlo Kiss Kollar, Haowen Liu, Shivam Bairoliya, Gala Malbasic, Serkan Kirbas, Federica Sarro
Date

Context

Bloomberg's experience with AI-generated code migrations suggests the hard part is getting the owning teams to accept the changes. In a paper, Bloomberg engineers and University College London researchers describe Automated Uplift, which opened pull requests for two low-priority infrastructure moves across thousands of internal repositories: Python packages moving to a dependency-isolated packaging model (about 1,900 candidates), and C++ projects moving from a proprietary build system to CMake (about 6,700). Of 2,333 pull requests opened by 30 April 2026, 729 had been merged by 30 June, and most of the rest had received no decision at all.

The pipeline keeps the to one bounded step. Deterministic code assigns each repository to an archetype, a group that shares a structure and a migration approach, collects its build files and source analysis, and renders a fixed prompt. The model, Anthropic's Claude Sonnet 4.5 and later Opus 4.6, makes the change, and deterministic checks validate it, feeding errors back for up to three retries. For the C++ move the model only extracts build settings into structured data that templates turn into CMake files, and the pipeline compiles each project and runs its unit tests before a pull request exists. For Python the model writes the change itself, guided by production telemetry showing which modules and dependency versions actually load at runtime; the authors call that data essential but did not test it in a controlled comparison.

The difference in checking shows up in the outcomes. 34.2% of C++ pull requests were merged and 8.1% rejected, against 10.5% and 21.8% for Python, where a wrong dependency choice can pass the pipeline's checks and fail only when the owning team deploys. The authors cannot separate that effect from others: the C++ repositories were more uniform, that campaign started earlier, and a part-time engineer supported its reviews. Merges also undercount use, since owners of 34 of the 51 Python repositories that rejected a pull request later migrated themselves, 14 of them reusing most of the generated changes. The team built and evaluated its own system without a control group, and its estimates of time saved are its own judgment. Its advice to other organizations is to assess how much verification can happen inside the pipeline before investing in pipeline engineering, because review and deployment costs fall on the receiving teams.

Key takeaways · AI-distilled
  • Bloomberg's Automated Uplift ran two production campaigns: a heterogeneous Python packaging migration across about 1,900 candidate repositories and a uniform C++ build system migration across about 6,700.
  • The authors report that generating migrations was the easier part. The bottleneck was the cost to owning teams of reviewing, testing and deploying the resulting pull requests.
  • Those costs fell when a change could be verified inside the pipeline before a PR opened, as with C++ compilation and test validation, and when repositories were uniform enough for fixes to carry over from one to the next.
  • Besides precomputed , the pipeline feeds runtime production telemetry, such as execution logs and usage traces, into the migration process.
Terms in this piece · Glossary
  • LLM — A large language model — the neural network behind tools like Claude and ChatGPT, trained on huge amounts of text to predict what comes next.
  • context window — The maximum amount of text a model can consider at once — its working memory for the current conversation or task.
Recommended reads
Comments

Checking sign-in…

Loading comments…