- LLM adalah fungsi tanpa status, sehingga
CLAUDE.md berfungsi sebagai dokumen inti yang memperkenalkan codebase kepada Claude di setiap sesi
- File ini harus memuat WHAT (struktur), WHY (tujuan), dan HOW (cara kerja) proyek secara ringkas; terlalu banyak perintah yang tidak perlu justru menurunkan performa
- Claude dapat mengabaikan isi
CLAUDE.md jika, sesuai instruksi pada system message, dianggap kurang relevan
- File yang efektif hanya berisi informasi singkat yang berlaku umum, sementara instruksi detail dipisahkan ke dokumen lain dan dikelola dengan pendekatan Progressive Disclosure
- Karena
CLAUDE.md adalah titik dengan pengaruh tertinggi dalam agent harness, file ini sebaiknya ditulis manual dengan cermat, bukan dibuat otomatis
Sifat Stateless pada LLM dan Peran CLAUDE.md
- LLM menggunakan bobot yang tetap pada saat inferensi dan tidak mempertahankan pembelajaran atau ingatan antar sesi
- Karena itu, semua informasi harus diberikan sebagai token input agar model dapat memahami codebase
- Coding agent seperti Claude Code harus mengelola memori secara eksplisit, dan
CLAUDE.md adalah satu-satunya file yang otomatis disertakan dalam semua percakapan
- Akibatnya, tiga hal berikut menjadi penting
- Saat sesi dimulai, Claude tidak mengetahui apa pun tentang codebase
- Di setiap sesi, informasi yang diperlukan harus diberikan lagi
- Sarana standar untuk itu adalah
CLAUDE.md
Onboarding Codebase: WHAT, WHY, HOW
CLAUDE.md berperan sebagai dokumen onboarding yang membantu Claude memahami proyek
- WHAT: memberikan peta kode seperti tech stack, struktur proyek, dan susunan monorepo
- WHY: menjelaskan tujuan dan fungsi tiap komponen
- HOW: menjelaskan cara melakukan pekerjaan nyata seperti build, test, dan typecheck
- Namun, mencantumkan semua perintah itu tidak efisien; hanya informasi minimum yang benar-benar diperlukan yang sebaiknya dimasukkan
Mengapa Claude Mengabaikan CLAUDE.md
Prinsip Menulis CLAUDE.md yang Baik
Less (instructions) is more
- LLM secara stabil hanya dapat mengikuti sekitar 150~200 instruksi
- Semakin kecil modelnya, semakin tajam penurunan performanya, dan semakin tidak cocok untuk tugas multi-langkah
- System prompt Claude Code sendiri sudah berisi sekitar 50 instruksi
- Karena itu,
CLAUDE.md sebaiknya hanya memuat instruksi yang umum dan benar-benar penting dalam jumlah minimum
- Semakin banyak instruksi, semakin merata penurunan kualitas pelaksanaan semua instruksi
Panjang File dan Cakupan Penerapan
- LLM bekerja lebih baik dalam konteks yang fokus dan sangat relevan
- Karena
CLAUDE.md disertakan di semua sesi, hanya informasi yang berlaku umum yang sebaiknya dipertahankan di dalamnya
- Secara umum, disarankan untuk menjaganya di bawah 300 baris, dan kalau bisa lebih pendek lagi
- Contoh file dari HumanLayer kurang dari 60 baris
Progressive Disclosure
- Pada proyek besar, sulit memasukkan semua informasi ke satu file, sehingga pendekatan Progressive Disclosure direkomendasikan
- Instruksi detail dipisahkan ke file Markdown lain di folder
agent_docs/
- Contoh:
building_the_project.md, running_tests.md, code_conventions.md, dan sebagainya
- Di
CLAUDE.md, cukup cantumkan daftar file-file tersebut dan penjelasan singkatnya, serta instruksi agar Claude membacanya saat diperlukan
- Gunakan referensi
file:line alih-alih potongan kode agar tetap mutakhir
- Ini mirip dengan konsep Claude Skills, tetapi fokusnya pada pengelolaan instruksi, bukan penggunaan alat
Claude Bukan Linter
- Memasukkan pedoman style kode ke dalam
CLAUDE.md tidak efisien
- LLM mahal dan lambat, serta lebih tidak deterministik dibanding linter
- Aturan style biasanya dipelajari secara alami dari pola kode yang sudah ada, sehingga tidak perlu instruksi terpisah
- Untuk formatting, gunakan linter yang bisa memperbaiki otomatis (seperti Biome), lalu berikan ke Claude hanya hasil perbaikannya
- Jika perlu, gunakan Stop Hook atau Slash Command untuk mengotomatiskan formatting dan verifikasi
Jangan Dibuat Otomatis
CLAUDE.md yang dibuat dengan perintah /init atau fitur pembangkitan otomatis tidak direkomendasikan
- Alasannya, file ini adalah titik leverage tinggi yang memengaruhi semua sesi dan semua output
- Satu baris instruksi yang salah bisa memberi dampak berantai yang buruk pada kualitas kode secara keseluruhan
- Karena itu, setiap kalimat harus ditinjau dengan cermat dan ditulis manual
Kesimpulan
CLAUDE.md adalah dokumen untuk melakukan onboarding Claude ke codebase, dan harus mendefinisikan WHY, WHAT, HOW dengan jelas
- Instruksi harus diminimalkan, dan hanya isi yang umum serta ringkas yang perlu dimasukkan
- Dengan Progressive Disclosure, informasi yang diperlukan bisa diberikan secara bertahap
- Jangan gunakan Claude sebagai linter; gunakan tool khusus serta fitur hook dan command secara berdampingan
- Alih-alih membuatnya otomatis, penulisan manual yang hati-hati diperlukan untuk memaksimalkan kualitas harness secara keseluruhan
Belum ada komentar.