Dihapus, diukur, satu aturan rusak
Menghapus CLAUDE.md berarti membuang file instruksi yang dibaca Claude Code di awal setiap percakapan. Boris Cherny, pencipta Claude Code, mengatakan di atas panggung untuk menghapusnya setiap enam bulan. Dua puluh dua video mengulang ucapannya dalam tujuh minggu. Tak satu pun dari video itu membuka sebuah repository.
Artikel ini melakukan apa yang tidak dilakukan video-video itu: mengambil satu app nyata dengan CLAUDE.md 177 baris, tiga skill, empat command, dan satu hook, menjalankan lima tugas sehari-hari dengan file itu dan tanpanya, lalu menghitung hasilnya. Setelah empat puluh empat run, tepat satu aturan yang rusak. File itu menghabiskan token di setiap tugas, jumlahnya tak pernah sama, dan salah satu barisnya tidak bisa diikuti oleh siapa pun.
Klipnya, kata demi kata, dan dua kalimat yang bukan miliknya
Klip ini berasal dari ceramah Boris Cherny di YC Startup School, direkam sehari setelah Opus 5 rilis. Kata-katanya: setiap enam bulan, hapus CLAUDE.md kamu, hapus skill kamu, hapus hook kamu. Lihat apa yang dilakukan model, hasilnya mungkin mengejutkan. Untuk Opus 5, katanya, Anthropic benar-benar merekomendasikan untuk mencobanya: model itu mungkin tidak lagi butuh semua instruksi itu.
Tiga puluh detik sebelumnya ada syarat yang tak pernah dikutip siapa pun. Anthropic tidak menghapus seluruh code base. Mereka menghapus banyak bagian, dan itu disebut ablation. Transkrip tertulisnya memuat kalimat itu secara utuh sampai hari ini. Delapan puluh persen dari system prompt Claude Code hilang lewat cara itu: hapus semuanya, kembalikan satu per satu, ukur tiap barisnya.
Dua kalimat yang dikarang oleh video-video reaksi tidak ada dalam ceramah itu. "Context, goals, and a definition of done" tidak muncul sama sekali; yang paling dekat yang ia ucapkan adalah task, guardrails, exit criteria. "Enam puluh empat agent menulis ulang Bun" juga bukan angkanya: itu angka Jarred Sumner, dalam postingan Bun. Cherny bilang sebelas hari, dan saat ditanya jumlahnya, ia menebak ribuan.
Dua puluh dua video dalam tujuh minggu mengutip klip itu. Tak satu pun menjalankan pengujiannya. Jadi video ini melakukan apa yang benar-benar ia jelaskan: hapus, kembalikan satu bagian setiap kali, ukur.
Alatnya: ablation, bukan penghapusan
Sebuah ablation membuang satu bagian dari konfigurasi setiap kali dan mengukur efeknya, alih-alih menghapus semuanya dan menebak-nebak. CLAUDE.md dibaca di awal setiap percakapan dan dibaca lagi di setiap turn; skill hanya dimuat saat dipanggil. Perbedaan itulah yang diukur.
Anthropic menyediakan tombol penghapusnya: sebuah flag --bare, variabel yang sama yang disebut Cherny di atas panggung. Repository-nya adalah app nyata milik saya: 177 baris instruksi, tiga skill, empat command, dan satu hook yang aktif di setiap pencarian.
| Dimensi | Nilai |
|---|---|
| Tugas sehari-hari | 5 (komponen baru, edit, refactor, perubahan store, pertanyaan arsitektur) |
| Konfigurasi | 5 (penuh, tanpa file, tanpa skill, tanpa hook, tanpa semuanya) |
| Model | satu, dikunci |
| Lingkungan | direktori config kosong, clone baru sebelum tiap run |
| Run | 44 |
| Biaya | $39 |
Setiap run dinilai dengan cara yang sama, pada clone yang sama, oleh sebuah script, bukan secara manual. Yang dihitung sebagai rusak: aturan repository itu sendiri (import, tipe, design token, terjemahan) ditambah typecheck dan lint.
Satu-satunya tool yang dibuat untuk jenis ablation ini, Caliper, meng-ablasi skill dan MCP server tetapi tidak pernah menyentuh file itu; pergantian CLAUDE.md dilakukan secara manual. Batasannya, disebutkan sekali: satu repository, satu model, dua run per sel, tanpa transcript. Hasil pertama menentukan nadanya: tugas refactor kembali identik, enam puluh empat sen dengan file dan enam puluh tiga tanpanya.
Yang rusak: satu aturan, pada file baru
Aturan yang rusak adalah aturan internasionalisasi, dalam kata-kata file itu sendiri: selalu tambahkan bahasa Inggris dan Prancis, jangan pernah hardcode string yang dilihat user. Pada tugas komponen baru, dengan file itu, keempat run menulis file terjemahan. Tanpanya, tiga dari empat run melakukan hardcode pada heading. Tugas yang sama, repository yang sama, model yang sama, prompt yang sama.
| Komponen baru | Menulis file terjemahan |
|---|---|
| Dengan CLAUDE.md | 4 dari 4 |
| Tanpa CLAUDE.md | 1 dari 4 |
Tugas edit menunjukkan sisi lainnya. Setiap konfigurasi melakukannya dengan benar, bahkan tanpa apa pun, karena kode di sekitarnya yang mengajarkan: setiap komponen di sebelah yang diedit sudah punya file terjemahan. Semua hal lain bertahan di keempat puluh empat run: alias import, type ketimbang interface, design token, pola store. Kode menunjukkan itu semua; filenya cuma mengulanginya.
Sebuah paper dari ETH Zurich mengukur hal yang sama pada 138 issue nyata. Temuannya: context file tidak meningkatkan keberhasilan dan menambah biaya sekitar dua puluh persen, padahal model memang mengikuti instruksinya. Satu catatan: satu run tanpa file itu tetap menulis file terjemahan. Aturan itu bukan tidak mungkin dijalankan tanpa file, hanya tidak bisa diandalkan. Satu aturan rusak, yaitu yang tidak bisa diajarkan oleh kode. Dan run yang melewatkan pekerjaan itu juga yang paling murah.
Biaya filenya, per tugas
Biaya token dari sebuah CLAUDE.md adalah selisih jumlah token yang dibaca antara run dengan file itu dan run yang sama tanpanya.
| Tugas | Token lebih sedikit dibaca tanpa file |
|---|---|
| Komponen baru | 61% |
| Edit | 15% |
| Refactor | 5% |
| Perubahan store | 4% |
| Pertanyaan arsitektur | 14% |
| Selama sepuluh run | 32% token, 22% uang |
Tiga puluh dua persen adalah angka yang akan dijadikan headline oleh setiap video, dan itu angka yang salah. Penghematan terbesar ada pada run yang tidak menulis file terjemahan: lebih murah karena mengerjakan lebih sedikit. Saat outputnya identik, file itu menambah biaya empat sampai empat belas persen. Itulah harga sebenarnya, dan dua puluh persen dari paper tadi persis berada di antara dua angka itu.
Mekanismenya sekitar 1.800 token, dibaca lagi di setiap turn. Skill, hook, dan knowledge graph tidak menghasilkan efek yang bisa diukur, baik ada maupun tidak ada. Noise-nya lebih besar dari kebanyakan efek itu: tugas yang sama dengan file yang sama menghabiskan $2.11 pada satu run dan $1.33 pada run lainnya. Dua run menabrak turn cap, satu dengan file dan satu tanpanya. Jadi file itu menambah biaya sedikit di mana-mana dan hanya sekali layak dipertahankan, kecuali kalau ia juga berbohong.
Baris-baris yang berbohong
Baris yang berbohong adalah instruksi yang tidak bisa diikuti model atau yang sama sekali tidak mengubah apa pun. Baris yang disinggung di awal: import theme dari alias @design-tokens. Alias itu tidak ada: config TypeScript hanya memetakan satu prefix, dan folder tokens tidak punya file theme. Setiap run, dengan file atau tanpanya, melakukan apa yang dilakukan kode di sekitarnya, baris import yang sama sebanyak empat puluh empat kali.
File itu punya delapan puluh dua baris overview arsitektur. Pertanyaan yang sama, enam jawaban: keenamnya menemukan sembilan file yang sama, dari backend sampai layar, dengan urutan yang sama, baik dengan overview maupun tanpanya. Satu blok menunjuk ke knowledge graph yang tidak dimiliki clone-nya; saat graph itu ada, biaya pertanyaannya tetap sama.
| Ukuran | Nilai |
|---|---|
| Aturan ukuran Anthropic | di bawah 200 baris |
| File ini | 177 baris |
| File median di dataset reporails 30k-repo | 50 item, 12 directive |
| Baris directive di file ini | 24 dari 177 |
Posisi menentukan mana dari dua aturan yang bertentangan yang menang, dan model tidak pernah bilang begitu, sekitar sembilan puluh poin dalam pengujian satu vendor. Overview itu mungkin membantu tugas yang tidak diuji di sini: satu probe, satu jawaban. Jadi ada tiga jenis baris: yang layak dipertahankan, yang sudah diajarkan kode, dan yang berbohong.
Simpan, pindah, hapus: daftar singkatnya
Tiga tumpukan, dan pengukuran di balik masing-masing.
| Tumpukan | Apa yang masuk ke situ | Pengukuran |
|---|---|---|
| Simpan | Aturan yang tidak bisa ditunjukkan kode | 6 baris yang menyelamatkan 4 run |
| Pindah | Overview arsitektur dan command | 107 baris tanpa manfaat terukur |
| Hapus | Baris yang berbohong, dan baris yang sudah ditunjukkan tree | 44 run identik |
Simpan apa yang dua kali salah dilakukan model: itulah kriteria Anthropic sendiri untuk file ini. Pindahkan overview dan command ke dalam tree file yang dimuat saat dibutuhkan; postingan Anthropic bulan Juli menyebut repository sentral sebagai mitos. Hook tetap ada: sebuah gate tidak kedaluwarsa saat model makin baik. Potong prosa yang sudah dilewati modelnya, pertahankan gate-nya.
Filenya setelahnya: sekitar tujuh puluh baris, ditambah enam baris yang layak dipertahankan. Itulah metode Cherny, dibaca secara utuh: hapus, kembalikan satu per satu, ukur. Satu repository, satu model, dua run per sel; tumpukanmu akan berbeda, metodenya tidak. Menghapus file itu merugikan satu aturan dan hanya sedikit menghemat. Menemukan baris yang berbohong adalah kemenangannya.
AIDive