Quality assurance · Production

Minions: Stripe's fully unattended one-shot coding agents merge over a thousand pull requests per week

The problem

Stripe's codebase — hundreds of millions of lines of code in a relatively uncommon Ruby/Sorbet stack with vast homegrown libraries — is far harder for LLM agents to navigate than a greenfield project, and developer attention is one of the company's most constrained resources.

First attempt

Off-the-shelf LLM agents excel at greenfield prototyping but struggle with the scale, complexity, and maturity of Stripe's codebase, and no existing tool integrates with Stripe's unique developer-productivity infrastructure.

Workflow diagram · grounded in source
1
Engineer invokes via Slack
trigger
“By tagging our Slack app, engineers can kick off a minion directly from the thread discussing a change, and it'll be able to access the entire thread and any links included as context”
2
Isolated devbox spun up
integration
“A minion run starts in an isolated developer environment—or "devbox"—which are the same type of machine that Stripe engineers write code on. Devboxes are pre-warmed so one can be spun up in 10 seconds, with Stripe code and services pre-l…”
3
MCP context gathering
ai_action
“they gather context like internal documentation, ticket details, build statuses, code intelligence via Sourcegraph search, and more. Indeed, we deterministically run relevant MCP tools over likely-looking links before a minion run even s…”
4
Agent loop writes code
ai_action
“The core agent loop runs on a fork of Block's coding agent goose, one of the first widely used coding agents, which we forked early on. We've customized the orchestration flow in an opinionated way to interleave agent loops and determini…”
5
Local lint validation
validation
“The first line of defense is an automated local executable, which uses heuristics to select and automatically run selected lints on each git push. This takes less than five seconds.”
6
CI test runs with autofixes
validation
“CI selectively runs tests from Stripe's battery of tests—there are over three million of them—upon a push. Many of our tests have autofixes for failures, which we automatically apply.”
7
Failure fed back to minion
feedback_loop
“If a test failure has no autofix, we send it back to the minion to try and fix. Since CI runs cost tokens, compute, and time, we only have at most two rounds of CI.”
8
Pull request created
output
“a minion creates a branch, pushes it to CI, and prepares a pull request following Stripe's PR template”
9
Engineer human review
human_review
“If the code looks good, the engineer opens the PR and requests a review from another Stripe engineer”
Reported outcome

Over a thousand pull requests are merged per week at Stripe that are completely minion-produced with no human-written code, enabling engineers to parallelize many tasks by spinning up multiple minions concurrently.

Reported metrics
minion-produced PRs merged per weekover a thousand
Devbox spin-up time10 seconds
Local lint execution timeless than five seconds
total tests in CI batteryover three million
Show all 6 reported metrics
minion-produced PRs merged per weekover a thousand
devbox spin-up time10 seconds
local lint execution timeless than five seconds
total tests in CI batteryover three million
MCP tools in Toolshedmore than 400
payment volume processed in production annuallywell over $1 trillion per year
Reported stack
ClaudeCursorgooseMCPSourcegraphToolshedSlack
Source
https://stripe.dev/blog/minions-stripes-one-shot-end-to-end-coding-agents
Read source ↗

Frequently asked questions

What did this team achieve with this AI workflow?

Over a thousand pull requests are merged per week at Stripe that are completely minion-produced with no human-written code, enabling engineers to parallelize many tasks by spinning up multiple minions concurrently.

What tools did this team use?

Claude, Cursor, goose, MCP, Sourcegraph, Toolshed, Slack.

What results were reported?

minion-produced PRs merged per week: over a thousand; Devbox spin-up time: 10 seconds; Local lint execution time: less than five seconds; total tests in CI battery: over three million (source-reported, not independently verified).

What failed first in this deployment?

Off-the-shelf LLM agents excel at greenfield prototyping but struggle with the scale, complexity, and maturity of Stripe's codebase, and no existing tool integrates with Stripe's unique developer-productivity infrastr…

How is this quality assurance AI workflow structured?

Engineer invokes via Slack → Isolated devbox spun up → MCP context gathering → Agent loop writes code → Local lint validation → CI test runs with autofixes → Failure fed back to minion → Pull request created → Engineer human review.