Skip to main content
BlogDevOps

Anthropic Mengganti Git dengan Scion: Apa yang Berubah di Source Control Skala Agent

Claude mendorong monorepo Anthropic dari 2.500 ke lebih dari 30.000 merge per hari, dan git tidak sanggup mengikutinya. Pembacaan dekat atas desain Scion, figure dan angkanya sendiri, serta apa yang layak ditiru tim yang tidak akan pernah sampai skala itu.

Matthews Wong

Software Engineer

Oktober 202616 menit baca
Anthropic Mengganti Git dengan Scion: Apa yang Berubah di Source Control Skala Agent

Ringkasan Utama

Anthropic mengganti git dengan Scion, sistem version control buatan sendiri, setelah kode yang ditulis Claude mendorong merge di monorepo-nya dari sekitar 2.500 per hari pada Mei 2026 ke lebih dari 30.000 pada September. Scion menyimpan history dan commit di server, mengambil file sesuai kebutuhan, dan menukar merge queue dengan global lock dengan testing setelah merge. Kebanyakan tim cukup meniru idenya, tidak perlu bermigrasi.

Pada 13 Oktober 2026 blog engineering Anthropic menerbitkan Redesigning source control at Anthropic, dan dalam sehari satu angka ada di mana-mana: 30.000 merge per hari. Post di X yang paling jauh menyebar merangkumnya dalam satu kalimat, “anthropic getting bottlenecked by git so they wrote their change-list based version control system called scion”. Angka yang membuat saya berhenti ada dua paragraf di bawahnya: sekitar 25 juta checkout CI per hari, sebelum satu pun developer environment, agent sandbox, atau research job menyentuh repository itu.

Tulisan ini membaca sumber primernya dengan teliti, memakai enam figure milik Anthropic sendiri, lalu mencocokkannya dengan lima liputan, dokumentasi protokol git, dan thread Hacker News yang berisi lebih dari 600 komentar. Saya menjalankan agent Claude Code secara headless di repository saya sendiri, jadi saya membacanya untuk mencari apa yang berubah bagi tim yang tidak akan pernah me-merge 30.000 perubahan per hari. Setiap angka Scion di bawah ini dilaporkan oleh perusahaannya sendiri, dan belum ada yang diverifikasi secara independen.

Angka yang membuat git kewalahan: merge adalah write, checkout adalah read

Figure pertama Anthropic sudah menceritakan sebagian besar kisahnya. Monorepo itu me-merge sekitar 1.000 perubahan per hari pada Januari, sekitar 2.500 pada Mei, dan memuncak di 30.401 pada 9 September. Perubahan warnanya sama pentingnya dengan tingginya: pull request berwarna biru tergantikan oleh change request oranye di Antique, tool code review yang dibangun Anthropic bersamaan dengan Scion, sepanjang Juni dan Juli. Pada Agustus hampir semua perubahan yang di-merge sudah lewat sistem baru itu.

Grafik batang jumlah perubahan yang di-merge per hari ke monorepo Anthropic dari Januari sampai September 2026, naik dari sekitar 1.000 ke puncak 30.401 pada 9 September, dengan pull request biru tergantikan change request Antique berwarna oranye sejak Juni
Perhatikan di mana warnanya berubah, bukan hanya tingginya: migrasi ke change request Antique terjadi ketika volume harian masih naik, bukan setelah volumenya stabil. Anthropic, Redesigning source control at Anthropic (2026)

Yang jadi headline adalah laju merge, tetapi pendorong biayanya ada di sisi read. History branch main hampir 100 GB, dan satu working copy yang terkompresi lebih dari 25 GB. Anthropic menghitung sekitar 25 juta checkout CI per hari dan menulis bahwa “fetched naively, that would be over 600 PB of git traffic per day.” Angka itu bukan hiperbola. 600 PB dibagi 25 juta hasilnya 24 GB, hampir persis satu working copy terkompresi untuk setiap checkout.

Write dan read juga saling memperbesar. Dengan 30.000 merge per hari, main bergerak kira-kira setiap tiga detik, sehingga salinan repository mana pun yang di-cache sudah basi hampir begitu selesai di-refresh, dan setiap job yang butuh tip main harus mengambil selisihnya. Kalimat pembuka Anthropic adalah tesis seluruh tulisannya: “At Anthropic, coding is no longer the bottleneck to building systems or doing research.” Yang menjadi bottleneck justru infrastruktur yang memindahkan kode ke sana kemari.

Yang dicoba Anthropic lebih dulu: playbook standar untuk menskalakan git

Sebelum membangun apa pun, Anthropic menjalankan playbook yang akan dikenali setiap perusahaan dengan git berskala besar: shallow clone, sparse checkout, promisor remote untuk partial clone, mirror git internal, dan seed snapshot yang disimpan di blob storage supaya node baru langsung mulai dalam keadaan hangat. Di puncaknya mereka menjalankan beberapa ratus mirror. Ini playbook tersebut dalam bentuk command, yang sama dengan yang akan saya pakai untuk repository besar hari ini.

# The standard git scaling playbook. Every line still assumes the client
# is a full git peer that merely holds less of the repository.

# Shallow: truncate history. Cheap to clone, but blame and log stop early.
git clone --depth=1 https://git.example.com/monorepo.git

# Partial (blobless): fetch commits and trees, defer file contents.
# The server becomes a "promisor remote" that sends missing blobs on demand,
# and git fetches them one object at a time when a command trips over one.
git clone --filter=blob:none --sparse --no-checkout \
  https://git.example.com/monorepo.git
git -C monorepo sparse-checkout set services/billing libs/shared
git -C monorepo checkout main

# Seeds: start new nodes from a bundle in blob storage, then fetch the delta.
# The delta grows with every merge since the bundle was cut.
git clone --bundle-uri=https://blobs.example.com/seeds/monorepo.bundle \
  https://git.example.com/monorepo.git

# Mirrors: replicate the whole repository closer to the jobs reading it.
git clone --mirror https://git.example.com/monorepo.git /srv/mirror.git
git -C /srv/mirror.git remote update --prune

Setiap teknik itu berhasil, dan setiap teknik itu membawa asumsi yang sama: client tetap peer git yang lengkap, hanya saja menyimpan lebih sedikit. Anthropic menyebut dua titik di mana asumsi itu patah. Seed makin jauh tertinggal dari main di antara dua refresh seiring laju merge naik, dan diff serta blame di partial clone makin sulit dijaga agar tetap jalan. Dokumentasi partial clone milik git sendiri menjelaskan yang kedua. Dynamic fetching memanggil fetch-pack sekali untuk setiap item yang hilang dan cenderung lambat karena object datang satu per satu. Blame menelusuri history dan butuh versi lama sebuah file, yang di blobless clone justru object yang tidak ada.

Diagram setup penskalaan git yang umum: job CI, developer environment, agent sandbox, dan research job membaca lewat packfile cache per cluster, mirror replica, dan mirror primary ke upstream, sementara blob storage menyimpan seed snapshot yang menjadi seed tiap node
Hitung berapa salinan repository di gambar ini. Setiap mirror, packfile cache, dan seed adalah satu hal lagi yang bisa tertinggal dari branch main yang bergerak setiap beberapa detik. Anthropic, Redesigning source control at Anthropic (2026)

Diagnosisnya: git itu terdesentralisasi, client Anthropic tidak pernah begitu

Kalimat yang menjadi pangkal seluruh desainnya ada di bagian pertumbuhan tulisan itu: Anthropic “using git as a centralized system with one authoritative copy”, sementara hampir semua client-nya adalah agent atau job yang selalu online. Model git yang offline-first, di mana setiap clone adalah peer lengkap, adalah fitur bagi maintainer yang bekerja di kereta. Bagi agent di sandbox yang hidup dua puluh menit, itu biaya yang dibayar setiap kali ia mulai. Anthropic menyebut Piper milik Google dan Sapling milik Meta sebagai prior art, dan deskripsi change-list di X menunjuk ke garis keturunan yang sama: unit perubahan yang disimpan di server pusat, bukan snapshot yang disalin ke setiap client.

AspekAsumsi gitPilihan Scion
Di mana history disimpanSetiap clone menyimpan history lengkap, atau salinan yang sengaja dipangkasHanya di service. Tidak ada salinan lengkap repository di mana pun, bahkan tidak di satu server
Siapa yang menghitung blame, diff, dan mergeClient, dari object lokalnyaServer, lewat API, sehingga banyak job sama sekali tidak butuh checkout
Biaya satu commitObject ditulis secara lokal, lalu push meng-upload-nyaDibuat di server dan langsung terlihat di mana-mana. Biayanya mengikuti ukuran perubahan, bukan ukuran repository
Negosiasi fetchClient mendaftar apa yang ia punya, lalu server membangun satu packfile untuk percakapan ituClient menyebut tree dan blob yang ia mau mulai dari root tree, lalu mengambil yang belum ada secara rekursif
RefMurah dan ada di mana-mana. Setiap branch dan tag adalah refTidak dianjurkan kecuali untuk main dan release branch. Memindahkannya adalah compare-and-swap pada satu baris Spanner
Working copyLengkap secara default, sparse kalau dimintaOpsional. Sparse sejak desain, atau virtual, dengan file baru dimaterialisasi saat dibaca
MaintenancePackfile, repack, dan garbage collection di client maupun serverTidak ada packfile, jadi tidak ada maintenance repository di client maupun cache

Baca kolom kanan dari atas ke bawah dan satu aturan muncul dengan sendirinya, yang dirumuskan Developers Digest paling baik: anggap client selalu online, lalu tanya server. Setiap baris memindahkan pekerjaan dan state dari banyak client ke satu service. Itulah trade-off yang sengaja dihindari git sejak 2005, dan trade-off itu baru menguntungkan kalau client-nya adalah mesin yang tidak pernah offline.

Isi Scion: changeset di dalam log, tree diturunkan saat dibutuhkan

Unit kerja Scion adalah changeset, sebuah entry di write-ahead log. Commit git menunjuk ke sebuah tree, snapshot lengkap repository pada saat itu. Changeset Scion justru mendaftar file yang berubah relatif terhadap parent pertamanya, masing-masing dengan pointer content-addressed ke blob terkompresi. Figure Anthropic memperlihatkan pembagiannya: metadata di Spanner, isi file di Cloud Storage, immutable dan di-deduplikasi berdasarkan hash.

Diagram sebuah changeset Scion yang disimpan di Spanner, berisi author, tanggal, message, id parent, dan daftar file_changes yang menunjuk ke blob content-addressed di Cloud Storage, dengan root tree dan directory tree bergaris putus-putus sebagai data yang diturunkan server
Kotak bergaris putus-putus itulah intinya: tree diturunkan oleh server dan tidak pernah disimpan di changeset. Contoh changeset-nya ditulis oleh Claude dan di-commit oleh Scion. Anthropic, Redesigning source control at Anthropic (2026)

Ini pembalikan yang patut diperhatikan. Git menyimpan snapshot dan menghitung diff; Scion menyimpan diff dan menghitung snapshot, menurunkan root tree dan directory tree di server ketika ada yang memintanya. Mencatat perubahan hanya terhadap parent pertama, menurut Anthropic sendiri, adalah pilihan gaya: dalam trunk-based development orang kebanyakan peduli pada history di sepanjang trunk. Perbedaannya paling mudah dilihat berdampingan.

# git: a commit names a complete tree. The diff is computed when asked.
$ git cat-file -p HEAD
tree e3a1c07f...            # a snapshot of the entire repository
parent 9a1f03b2...
author Jane Dev <jane@example.com> 1757899509 +0000
committer Jane Dev <jane@example.com> 1757899509 +0000

fix: retry blob fetch on timeout

# Scion: a changeset names only what changed against its first parent.
# Fields as drawn in Anthropic's "Shape of a Scion changeset" figure.
changeset      9f2c...7ab0
parents        d41c...88e2
author         Claude <noreply@anthropic.com>
committer      Scion <noreply+scion@anthropic.com>     # optional
message        scion-cache: serve blobs from the memory tier
file_changes
  docs/guide.md    3e1f...a2c4    regular file
  src/legacy.rs    deleted
  tools/build.sh   9b07...5d18    executable

# No tree field. The root tree (5c0e...d1a9) is derived by the server
# when a client asks for it, and file contents live in Cloud Storage,
# immutable and deduplicated by hash.

Sisanya, termasuk blame, path history, dan skip list commit graph, adalah derived data yang dibangun oleh satu mekanisme generik. Setiap nilai didefinisikan secara rekursif dari nilai parent-nya dan bisa dihitung di awal atau ditunda. Anthropic kemudian menambahkan index copy detection dan pencarian file berbasis path dengan cara yang sama, tanpa client menyadarinya. Ref berada sepenuhnya di luar jalur utama: membuat dan mengambil commit tidak pernah menyentuhnya, dan alasan yang ditulis cukup lugas, “global state that every server has to agree on is a looming scaling problem.”

Jalur checkout: tiga tier yang menjawab RPC yang sama

Dalam negosiasi fetch git, seperti dijelaskan dokumentasi protocol v2, client mengirim baris have untuk object yang sudah ia punya dan baris want untuk yang ia butuhkan, lalu server menjawab dengan packfile yang dibangun khusus untuk percakapan itu. Scion membalik percakapannya. Client tidak menjelaskan apa yang ia punya. Ia menyebut tree dan blob yang ia mau, mulai dari root tree, lalu meminta object yang belum ada secara rekursif. Tidak ada packfile berukuran gigabyte, jadi transfer bisa dilanjutkan kalau terputus, dan sparse checkout maupun virtual checkout tidak butuh dukungan khusus: client cukup tidak pernah meminta tree yang tidak ia perlukan.

Diagram arsitektur checkout Scion: Antique, mesin developer, dan job CI mengirim branch, history, dan diff ke scion-server lewat control plane, sementara tree dan isi file mengalir dari scion-daemon per node melalui scion-cache regional ke scion-server, yang membaca Spanner dan Cloud Storage
Dua plane, bukan satu. Query branch dan history langsung ke server; hanya tree dan isi file yang immutable yang lewat cache, dan itulah sebabnya cache-nya tidak pernah perlu di-invalidate. Anthropic, Redesigning source control at Anthropic (2026)

Figure itu memisahkan control plane dari object plane. Branch, history, dan diff langsung menuju scion-server untuk setiap client. Tree dan isi file mengalir lewat cache: scion-daemon di setiap node, dipakai bersama oleh semua job di node itu dan diisi dari snapshot berkala, lalu scion-cache regional yang men-stream object dari memori dalam format disk milik daemon, lalu scion-server yang membaca dari Spanner atau Cloud Storage. Ketiga tier menjawab RPC yang sama, jadi client tidak bisa tahu sedang bicara dengan yang mana.

Dua sifat membuat sistem ini murah dijalankan. Object yang content-addressed tidak pernah berubah, jadi tier mana pun bisa meng-cache-nya tanpa koordinasi dan tidak ada yang perlu di-invalidate. Selain itu tiering-nya ditegakkan secara ketat, sehingga cache regional yang gagal tidak bisa membanjiri server di atasnya. Anthropic melaporkan hit rate di atas 99% di setiap tier, tanpa state berumur panjang di satu pun.

Ide yang layak dicuri bukan tiga tier-nya. Idenya adalah merancang protokol sehingga cache tidak pernah perlu tahu apa yang sudah dimiliki client. Begitu sebuah request menyebut konten immutable lewat hash-nya, proxy, CDN, atau daemon lokal di node mana pun bisa menjawabnya. Negosiasi have dan want di git adalah state per client, dan itulah sebabnya setup git di figure sebelumnya butuh mirror berisi seluruh repository dengan packfile cache di depannya.

Hasilnya, command demi command

Hasil utama yang dilaporkan Anthropic adalah footprint CPU dan memori sekitar 200x lebih kecil dibanding armada mirror git, checkout CI dan research dua orde magnitudo lebih cepat, dan tambahan kapasitas CPU 25% untuk CI saja. Bukti yang lebih berguna adalah grafik waktu median per command. Bagian agent dan CI ditampilkan di bawah, dan tabelnya memuat setiap baris dari grafik aslinya.

Grafik batang waktu median di agent environment dan job CI, git berwarna abu-abu dibanding client scn milik Scion berwarna oranye: worktree baru 7,1 menit lawan 5,1 detik, total waktu source control per change request 34 menit lawan 3,7 menit, dan checkout CI 31 detik lawan 3,5 detik
Batang abu-abu adalah git, batang oranye adalah client scn milik Scion. Anotasi di kanan adalah total harian di seluruh armada, dan angkanya cocok dengan jumlah checkout yang dikutip di bagian awal tulisan. Anthropic, Redesigning source control at Anthropic (cropped)
Operasi (median)gitScion (scn)Lebih cepat
Developer: pull terbaru87 s3,5 s×25
Developer: checkout15 s1,1 s×14
Developer: rebase13 s2,7 s×4,8
Developer: status3,9 s19 ms×207
Developer: commit1,4 s1,1 s×1,3
Developer: diff407 ms67 ms×6,1
Agent: worktree baru7,1 menit5,1 s×84
Agent: pull terbaru3,0 menit9,0 s×20
Agent: commit18 s761 ms×24
Agent: status4,3 sdi bawah 0,2 s×20+
Agent: total waktu source control per change request34 menit3,7 menit×9,2
Checkout di awal compute job175 s22 s×8,0
Checkout di job CI31 s3,5 s×8,8

Pola di tabel itu adalah prinsip desainnya yang terlihat. Kemenangan terbesar ada di operasi yang biayanya di git tumbuh mengikuti ukuran repository: status di mesin developer (×207), di mana git memeriksa seluruh working tree sementara client Scion mengawasi filesystem, dan worktree agent yang baru (×84). Yang terkecil adalah commit developer (×1,3), yang di git memang sudah sebanding dengan ukuran perubahannya. Scion tidak membuat semuanya cepat. Scion membuat setiap operasi berbiaya sebesar perubahannya.

Anotasinya juga cocok dengan bagian lain tulisan itu, dan itu pertanda baik. Menghemat 27,5 detik untuk masing-masing dari 25 juta checkout CI per hari hasilnya sekitar 191.000 jam, dekat dengan ≈195.000 machine hours per hari di grafik. Menghemat 30 menit per change request terhadap ≈11.000 agent hours per hari berarti kira-kira 22.000 change request per hari, satu orde dengan grafik merge. Semua ini tetap median milik Anthropic sendiri. explainx dan Developers Digest sama-sama mengingatkan bahwa belum ada yang diaudit secara independen, dan angka 200x diukur terhadap armada mirror yang tidak pernah dibangun oleh kebanyakan tim.

Tanpa global merge lock, review berbasis intent, dan Claude di dalam tim

Keputusan yang paling diperdebatkan sama sekali tidak ada di dalam Scion. Anthropic menulis bahwa merge queue yang semestinya “doesn't make much sense at agent scale”. Ratusan sampai ribuan perubahan bisa masuk selama satu test run berjalan, dan tim itu tidak berhasil mereplikasi standar industri berupa global repository lock. Mereka berinvestasi di testing setelah merge dan sebelum deploy, dan menerima bahwa perubahan yang berjalan bersamaan kadang akan conflict, karena “Claude can typically fix these conflicts faster than humans can even identify them.”

Bentuk review ikut berubah. Engineer tetap me-review setiap change request, tetapi untuk intent-nya, bukan setiap baris, dan semantic approval rule bisa memisahkan perubahan yang hanya menyentuh komentar dari perubahan yang menyentuh logika sensitif. Claude yang masing-masing fokus pada satu komponen, yang oleh tim disebut superfan, mengawasi telemetry dan log untuk scion-daemon, scion-cache, dan merge queue Antique, berdampingan dengan alert biasa. Pekerjaan engineer yang paling sering, menurut mereka sendiri, adalah bilang “tidak” ke Claude: ketika ia membaca commit log untuk mencari tahu apakah sebuah perubahan sudah di-merge alih-alih bertanya ke tool review, atau ketika adversarial review mendorong validasi defensif terhadap service internal yang sebenarnya sudah dipercaya.

Jangan berhenti memasang gate test sebelum merge hanya karena Anthropic berhenti menserialisasi merge. Penggantinya adalah satu tumpukan utuh: testing setelah merge dan sebelum deploy, agent monitoring per komponen, permission per direktori, dan Claude yang memperbaiki conflict lebih cepat daripada orang menyadarinya. Bagi kebanyakan tim, pengecekan sebelum merge adalah satu-satunya gate antara pull request yang hijau dan production. Developers Digest menyebutnya “a real tradeoff, not a free lunch”, dan thread Hacker News terbelah tepat di titik ini.

Thread itu layak dibaca untuk argumen tandingannya. Satu komentator memperkirakan sekitar sepuluh pull request per engineer per hari dan bilang Anthropic sudah “crossed the rubicon of not gating PRs on tests”. Komentator lain berargumen bahwa perusahaan era Perforce melayani puluhan ribu engineer dan bahwa “30k CLs per day isn't much.” Kedua poin itu wajar, dan tidak ada yang menyentuh klaim yang lebih sempit: pada laju ini, desain apa pun yang menserialisasi merge di belakang test run penuh akan tertinggal. Rangkuman AI Weekly mencatat bahwa The Register membingkai para engineer sebagai penjaga gerbang, bukan penulis kode, dan itu dekat dengan cara tulisan Anthropic sendiri menggambarkan pekerjaannya.

Grafik batang perubahan mingguan di direktori scm dan antique monorepo Anthropic dari Januari sampai September 2026, naik dari beberapa pull request per minggu pada Februari ke sekitar 1.560 change request Antique di minggu terakhir, total 12.257 perubahan
Tim itu memindahkan kodenya sendiri ke change request Antique antara Mei dan Juni, dan pada September sudah me-merge lebih dari 1.500 perubahan per minggu ke sistem yang masih sedang mereka bangun. Anthropic, Redesigning source control at Anthropic (2026)

Claude juga membangun sebagian besar sistem yang sedang ia lampaui. Direktori scm dan antique menerima 12.257 perubahan antara Januari dan September, untuk tim berisi tujuh orang. Ketika snapshot internal awal Claude Mythos Preview diminta menulis ulang pipeline ingestion git-ke-Scion yang ditulis tangan, tanpa instruksi tambahan, hasilnya memakai memori 20x lebih sedikit, berjalan 4x lebih cepat, dan tetap menjaga invariant urutan yang implisit. Para engineer bilang mereka sekarang menilai Claude lebih baik dalam menulis kode daripada diri mereka sendiri, dan menyebut Scion salah satu codebase dengan testing terbaik yang pernah mereka kerjakan, berkat hermetic simulation, fuzzing, dan rate limiting.

Apa yang layak ditiru kalau kalian tidak akan pernah me-merge 30.000 perubahan per hari

Anthropic menyatakan dengan jelas bahwa “Scion is by no means a suitable replacement for git for general use.” Scion hanya masuk akal untuk monorepo yang sangat besar dengan puluhan ribu engineer atau kawanan agent yang besar, belanja token internal perusahaan itu bukan sesuatu yang akan dipilih kebanyakan bisnis, dan mengadopsinya berarti ikut memigrasikan code review, search, dan CI. Tidak ada rilis yang bisa diunduh, apa pun kesan yang ditimbulkan sebagian headline. Ringkasan AI TLDR menyebut audiens yang tepat, yaitu engineer platform dan developer infrastructure, yang bisa meminjam commit di sisi server dan fetching sesuai kebutuhan tanpa kodenya. Sebagian besar idenya bisa dipakai di git biasa hari ini.

  1. Ukur dulu sebelum mengubah apa pun. Catat waktu untuk worktree agent yang baru, status, dan pull di repository terbesar kalian. Tes dari Developers Digest adalah yang tepat: kalau checkout agent sudah selesai dalam hitungan detik, masalah Scion belum jadi masalah kalian.
  2. Beri setiap agent blobless clone yang sparse dan worktree-nya sendiri, memakai command di playbook di atas, supaya ia membayar untuk direktori yang ia sentuh saja, bukan untuk seluruh history.
  3. Jawab pertanyaan tentang repository di server. Job yang hanya butuh diff, merge base, atau isi file di sebuah commit bisa bertanya ke API forge kalian alih-alih melakukan clone, dan itu versi murah dari prinsip service milik Scion.
  4. Jaga jumlah ref tetap sedikit. Branch berumur pendek per agent tidak masalah, tetapi dokumentasi partial clone git mencatat jumlah ref yang besar sebagai sumber overhead yang signifikan di setiap koneksi, dan armada agent melipatgandakan ref dengan cepat.
  5. Naikkan review manusia satu level sebelum volume memaksa kalian. Tentukan path mana yang butuh review baris per baris dan mana yang bisa disetujui berdasarkan intent ditambah test yang hijau, lalu tuliskan aturannya di tempat yang dibaca manusia dan agent.
# 1. Measure what an agent pays for source control before it writes a line.
#    If all three finish in seconds, Scion's problem is not yours yet.
time git worktree add ../agent-1 -b agent/1 origin/main
time git -C ../agent-1 status
time git -C ../agent-1 pull --rebase origin main

# 2. Ask the server instead of cloning. A job that only needs to know what
#    changed can read it from the forge's API with no local repository:
#    GitHub's "compare two commits" endpoint takes BASE...HEAD.
gh api repos/acme/monorepo/compare/main...agent/1 \
  --jq '.files[] | [.status, .filename] | @tsv'

# 3. Keep refs few. Every fetch has to reckon with them; count before
#    an agent fleet multiplies them.
git ls-remote --heads origin | wc -l

Dua catatan sebelum kalian membawa semua ini ke rapat perencanaan. Seperti ditunjukkan explainx, tulisan itu menggambarkan sebuah keberhasilan dan hampir tidak bercerita soal pendekatan yang gagal atau insiden migrasi, jadi anggap lima bulan itu sebagai versi yang berhasil. Selain itu, hal-hal yang diminta Anthropic dari komunitas git kemungkinan besar adalah jalur yang membawa semua ini ke kita semua: RPC sisi server yang lengkap dan bisa distandarkan oleh forge, protokol negosiasi yang baru, serta fitur sparse dan shallow yang bisa dikombinasikan dengan baik. Jalur itu lewat GitHub, GitLab, dan git sendiri, bukan lewat Scion.

Pelajaran yang bertahan dari Scion bukan bahwa git gagal. Pelajarannya adalah asumsi paling mendasar git, yaitu client sebagai peer yang lengkap dan mandiri, berhenti cocok dengan siapa client-nya. Ketika sebagian besar pembaca sebuah repository adalah agent yang selalu online, desain paling murah menyimpan state di server, menyebut konten lewat hash supaya setiap cache bisa melayaninya, dan membuat setiap operasi berbiaya sebesar perubahannya. Ukur berapa yang dibayar agent kalian untuk source control sebelum merencanakan apa pun berdasarkan angka milik orang lain.

FAQ

Pertanyaan Umum

Jawaban singkat untuk pertanyaan yang paling sering diajukan pembaca tentang topik ini.

Apa itu Anthropic Scion?

Scion adalah sistem version control buatan sendiri yang dibangun Anthropic untuk menggantikan git di monorepo-nya, dijelaskan dalam tulisan engineering mereka pada 13 Oktober 2026. Tim berisi tujuh orang membangunnya, bersama tool code review Antique, dan menyelesaikan migrasi dalam lima bulan. Scion menyimpan history dan commit di server dan membiarkan client mengambil hanya file yang mereka butuhkan.

Mengapa Anthropic mengganti git dengan Scion?

Kode yang ditulis Claude mendorong merge ke monorepo dari sekitar 2.500 per hari pada Mei 2026 ke lebih dari 30.000 per hari pada September. Dengan history hampir 100 GB dan sekitar 25 juta checkout CI per hari, mirror, seed, dan partial clone tidak lagi sanggup mengikuti. Diagnosis Anthropic adalah mereka memakai git sebagai sistem terpusat, karena hampir semua client-nya adalah agent atau job yang selalu online.

Apakah Scion open source, dan bisakah saya memakainya sebagai pengganti git?

Tidak. Anthropic menyatakan Scion sama sekali bukan pengganti git yang cocok untuk penggunaan umum dan sulit ditawarkan ke luar, karena mengadopsinya berarti ikut memigrasikan code review, search, dan CI. Perusahaan itu membagikan ide desainnya saja dan berharap forge git mengadopsi RPC sisi server, protokol negosiasi baru, serta fitur sparse dan shallow yang lebih baik.

Apa bedanya Scion dengan git?

Commit git menunjuk ke snapshot tree yang lengkap, sedangkan changeset Scion adalah entry write-ahead log yang hanya mendaftar file yang berubah terhadap parent pertamanya, dengan tree yang diturunkan oleh server. Commit, merge, rebase, blame, dan diff berjalan di server, dan ref tidak dianjurkan kecuali untuk main dan release branch. Client menyebut object yang ia mau mulai dari root tree, bukan menegosiasikan packfile.

Haruskah tim saya membuang merge queue atau meninggalkan git karena Scion?

Hampir pasti tidak. Anthropic mengganti merge queue dengan global lock menggunakan testing setelah merge dan sebelum deploy, agent yang memantau komponen, serta perbaikan conflict yang cepat oleh Claude, sementara bagi kebanyakan tim pengecekan sebelum merge adalah satu-satunya gate sebelum production. Ukur dulu berapa yang dibayar agent kalian untuk worktree, status, dan pull, lalu tiru ide yang murah: blobless clone yang sparse, query sisi server lewat API forge, dan jumlah ref yang sedikit.