Sebagian besar praktik terbaik didasarkan pada satu batasan: jendela konteks Claude terisi dengan cepat, dan kinerja menurun saat terisi. Jendela konteks Claude menyimpan seluruh percakapan Anda, termasuk setiap pesan, setiap file yang dibaca Claude, dan setiap output perintah. Namun, ini dapat terisi dengan cepat. Sesi debugging tunggal atau eksplorasi basis kode mungkin menghasilkan dan mengonsumsi puluhan ribu token. Ini penting karena kinerja LLM menurun saat konteks terisi. Ketika jendela konteks hampir penuh, Claude mungkin mulai “lupa” instruksi sebelumnya atau membuat lebih banyak kesalahan. Jendela konteks adalah sumber daya paling penting untuk dikelola. Lacak penggunaan konteks secara berkelanjutan dengan baris status khusus, dan lihat Kurangi penggunaan token untuk strategi mengurangi penggunaan token.
Berikan Claude cara untuk memverifikasi pekerjaannya
Claude berkinerja jauh lebih baik ketika dapat memverifikasi pekerjaannya sendiri, seperti menjalankan tes, membandingkan tangkapan layar, dan memvalidasi output. Tanpa kriteria kesuksesan yang jelas, mungkin menghasilkan sesuatu yang terlihat benar tetapi sebenarnya tidak berfungsi. Anda menjadi satu-satunya loop umpan balik, dan setiap kesalahan memerlukan perhatian Anda.| Strategi | Sebelum | Sesudah |
|---|---|---|
| Berikan kriteria verifikasi | ”implementasikan fungsi yang memvalidasi alamat email" | "tulis fungsi validateEmail. contoh kasus uji: [email protected] adalah true, invalid adalah false, [email protected] adalah false. jalankan tes setelah mengimplementasikan” |
| Verifikasi perubahan UI secara visual | ”buat dashboard terlihat lebih baik" | "[tempel tangkapan layar] implementasikan desain ini. ambil tangkapan layar hasilnya dan bandingkan dengan yang asli. daftar perbedaan dan perbaiki” |
| Tangani penyebab akar, bukan gejala | ”build gagal" | "build gagal dengan kesalahan ini: [tempel kesalahan]. perbaiki dan verifikasi build berhasil. tangani penyebab akar, jangan tekan kesalahan” |
Jelajahi terlebih dahulu, kemudian rencanakan, kemudian kode
Membiarkan Claude langsung melompat ke pengkodean dapat menghasilkan kode yang menyelesaikan masalah yang salah. Gunakan Plan Mode untuk memisahkan eksplorasi dari eksekusi. Alur kerja yang direkomendasikan memiliki empat fase:Jelajahi
Masukkan Plan Mode. Claude membaca file dan menjawab pertanyaan tanpa membuat perubahan.
claude (Plan Mode)
Rencanakan
Minta Claude untuk membuat rencana implementasi terperinci.Tekan
claude (Plan Mode)
Ctrl+G untuk membuka rencana di editor teks Anda untuk pengeditan langsung sebelum Claude melanjutkan.Implementasikan
Beralih kembali ke Normal Mode dan biarkan Claude kode, memverifikasi terhadap rencananya.
claude (Normal Mode)
Plan Mode berguna, tetapi juga menambah overhead.Untuk tugas di mana cakupannya jelas dan perbaikannya kecil (seperti memperbaiki typo, menambahkan baris log, atau mengganti nama variabel) minta Claude untuk melakukannya secara langsung.Perencanaan paling berguna ketika Anda tidak yakin tentang pendekatannya, ketika perubahan memodifikasi beberapa file, atau ketika Anda tidak terbiasa dengan kode yang dimodifikasi. Jika Anda dapat menjelaskan diff dalam satu kalimat, lewati rencana.
Berikan konteks spesifik dalam prompt Anda
Claude dapat menyimpulkan niat, tetapi tidak dapat membaca pikiran Anda. Referensikan file spesifik, sebutkan batasan, dan tunjukkan pola contoh.| Strategi | Sebelum | Sesudah |
|---|---|---|
| Batasi tugas. Tentukan file mana, skenario apa, dan preferensi pengujian. | ”tambahkan tes untuk foo.py" | "tulis tes untuk foo.py yang mencakup kasus tepi di mana pengguna logout. hindari mock.” |
| Tunjukkan sumber. Arahkan Claude ke sumber yang dapat menjawab pertanyaan. | ”mengapa ExecutionFactory memiliki api yang aneh?" | "lihat melalui riwayat git ExecutionFactory dan ringkas bagaimana api-nya menjadi seperti ini” |
| Referensikan pola yang ada. Tunjukkan Claude pola dalam basis kode Anda. | ”tambahkan widget kalender" | "lihat bagaimana widget yang ada diimplementasikan di halaman beranda untuk memahami pola. HotDogWidget.php adalah contoh yang baik. ikuti pola untuk mengimplementasikan widget kalender baru yang memungkinkan pengguna memilih bulan dan paginate maju/mundur untuk memilih tahun. bangun dari awal tanpa perpustakaan selain yang sudah digunakan dalam basis kode.” |
| Jelaskan gejala. Berikan gejala, lokasi yang mungkin, dan apa “diperbaiki” terlihat seperti. | ”perbaiki bug login" | "pengguna melaporkan bahwa login gagal setelah timeout sesi. periksa alur auth di src/auth/, terutama penyegaran token. tulis tes yang gagal yang mereproduksi masalah, kemudian perbaiki” |
"apa yang akan Anda tingkatkan dalam file ini?" dapat mengungkap hal-hal yang tidak akan Anda pikirkan untuk ditanyakan.
Berikan konten kaya
Anda dapat memberikan data kaya kepada Claude dalam beberapa cara:- Referensikan file dengan
@alih-alih menjelaskan di mana kode berada. Claude membaca file sebelum merespons. - Tempel gambar secara langsung. Salin/tempel atau seret dan lepas gambar ke dalam prompt.
- Berikan URL untuk dokumentasi dan referensi API. Gunakan
/permissionsuntuk allowlist domain yang sering digunakan. - Pipa data dengan menjalankan
cat error.log | claudeuntuk mengirim konten file secara langsung. - Biarkan Claude mengambil apa yang dibutuhkan. Beri tahu Claude untuk menarik konteks sendiri menggunakan perintah Bash, alat MCP, atau dengan membaca file.
Konfigurasi lingkungan Anda
Beberapa langkah setup membuat Claude Code jauh lebih efektif di semua sesi Anda. Untuk gambaran lengkap fitur ekstensi dan kapan menggunakan masing-masing, lihat Perluas Claude Code.Tulis CLAUDE.md yang efektif
CLAUDE.md adalah file khusus yang dibaca Claude di awal setiap percakapan. Sertakan perintah Bash, gaya kode, dan aturan alur kerja. Ini memberikan Claude konteks persisten yang tidak dapat disimpulkan dari kode saja. Perintah/init menganalisis basis kode Anda untuk mendeteksi sistem build, kerangka kerja tes, dan pola kode, memberikan Anda fondasi solid untuk disempurnakan.
Tidak ada format yang diperlukan untuk file CLAUDE.md, tetapi tetap singkat dan mudah dibaca manusia. Sebagai contoh:
CLAUDE.md
| ✅ Sertakan | ❌ Kecualikan |
|---|---|
| Perintah Bash yang tidak dapat ditebak Claude | Apa pun yang dapat diketahui Claude dengan membaca kode |
| Aturan gaya kode yang berbeda dari default | Konvensi bahasa standar yang sudah diketahui Claude |
| Instruksi pengujian dan test runner pilihan | Dokumentasi API terperinci (tautkan ke dokumen sebagai gantinya) |
| Etiket repositori (penamaan cabang, konvensi PR) | Informasi yang berubah sering |
| Keputusan arsitektur khusus untuk proyek Anda | Penjelasan panjang atau tutorial |
| Keanehan lingkungan pengembang (variabel env yang diperlukan) | Praktik yang jelas sendiri seperti “tulis kode yang bersih” |
| Gotcha umum atau perilaku yang tidak jelas | Deskripsi file demi file dari basis kode |
@path/to/import:
CLAUDE.md
- Folder home (
~/.claude/CLAUDE.md): berlaku untuk semua sesi Claude - Root proyek (
./CLAUDE.md): periksa ke dalam git untuk dibagikan dengan tim Anda - Direktori induk: berguna untuk monorepo di mana
root/CLAUDE.mddanroot/foo/CLAUDE.mdditarik secara otomatis - Direktori anak: Claude menarik file CLAUDE.md anak sesuai permintaan saat bekerja dengan file di direktori tersebut
Konfigurasi izin
Secara default, Claude Code meminta izin untuk tindakan yang mungkin memodifikasi sistem Anda: penulisan file, perintah Bash, alat MCP, dll. Ini aman tetapi membosankan. Setelah persetujuan kesepuluh Anda tidak benar-benar meninjau lagi, Anda hanya mengklik. Ada tiga cara untuk mengurangi gangguan ini:- Auto mode: model classifier terpisah meninjau perintah dan memblokir hanya apa yang terlihat berisiko: eskalasi cakupan, infrastruktur yang tidak dikenal, atau tindakan yang didorong konten bermusuhan. Terbaik ketika Anda mempercayai arah umum tugas tetapi tidak ingin mengklik setiap langkah
- Allowlist izin: izinkan alat spesifik yang Anda tahu aman, seperti
npm run lintataugit commit - Sandboxing: aktifkan isolasi tingkat OS yang membatasi akses sistem file dan jaringan, memungkinkan Claude bekerja lebih bebas dalam batas yang ditentukan
Gunakan alat CLI
Alat CLI adalah cara paling efisien konteks untuk berinteraksi dengan layanan eksternal. Jika Anda menggunakan GitHub, instal CLIgh. Claude tahu cara menggunakannya untuk membuat masalah, membuka pull request, dan membaca komentar. Tanpa gh, Claude masih dapat menggunakan GitHub API, tetapi permintaan yang tidak diautentikasi sering kali mencapai batas laju.
Claude juga efektif dalam mempelajari alat CLI yang tidak diketahuinya. Coba prompt seperti Use 'foo-cli-tool --help' to learn about foo tool, then use it to solve A, B, C.
Hubungkan server MCP
Dengan server MCP, Anda dapat meminta Claude untuk mengimplementasikan fitur dari pelacak masalah, query database, menganalisis data pemantauan, mengintegrasikan desain dari Figma, dan mengotomatisasi alur kerja.Atur hooks
Hooks menjalankan skrip secara otomatis pada titik tertentu dalam alur kerja Claude. Tidak seperti instruksi CLAUDE.md yang bersifat penasihat, hooks bersifat deterministik dan menjamin tindakan terjadi. Claude dapat menulis hooks untuk Anda. Coba prompt seperti “Tulis hook yang menjalankan eslint setelah setiap pengeditan file” atau “Tulis hook yang memblokir penulisan ke folder migrasi.” Edit.claude/settings.json secara langsung untuk mengonfigurasi hooks dengan tangan, dan jalankan /hooks untuk menjelajahi apa yang dikonfigurasi.
Buat skills
Skills memperluas pengetahuan Claude dengan informasi khusus untuk proyek, tim, atau domain Anda. Claude menerapkannya secara otomatis saat relevan, atau Anda dapat menginvokannya secara langsung dengan/skill-name.
Buat skill dengan menambahkan direktori dengan SKILL.md ke .claude/skills/:
.claude/skills/api-conventions/SKILL.md
.claude/skills/fix-issue/SKILL.md
/fix-issue 1234 untuk menginvokannya. Gunakan disable-model-invocation: true untuk alur kerja dengan efek samping yang ingin Anda picu secara manual.
Buat subagent khusus
Subagents berjalan dalam konteks mereka sendiri dengan set alat yang diizinkan mereka sendiri. Mereka berguna untuk tugas yang membaca banyak file atau memerlukan fokus khusus tanpa mengacaukan percakapan utama Anda..claude/agents/security-reviewer.md
Instal plugins
Plugins menggabungkan skills, hooks, subagent, dan server MCP menjadi satu unit yang dapat diinstal dari komunitas dan Anthropic. Jika Anda bekerja dengan bahasa yang diketik, instal plugin code intelligence untuk memberikan Claude navigasi simbol presisi dan deteksi kesalahan otomatis setelah pengeditan. Untuk panduan memilih antara skills, subagent, hooks, dan MCP, lihat Perluas Claude Code.Berkomunikasi secara efektif
Cara Anda berkomunikasi dengan Claude Code secara signifikan mempengaruhi kualitas hasil.Tanyakan pertanyaan basis kode
Saat onboarding ke basis kode baru, gunakan Claude Code untuk pembelajaran dan eksplorasi. Anda dapat mengajukan Claude pertanyaan yang sama seperti yang Anda tanyakan kepada insinyur lain:- Bagaimana cara logging bekerja?
- Bagaimana cara membuat endpoint API baru?
- Apa yang dilakukan
async move { ... }pada baris 134 darifoo.rs? - Kasus tepi apa yang ditangani
CustomerOnboardingFlowImpl? - Mengapa kode ini memanggil
foo()alih-alihbar()pada baris 333?
Biarkan Claude mewawancarai Anda
Claude menanyakan tentang hal-hal yang mungkin belum Anda pertimbangkan, termasuk implementasi teknis, UI/UX, kasus tepi, dan trade-off.Kelola sesi Anda
Percakapan bersifat persisten dan dapat dibalik. Gunakan ini untuk keuntungan Anda!Perbaiki arah dengan cepat dan sering
Hasil terbaik datang dari loop umpan balik yang ketat. Meskipun Claude kadang-kadang menyelesaikan masalah dengan sempurna pada upaya pertama, memperbaikinya dengan cepat umumnya menghasilkan solusi yang lebih baik lebih cepat.Esc: hentikan Claude di tengah-tindakan dengan tombolEsc. Konteks dipertahankan, jadi Anda dapat mengarahkan kembali.Esc + Escatau/rewind: tekanEscdua kali atau jalankan/rewinduntuk membuka menu rewind dan mengembalikan percakapan dan status kode sebelumnya, atau ringkas dari pesan yang dipilih."Undo that": biarkan Claude mengembalikan perubahannya./clear: atur ulang konteks antara tugas yang tidak terkait. Sesi panjang dengan konteks yang tidak relevan dapat mengurangi kinerja.
/clear dan mulai segar dengan prompt yang lebih spesifik yang menggabungkan apa yang Anda pelajari. Sesi bersih dengan prompt yang lebih baik hampir selalu mengungguli sesi panjang dengan koreksi terakumulasi.
Kelola konteks secara agresif
Claude Code secara otomatis mengompaksi riwayat percakapan saat Anda mendekati batas konteks, yang mempertahankan kode dan keputusan penting sambil membebaskan ruang. Selama sesi panjang, jendela konteks Claude dapat terisi dengan percakapan yang tidak relevan, konten file, dan perintah. Ini dapat mengurangi kinerja dan kadang-kadang mengalihkan Claude.- Gunakan
/clearsering antara tugas untuk mengatur ulang jendela konteks sepenuhnya - Ketika auto compaction dipicu, Claude meringkas apa yang paling penting, termasuk pola kode, status file, dan keputusan kunci
- Untuk kontrol lebih, jalankan
/compact <instructions>, seperti/compact Focus on the API changes - Untuk mengompaksi hanya bagian dari percakapan, gunakan
Esc + Escatau/rewind, pilih checkpoint pesan, dan pilih Summarize from here. Ini mengondensasi pesan dari titik itu maju sambil menjaga konteks awal tetap utuh. - Sesuaikan perilaku compaction di CLAUDE.md dengan instruksi seperti
"When compacting, always preserve the full list of modified files and any test commands"untuk memastikan konteks kritis bertahan dari ringkasan - Untuk pertanyaan cepat yang tidak perlu tetap dalam konteks, gunakan
/btw. Jawabannya muncul dalam overlay yang dapat ditutup dan tidak pernah memasuki riwayat percakapan, jadi Anda dapat memeriksa detail tanpa menumbuhkan konteks.
Gunakan subagent untuk investigasi
Karena konteks adalah batasan fundamental Anda, subagent adalah salah satu alat paling kuat yang tersedia. Ketika Claude meneliti basis kode, ia membaca banyak file, semuanya mengonsumsi konteks Anda. Subagent berjalan dalam jendela konteks terpisah dan melaporkan kembali ringkasan:Rewind dengan checkpoint
Claude secara otomatis membuat checkpoint sebelum perubahan. Tekan Escape dua kali atau jalankan/rewind untuk membuka menu rewind. Anda dapat mengembalikan percakapan saja, mengembalikan kode saja, mengembalikan keduanya, atau meringkas dari pesan yang dipilih. Lihat Checkpointing untuk detail.
Alih-alih merencanakan setiap langkah dengan hati-hati, Anda dapat memberi tahu Claude untuk mencoba sesuatu yang berisiko. Jika tidak berhasil, rewind dan coba pendekatan berbeda. Checkpoint bertahan di seluruh sesi, jadi Anda dapat menutup terminal dan masih rewind nanti.
Lanjutkan percakapan
Claude Code menyimpan percakapan secara lokal. Ketika tugas mencakup beberapa sesi, Anda tidak harus menjelaskan ulang konteksnya:/rename untuk memberikan sesi nama deskriptif seperti "oauth-migration" atau "debugging-memory-leak" sehingga Anda dapat menemukannya nanti. Perlakukan sesi seperti cabang: alur kerja yang berbeda dapat memiliki konteks terpisah dan persisten.
Otomatisasi dan skalakan
Setelah Anda efektif dengan satu Claude, kalikan output Anda dengan sesi paralel, mode non-interaktif, dan pola fan-out. Semuanya sejauh ini mengasumsikan satu manusia, satu Claude, dan satu percakapan. Tetapi Claude Code skalakan secara horizontal. Teknik di bagian ini menunjukkan bagaimana Anda dapat melakukan lebih banyak.Jalankan mode non-interaktif
Denganclaude -p "your prompt", Anda dapat menjalankan Claude secara non-interaktif, tanpa sesi. Mode non-interaktif adalah cara Anda mengintegrasikan Claude ke dalam pipeline CI, pre-commit hooks, atau alur kerja otomatis apa pun. Format output memungkinkan Anda mengurai hasil secara terprogram: teks biasa, JSON, atau JSON streaming.
Jalankan beberapa sesi Claude
Ada tiga cara utama untuk menjalankan sesi paralel:- Aplikasi desktop Claude Code: Kelola beberapa sesi lokal secara visual. Setiap sesi mendapat worktree terisolasi sendiri.
- Claude Code di web: Jalankan di infrastruktur cloud aman Anthropic dalam VM terisolasi.
- Tim agen: Koordinasi otomatis dari beberapa sesi dengan tugas bersama, pesan, dan pemimpin tim.
| Sesi A (Penulis) | Sesi B (Peninjau) |
|---|---|
Implementasikan rate limiter untuk endpoint API kami | |
Tinjau implementasi rate limiter di @src/middleware/rateLimiter.ts. Cari kasus tepi, kondisi race, dan konsistensi dengan pola middleware yang ada. | |
Berikut adalah umpan balik tinjauan: [output Sesi B]. Tangani masalah ini. |
Fan out di seluruh file
Untuk migrasi besar atau analisis, Anda dapat mendistribusikan pekerjaan di seluruh banyak invokasi Claude paralel:Hasilkan daftar tugas
Biarkan Claude membuat daftar semua file yang perlu dimigrasikan (misalnya,
list all 2,000 Python files that need migrating)--verbose untuk debugging selama pengembangan, dan matikan dalam produksi.
Jalankan secara otonom dengan auto mode
Untuk eksekusi tanpa gangguan dengan pemeriksaan keamanan latar belakang, gunakan auto mode. Model classifier meninjau perintah sebelum dijalankan, memblokir eskalasi cakupan, infrastruktur yang tidak dikenal, dan tindakan yang didorong konten bermusuhan sambil membiarkan pekerjaan rutin berjalan tanpa prompt.-p, auto mode membatalkan jika classifier secara berulang memblokir tindakan, karena tidak ada pengguna untuk kembali. Lihat kapan auto mode kembali untuk ambang batas.
Hindari pola kegagalan umum
Ini adalah kesalahan umum. Mengenalinya lebih awal menghemat waktu:- Sesi kitchen sink. Anda mulai dengan satu tugas, kemudian meminta Claude sesuatu yang tidak terkait, kemudian kembali ke tugas pertama. Konteks penuh dengan informasi yang tidak relevan.
Perbaikan:
/clearantara tugas yang tidak terkait. - Mengoreksi berulang kali. Claude melakukan sesuatu yang salah, Anda memperbaikinya, masih salah, Anda memperbaiki lagi. Konteks tercemar dengan pendekatan yang gagal.
Perbaikan: Setelah dua koreksi yang gagal,
/cleardan tulis prompt awal yang lebih baik menggabungkan apa yang Anda pelajari. - CLAUDE.md yang terlalu spesifik. Jika CLAUDE.md Anda terlalu panjang, Claude mengabaikan setengahnya karena aturan penting hilang dalam kebisingan.
Perbaikan: Pangkas tanpa ampun. Jika Claude sudah melakukan sesuatu dengan benar tanpa instruksi, hapus atau ubah menjadi hook.
- Kesenjangan kepercayaan-kemudian-verifikasi. Claude menghasilkan implementasi yang terlihat masuk akal tetapi tidak menangani kasus tepi.
Perbaikan: Selalu berikan verifikasi (tes, skrip, tangkapan layar). Jika Anda tidak dapat memverifikasinya, jangan kirimkan.
- Eksplorasi tak terbatas. Anda meminta Claude untuk “menyelidiki” sesuatu tanpa membatasinya. Claude membaca ratusan file, mengisi konteks.
Perbaikan: Batasi investigasi secara sempit atau gunakan subagent sehingga eksplorasi tidak mengonsumsi konteks utama Anda.
Kembangkan intuisi Anda
Pola dalam panduan ini bukan batu loncatan. Mereka adalah titik awal yang bekerja dengan baik secara umum, tetapi mungkin tidak optimal untuk setiap situasi. Kadang-kadang Anda harus membiarkan konteks terakumulasi karena Anda mendalam dalam satu masalah kompleks dan riwayat berharga. Kadang-kadang Anda harus melewati perencanaan dan membiarkan Claude mengetahuinya karena tugas bersifat eksplorasi. Kadang-kadang prompt yang samar adalah tepat karena Anda ingin melihat bagaimana Claude menafsirkan masalah sebelum membatasinya. Perhatikan apa yang berhasil. Ketika Claude menghasilkan output yang hebat, perhatikan apa yang Anda lakukan: struktur prompt, konteks yang Anda berikan, mode yang Anda gunakan. Ketika Claude berjuang, tanyakan mengapa. Apakah konteksnya terlalu bising? Prompt terlalu samar? Tugas terlalu besar untuk satu pass? Seiring waktu, Anda akan mengembangkan intuisi yang tidak dapat ditangkap oleh panduan apa pun. Anda akan tahu kapan harus spesifik dan kapan harus terbuka, kapan harus merencanakan dan kapan harus mengeksplorasi, kapan harus menghapus konteks dan kapan harus membiarkannya terakumulasi.Sumber daya terkait
- Cara Claude Code Bekerja: loop agentic, alat, dan manajemen konteks
- Perluas Claude Code: skills, hooks, MCP, subagent, dan plugins
- Alur kerja umum: resep langkah demi langkah untuk debugging, pengujian, PR, dan lainnya
- CLAUDE.md: simpan konvensi proyek dan konteks persisten