← Back to digest
AI Agents

Anthropic let Claude maintain its production apps

What's this about?

Boris Cherny, who works on Claude Code at Anthropic, described an experiment running for several weeks: a Slack channel named `proj-claude-maintains-apps` where Claude runs scheduled daily maintenance routines across Anthropic's iOS, Android, Desktop, web, CLI and Agent SDK codebases. The routines are unusually concrete. A crash fuzzer opens the app in a simulator, taps around until something breaks, then diagnoses and fixes it. A dup unifier scans for near-identical abstractions that have drifted apart and opens PRs to merge them. A dead-code remover deletes statically unreachable code, and for code it merely suspects is dead it adds logging first, checks the next day, then removes it. There's also an "abstraction police." Over a few weeks these opened 388 pull requests, of which 180 were merged after Claude Code Review plus human review.

What exactly is a "fuzzer"?

Fuzzing is the practice of throwing large volumes of semi-random input at software to see what makes it fall over, rather than testing the cases a human thought to write down. Traditional fuzzers feed malformed data to a parser. What's novel here is a fuzzer that drives the actual user interface — launching the app in a simulator and tapping around like an unusually persistent and careless user — and then, crucially, doesn't just report the crash but traces the cause and writes the fix.

What's the community saying?

2,002 likes, 110 retweets
  1. The merge rate is the number people fixated on. 180 of 388 PRs merged is roughly 46% — far above what most would guess for unattended agent output, and Cherny says Claude usually gets them right on the first attempt.
  2. The self-tuning loop is the actual mechanism. When a routine produces bad PRs, they ask Claude to tune the routine itself, and it improves over the following days. That makes it a maintained system rather than a one-off script — though Cherny notes it sometimes takes several days of tuning.
  3. It targets exactly the work nobody wants. Dead code, drifted duplicate abstractions, leaky abstractions — mechanical, low-status, endlessly deferred maintenance. This is a much narrower and more defensible claim than "AI writes our features."
  4. The open operational question. Cherny ended by saying they're now working out how to streamline merging mechanical changes — a hint that human review of 388 PRs is itself becoming the bottleneck, which is the same problem in a new place.
← OpenAI and Cerebras: Ultrafast modeChatGPT gains Computer History →