AIDive

Saya Hapus CLAUDE.md dan Ukur Apa yang Rusak

Oleh AIDive · Terbit

Coding agent

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.

Sumber

Pertanyaan yang sering diajukan

Haruskah kamu menghapus CLAUDE.md seperti kata Boris Cherny?
Jangan asal-asalan. Ceramah Cherny menjelaskan sebuah ablation: hapus filenya, kembalikan satu per satu, dan ukur tiap barisnya. Pada file nyata 177 baris, menghapusnya merusak satu aturan dalam 44 run dan hanya sedikit menghemat; kemenangannya adalah menemukan baris yang berbohong.
Apa yang rusak saat kamu menghapus CLAUDE.md?
Pada repository ini, satu aturan: selalu tambahkan terjemahan bahasa Inggris dan Prancis. Tanpa file itu, tiga dari empat run melakukan hardcode pada heading di tugas komponen baru. Semua aturan lain bertahan karena kode di sekitarnya sudah menunjukkannya.
Berapa banyak token yang dihabiskan CLAUDE.md?
Sekitar 1.800 token dibaca lagi di setiap turn. Per tugas, itu berarti 4% sampai 61% token lebih sedikit dibaca tanpa file itu; saat outputnya identik file itu menambah biaya 4% sampai 14%, sesuai dengan rata-rata 20% pada paper ETH Zurich untuk 138 issue nyata.
Apa yang seharusnya tetap ada di CLAUDE.md?
Aturan yang tidak bisa ditunjukkan kode, yang juga merupakan kriteria Anthropic sendiri: simpan apa yang dua kali salah dilakukan model. Pindahkan overview dan daftar command ke file yang dimuat saat dibutuhkan, hapus instruksi yang menunjuk ke sesuatu yang tidak ada, dan pertahankan hook, karena gate tidak kedaluwarsa saat model makin baik.
Apakah context file seperti CLAUDE.md atau AGENTS.md meningkatkan kualitas coding agent?
Paper ETH Zurich pada 138 issue nyata menemukan bahwa context file tidak meningkatkan keberhasilan tugas dan menaikkan biaya inference rata-rata lebih dari 20%, meski model memang mengikuti instruksinya. Pengukuran pada satu repository ini berada di kisaran yang sama.
Apa itu ablation dalam istilah Claude Code?
Membuang satu bagian konfigurasi setiap kali, dengan model yang dikunci dan clone baru untuk tiap run, lalu mengukur efeknya. Anthropic memakainya untuk memangkas 80% system prompt Claude Code; di sini prosesnya berjalan lewat lima konfigurasi: penuh, tanpa file, tanpa skill, tanpa hook, tanpa semuanya.

Video terkait