Redesigning source control at Anthropic
-
The Agent-Scale Bottleneck
- Autonomous coding with Claude shifted Anthropic's primary development bottleneck from writing code to human-scale developer infrastructure (source control, builds, and CI).
- Between May and September 2026, code changes merged into Anthropic's monorepo jumped more than tenfold, from ~2,500 to over 30,000 merges per day.
- To solve this, Anthropic built Scion, an in-house version control system, and migrated their entire monorepo away from Git in five months—alongside shipping a custom code review surface (Antique), code search, and a source control IAM system.
-
Why Git Struggled at Scale
- Git's decentralized design assumes offline-capable clients that hold complete repository copies, which clashes with Anthropic's workload of always-online AI agents and CI jobs.
- Anthropic's monorepo reached nearly 100 GB of history on
main(with a 25+ GB compressed working copy) and handles ~25 million CI checkouts per day—representing over 600 PB of daily Git traffic if fetched naively. - Standard large-monorepo workarounds—such as shallow clones, sparse checkouts, promisor remotes, blob storage seeds, and operating hundreds of internal Git mirrors—became operationally unsustainable as merge velocity accelerated and seeds rapidly fell behind
main.
-
Core Principles of Scion
- Always-online clients & client-server asymmetry: Clients maintain only a bounded local object cache and delegate heavy computation (history, blame, diffs, merges, rebases, and commit creation) to an always-reachable server.
- API-first source control: All queries are exposed via RPC APIs, allowing CI jobs, automated bisect/revert pipelines, and write workloads to query metadata, compute diffs, or land changes without ever materializing a local repository.
- Horizontal scalability without full materialization: No server holds a complete materialized copy of the repo or generates Git-style packfiles, eliminating repository maintenance overhead.
- Cheap, lock-free server-side commits: Commits, rebases, and merges happen directly on the server with costs proportional to the size of the change rather than the size of the repository. Global refs (branches/tags) are discouraged outside of
mainand release branches to avoid cross-server coordination bottlenecks. - Optional, sparse, and virtualized working copies: When disk files are needed, Scion defaults to sparse checkouts (fetching only requested directories) and virtualized checkouts (materializing files on demand).
-
How Scion Works & Scales
- Changesets & Derived Data: Instead of storing full tree pointers like Git, Scion's unit of work is a server-side changeset in a write-ahead log recording modified files relative to its first parent and content-addressed pointers to compressed blobs. Moving a ref is an isolated compare-and-swap on a single Cloud Spanner row.
- Recursive Derived Data: Secondary indices (file blame, path history, commit graph skip lists, copy detection) are computed recursively from parent changesets, either eagerly or lazily, without exposing internal structures to clients.
- Tiered Caching Architecture (
scnclient): Rather than negotiating what a client already has and generating dynamic packfiles, thescnclient recursively requests missing immutable trees and blobs. Requests flow through a strictly tiered hierarchy—from a node-localscion-daemon(seeded from snapshots) to regional in-memoryscion-cacheservers, and finally to authoritativescion-serversbacked by Spanner and cloud blob storage. - Performance Gains: Each cache tier achieves a >99% hit rate. Scion reduced source control infrastructure CPU and memory footprints by 200x compared to the prior Git mirror fleet and accelerated CI/research checkouts by two orders of magnitude (from minutes to seconds).
Hacker News Discussion
-
Code Quality vs. Extreme Velocity
- Commenters expressed skepticism about merging 30,000 AI-generated changes per day, questioning how Anthropic prevents "janky" or unmaintainable code from accumulating when human review cannot keep pace.
- Several users pointed to performance and UX issues in Claude Code—such as high idle CPU usage, ~1 GB RAM overhead for a CLI wrapper, stuttering terminal spinner animations, and past accidental source leaks—as evidence that Anthropic prioritizes rapid feature iteration over traditional software polish.
- Others defended this approach, arguing that in rapid AI development, shipping "good enough" working features quickly outweighs strict code perfection, especially under the assumption that future, more capable models will be able to refactor technical debt automatically.
-
The Philosophy of Software Engineering
- A major debate emerged around whether "engineering is the science of good enough" (optimizing for time, budget, and business constraints) versus the pursuit of deterministic excellence.
- Critics of the "good enough" mindset argued that because computers are deterministic, accepting buggy, bloated software is a failure of craft, citing projects like SQLite and the Linux kernel as proof that high reliability and scale can coexist.
- Pragmatists countered that all complex real-world systems (including hardware and the Linux kernel) contain bugs, and that aiming for zero defects outside of formally verified systems slows shipping velocity to an unacceptable degree.
-
Economic Incentives & Token Consumption
- Some participants noted a potential conflict of interest in "vibe-coded" workflows: when AI providers charge per token, bloated or poorly structured codebases that require constant AI-driven fixes and massive context windows inherently drive higher token revenue.
- Others pushed back, noting that cost-per-token is trending downward and that breaking workflows into smaller, well-scoped agent steps significantly reduces drift and wasted tokens.
</figure/>