Praktik Terbaik CLAUDE.md: Konfigurasi Claude Code untuk Proyek Apa Pun
CLAUDE.md adalah konfigurasi paling berdampak untuk Claude Code. Yang ditulis dengan baik mengubah bantuan AI generik menjadi keahlian spesifik proyek.
CLAUDE.md adalah file markdown di root proyek Anda. Claude Code membacanya di awal setiap sesi sebelum Anda mengetik apa pun. CLAUDE.md yang baik mengubah AI generik menjadi alat yang memahami konvensi, tech stack, dan batasan proyek Anda.
Apa yang harus Anda sertakan di CLAUDE.md?
Fokus pada informasi yang dibutuhkan developer cerdas yang bergabung dengan tim Anda di hari pertama. Jaga agar tetap praktis: tech stack, perintah, konvensi, dan hal-hal yang harus dihindari.
Template CLAUDE.md minimal
# Konteks Proyek
Aplikasi Next.js 14 dengan TypeScript, Tailwind CSS, dan Prisma.
Database: PostgreSQL. Auth: NextAuth.js.
## Perintah
- `npm run dev` — mulai dev server (port 3000)
- `npm run test` — jalankan tes Jest
- `npm run lint` — jalankan ESLint
- `npm run db:migrate` — jalankan migrasi Prisma
## Arsitektur
- Server component secara default, client component di /components/client/
- API route di /app/api/ dengan validasi Zod
- Query database di /lib/db/ (jangan pernah di component)
## Konvensi
- TypeScript strict mode, jangan pernah gunakan `any`
- Tailwind untuk styling, tanpa CSS modules
- Conventional commits: feat:, fix:, chore:
## JANGAN
- Memodifikasi file di /legacy/ atau /vendor/
- Mengubah konfigurasi auth tanpa persetujuan eksplisit
- Menambahkan dependency baru tanpa bertanya duluApa kesalahan CLAUDE.md yang paling umum?
| Kesalahan | Mengapa merugikan | Perbaikan |
|---|---|---|
| Terlalu panjang (500+ baris) | Membuang jendela konteks di setiap sesi | Jaga di bawah 200 baris, tautkan ke docs untuk detail |
| Terlalu samar ("tulis kode bersih") | Tidak memberikan panduan yang bisa ditindaklanjuti | Spesifik: "Gunakan server component secara default" |
| Perintah hilang | Claude menebak cara menjalankan/menguji/membangun | Daftar setiap npm script yang relevan |
| Tidak ada batasan | Claude mungkin memodifikasi file sensitif | Tambahkan bagian "JANGAN" yang jelas |
| Duplikat README | README untuk manusia, CLAUDE.md untuk AI | Fokus pada konvensi dan aturan, bukan deskripsi proyek |
Bagaimana cara menyusun CLAUDE.md untuk proyek besar?
Untuk codebase besar, gunakan sintaks @import untuk membagi konfigurasi antar direktori. Claude Code mengikuti impor dan membangun gambaran lengkap.
# Root CLAUDE.md
## Konvensi global
- TypeScript strict, tanpa `any`
- Semua API route memvalidasi input dengan Zod
@import packages/api/CLAUDE.md
@import packages/web/CLAUDE.md
@import packages/shared/CLAUDE.mdSetiap sub-CLAUDE.md berisi aturan spesifik untuk paket tersebut. Ini menjaga file root tetap pendek sambil memberikan Claude Code konteks mendalam tentang setiap area codebase.
Bagaimana cara menghasilkan CLAUDE.md secara otomatis?
Claude Code dapat menghasilkan CLAUDE.md awal dengan menganalisis proyek Anda:
# Hasilkan CLAUDE.md secara otomatis
claude /init
# Ini membuat CLAUDE.md berdasarkan:
# - Script package.json
# - Struktur proyek
# - File konfigurasi yang ada
# - Pola riwayat gitMulai dengan /init, lalu perbaiki secara manual. File yang dihasilkan otomatis adalah titik awal yang baik, tetapi tidak akan mengetahui konvensi tidak tertulis tim Anda. Tambahkan sendiri.
Bagaimana dengan hierarki memori CLAUDE.md?
Claude Code membaca file CLAUDE.md dari beberapa lokasi, berurutan berdasarkan prioritas:
- +CLAUDE.md root proyek (semua anggota tim berbagi ini)
- +File CLAUDE.md subdirektori (melalui @import)
- +~/.claude/CLAUDE.md (preferensi global pribadi Anda)
- +Auto Memory (MEMORY.md, dikelola oleh perintah /memory)
Pengaturan level proyek menimpa pengaturan pribadi. Ini berarti konvensi tim selalu menang atas preferensi individu.