Engineering · Case study
Spotify: finish fleet-wide migrations
Carry one code change across thousands of components, from a scoped instruction to merged, verified pull requests.
By OneShot · Updated
Read the solution ↓What the workflow produces
Migration campaign report- Scope
- Migration instruction, repositories in scope and recorded opt-outs.
- Verification
- Build and check results for each pull request.
- Review
- Owning team, review status and requested changes.
- Remaining work
- Blocked repositories with failure evidence and an owner.
The documented problem
Spotify Engineering describes Fleet Management as a framework for applying code transformations across all of its repositories, reaching thousands of software components. Scripted changes handled dependency bumps, configuration updates and simple refactors; more complex migrations still needed engineers.
In November 2025 Spotify reported that its background coding agent had generated more than 1,500 pull requests that teams merged into production, saving 60–90% of the time against writing those migrations by hand. It also noted that agents can be slow and unpredictable, which creates a need for new validation and quality controls. These are Spotify’s results from its own internal agent. The OneShot workflow below is a proposed design, not a description of Spotify’s system.
- Spotify Engineering: 1,500+ PRs Later (Honk, Part 1)Primary source · Checked 2026-10-08
The OneShot solution
Fleet-wide code migrations with a verifiable finish
Carry each approved migration to merged, verified changes in every in-scope repository, with an owner for anything that cannot be changed automatically.
- 01
Scope the campaign
Record the migration instruction, the repositories in scope and what counts as done: a passing build plus the checks the migration lead names. Leave out repositories whose owners have opted out, and record why.
- 02
Make and verify each change
The OneShot agent runs the change per repository within the campaign’s budget and opens a pull request only when the build passes. A failing build is retried with the error as context; repeated failures are set aside for an engineer.
- 03
Get the owner’s review
Send each owning team its pull request with the build result and a short description of the change. Chase reviews that go unanswered and bring requested changes back into the same pull request.
- Email send
- Email Inbox
- Source repositories and CI
- 04
Close the campaign
Track merged, open and blocked repositories against the scope. Hand blocked ones to the migration lead with the failure evidence, and reopen a repository if its change is later reverted.
What counts as complete
Every in-scope repository is merged with a passing build, or is listed as blocked with evidence and an acknowledged owner.
Decisions and exceptions
- The agent does not merge its own pull requests; the owning team does.
- Repeated build failures and changes that alter behaviour go to an engineer.
- A budget or deadline overrun pauses the campaign for the migration lead’s decision.
What to measure
- Share of in-scope repositories merged
- Pull request review age
- Build failures per change
- Reverted changes
Establish the baseline and review period before launch. Compare completed cases, unresolved work and reviewer corrections against the same scope.
The agent’s tool basket
OneShot gives its agents the tools to analyze records, communicate, research and act on authorized business data. The platform carries the workflow from the first action through to the recorded result.
Source repositories and CI
Read in-scope repositories, open pull requests and read build and test results for each change.
Workflow pricing
Scope the full workflow around your volume, business systems and required outcome.
Discuss workflow pricing →