Gunakan alur Prompt-ke-PR dengan Claude Code secara lokal: tulis prompt kecil, kirim diff kecil, jalankan pemeriksaan, re-prompt saat gagal, dan capai PR siap-merge.

Prompt besar sekaligus sering berujung pada perubahan besar dan berantakan: puluhan file tersentuh, refactor yang tak terkait, dan kode yang belum sempat Anda pahami. Meski hasilnya teknis benar, review terasa berisiko karena sulit melihat apa yang berubah dan mengapa.
Diff kecil memperbaiki masalah itu. Ketika setiap perubahan dibatasi dan fokus, Anda bisa membacanya dalam beberapa menit, menangkap kesalahan lebih awal, dan menghindari merusak bagian lain yang tak ingin disentuh. Reviewer lebih mempercayai PR kecil, jadi merge terjadi lebih cepat dan dengan lebih sedikit komentar bolak-balik.
Prompt-ke-PR adalah loop sederhana:
Irama ini mengubah kegagalan menjadi umpan balik cepat daripada kejutan di akhir. Jika Anda meminta Claude Code mengubah aturan validasi, batasi hanya pada aturan itu. Jika sebuah tes gagal, tempelkan output yang gagal dan minta perbaikan terkecil yang membuat tes lulus, bukan penulisan ulang seluruh modul.
Satu hal tidak berubah: Anda tetap bertanggung jawab atas kode akhir. Perlakukan model seperti pasangan pemrogram lokal yang mengetik cepat, bukan autopilot. Anda yang memutuskan apa yang masuk, apa yang tetap, dan kapan aman membuka PR.
Mulailah dari baseline yang bersih. Jika branch Anda tertinggal atau tes sudah gagal, setiap saran berubah jadi tebak-tebakan. Tarik perubahan terbaru, rebase atau merge sesuai tim Anda, dan pastikan status saat ini sehat sebelum meminta apapun.
Pengaturan “pasangan pemrogram lokal” berarti Claude Code mengedit file di repo Anda sementara Anda mengendalikan tujuan, batasan, dan setiap diff. Model tidak tahu codebase Anda kecuali Anda tunjukkan, jadi jelaskan secara eksplisit file, batasan, dan perilaku yang diharapkan.
Sebelum prompt pertama, putuskan di mana pemeriksaan akan dijalankan. Jika Anda bisa menjalankan tes secara lokal, Anda akan mendapat umpan balik dalam beberapa menit yang menjaga iterasi tetap kecil. Jika beberapa pemeriksaan hanya berjalan di CI (aturan lint tertentu, suite panjang, langkah build), putuskan kapan Anda akan mengandalkan CI agar tidak menunggu setelah setiap perubahan kecil.
Pre-flight sederhana:
Buka catatan kecil saat bekerja. Tulis batasan seperti "no API changes," "pertahankan kompatibilitas mundur," "sentuh hanya modul X," serta keputusan yang Anda buat. Saat tes gagal, tempelkan pesan error persis di sana juga. Catatan kecil itu menjadi input terbaik untuk prompt berikutnya dan mencegah sesi melenceng.
Diff kecil dimulai dari prompt yang sengaja sempit. Jalan tercepat ke kode yang bisa di-merge adalah satu perubahan yang bisa Anda review dalam semenit, bukan refactor yang harus Anda pahami selama satu jam.
Prompt yang baik menyebutkan satu tujuan, satu area codebase, dan satu hasil yang diharapkan. Jika Anda tidak bisa menunjuk di mana perubahan harus ditempatkan (file, folder, atau modul), model akan menebak dan diff akan menyebar.
Bentuk prompt yang menjaga perubahan tetap kecil:
Batasan adalah senjata rahasia. Alih-alih "perbaiki bug login," nyatakan apa yang harus tetap: "Jangan ubah bentuk API," "Jangan ubah nama fungsi publik," "Tidak ada edit hanya karena formatting," "Hindari dependensi baru." Itu memberitahu pasangan Anda di mana tidak boleh menjadi pintar.
Saat perubahan masih terasa tidak jelas, minta rencana sebelum kode. Rencana singkat memaksa pekerjaan ke langkah-langkah dan memberi Anda kesempatan menyetujui langkah kecil pertama.
Goal: Fix the null crash when rendering the profile header.
Location: src/components/ProfileHeader.tsx only.
Constraints: Do not change styling, props, or any exported types.
Expected outcome: If user.name is missing, show "Anonymous" and no crash.
Diff constraint: Minimal diff. No refactors. No unrelated formatting.
If unclear: First reply with a 3-step plan, then wait for approval.
Jika Anda bekerja di tim, tambahkan juga batasan review: "Jaga di bawah ~30 baris perubahan" atau "Satu file saja kecuali sangat perlu." Itu membuat diff lebih mudah dipindai dan memperjelas prompt lanjutan saat ada yang gagal.
Jaga setiap loop fokus pada satu perubahan kecil yang bisa dites. Jika Anda bisa mendeskripsikan tujuan dalam satu kalimat dan memprediksi file yang akan berubah, itu ukuran yang tepat.
Unit kerja yang baik termasuk: memperbaiki satu bug dalam satu jalur (dengan repro dan guard), menyesuaikan satu tes untuk satu perilaku, melakukan refactor yang mempertahankan perilaku (rename, extract function, hapus duplikasi), atau memperbaiki satu pesan error atau aturan validasi.
Batasi waktu tiap loop. 10–20 menit biasanya cukup untuk menulis prompt jelas, menerapkan diff, dan menjalankan pemeriksaan cepat. Jika masih eksplorasi setelah 20 menit, perkecil unit atau alihkan ke investigasi saja (catatan, logging, tes yang gagal) dan hentikan di sana.
Definisikan "selesai" sebelum mulai:
Saat ruang lingkup mulai membesar, berhenti lebih awal. Jika Anda mendapati diri berkata "sekalian saja," itu berarti Anda menemukan iterasi berikutnya. Tangkap itu sebagai tindak lanjut, commit diff kecil saat ini, dan terus bergerak.
Sebelum menjalankan tes atau build, baca diff seperti reviewer. Di sinilah alur tetap bersih atau diam-diam melenceng ke wilayah "kenapa file ini tersentuh?".
Mulailah dengan meminta Claude Code meringkas apa yang diubah dalam bahasa biasa: file yang disentuh, perubahan perilaku, dan apa yang tidak diubah. Jika model tidak bisa menjelaskan perubahan dengan jelas, kemungkinan diff terlalu banyak.
Lalu baca sendiri. Cepat lihat dulu untuk scope, lalu baca untuk maksud. Anda mencari drift: formatting yang tidak terkait, refactor ekstra, simbol yang diganti nama, atau perubahan yang tak diminta.
Pre-check cepat:
Jika diff lebih besar dari yang diharapkan, jangan mencoba mengujinya dengan berharap. Roll back dan re-prompt untuk langkah yang lebih kecil. Misalnya: "Tambahkan test gagal yang mereproduksi bug. Tidak ada refactor." Diff kecil membuat kegagalan lebih mudah diinterpretasi dan membuat prompt berikutnya lebih tepat.
Diff kecil hanya bermanfaat jika Anda memverifikasinya segera. Tujuannya adalah loop rapat: ubah sedikit, periksa sedikit, tangkap kesalahan selagi konteks masih segar.
Mulailah dengan pemeriksaan tercepat yang bisa memberitahu "ini rusak." Jika Anda mengubah formatting atau import, jalankan lint atau formatter dulu. Jika Anda menyentuh logika bisnis, jalankan tes unit terfokus yang mencakup file atau paket itu. Jika Anda mengedit tipe atau konfigurasi build, jalankan kompilasi cepat.
Urutan praktis:
Saat sesuatu gagal, rekam dua hal sebelum memperbaiki apapun: perintah yang Anda jalankan dan output error lengkap (copy apa adanya). Rekaman itu menjaga prompt berikutnya spesifik dan mencegah loop "masih gagal" yang samar.
Jaga scope tetap ketat. Jika lint gagal dan tes juga gagal, perbaiki lint dulu, jalankan ulang, lalu tangani tes. Jangan gabungkan "bersih-bersih cepat" dengan perbaikan crash dalam pass yang sama.
Saat pemeriksaan gagal, perlakukan output kegagalan sebagai prompt Anda berikutnya. Loop tercepat adalah: tempel error, dapatkan diagnosis, terapkan perbaikan minimal, jalankan ulang.
Tempel kegagalan apa adanya, termasuk perintah dan stack trace penuh. Minta kemungkinan penyebab terlebih dahulu, bukan daftar opsi. Claude Code bekerja lebih baik ketika bisa berlabuh pada nomor baris dan pesan yang tepat daripada menebak.
Tambahkan satu kalimat tentang apa yang sudah Anda coba agar tidak mengirim Anda berputar-putar. Ulangi batasan yang penting ("Jangan ubah public APIs," "Pertahankan perilaku saat ini, hanya perbaiki crash"). Lalu minta patch terkecil yang membuat pemeriksaan lulus.
Prompt kegagalan yang baik mencakup:
Jika perbaikan yang diusulkan mengubah perilaku, minta tes yang membuktikan perilaku baru itu benar. Jika sebuah handler kini mengembalikan 400 bukan 500, minta satu tes fokus yang gagal pada kode lama dan lulus pada perbaikan. Itu menjaga pekerjaan jujur dan membuat PR lebih dipercaya.
Berhenti setelah pemeriksaan hijau dan diff masih merepresentasikan satu ide. Jika model mulai memperbaiki kode yang tidak terkait, re-prompt dengan: "Hanya tangani tes yang gagal. Tidak ada pembersihan."
PR bisa di-merge cepat ketika jelas apa yang berubah, mengapa, dan bagaimana membuktikannya bekerja. Dengan alur ini, PR harus terbaca seperti cerita pendek: langkah kecil, alasan jelas.
Samakan commit dengan iterasi Anda. Jika Anda meminta satu perubahan perilaku, buat itu satu commit. Jika lalu memperbaiki tes yang gagal, itu commit berikutnya. Reviewer bisa mengikuti jalur dan percaya Anda tidak menyelundupkan perubahan ekstra.
Tulis pesan commit untuk menjelaskan maksud, bukan nama file. "Perbaiki redirect login saat session kadaluarsa" lebih baik daripada "Update auth middleware." Saat pesan menamai hasil yang terlihat pengguna, reviewer tidak perlu menebak.
Hindari mencampur refactor dengan perubahan perilaku dalam commit yang sama. Jika ingin mengganti nama variabel atau memindahkan helper, lakukan terpisah (atau lewati dulu). Noise memperlambat review.
Di deskripsi PR, tetap singkat dan konkret:
Contoh: halaman billing crash karena record customer null. Commit 1 menambah guard dan state error yang jelas. Commit 2 menambah tes untuk kasus null. Deskripsi PR: "Buka Billing, muat customer tanpa profil, konfirmasi halaman menampilkan empty state baru." Itu tipe PR yang bisa disetujui cepat.
Irama ini rusak ketika scope diam-diam meluas. Prompt yang dimulai sebagai "perbaiki tes yang gagal" berubah jadi "tingkatkan error handling di seluruh modul," dan tiba-tiba Anda mereview diff besar dengan maksud yang tidak jelas. Jaga ketat: satu tujuan, satu set perubahan, satu set pemeriksaan.
Perlambatan lain adalah menerima refactor yang terlihat lebih bagus. Rename, pindah file, dan perubahan gaya menciptakan noise dan menyulitkan melihat perubahan perilaku yang nyata.
Perangkap umum:
Contoh konkret: sebuah tes gagal dengan "expected 400, got 500." Jika Anda hanya menempel bagian akhir stack trace, Anda sering mendapat saran try/catch generik. Jika Anda menempel output tes penuh, Anda mungkin melihat isu nyata: cabang validasi yang hilang. Itu mengarah ke diff kecil dan fokus.
Sebelum commit, baca diff seperti reviewer. Tanyakan: apakah setiap baris melayani permintaan, dan bisa saya jelaskan dalam satu kalimat? Jika tidak, revert perubahan ekstra dan re-prompt dengan permintaan yang lebih sempit.
Seorang pengguna melapor: "Halaman settings kadang kembali ke default setelah menyimpan." Anda tarik main, jalankan tes, dan melihat satu kegagalan. Atau tidak ada tes, hanya repro jelas.
Perlakukan ini sebagai loop: satu permintaan kecil, satu diff kecil, lalu pemeriksaan.
Pertama, berikan Claude Code konteks terkecil yang berguna: output tes yang gagal (atau langkah reproduksi), path file yang dicurigai, dan tujuan ("pertahankan perilaku kecuali perbaiki reset"). Minta diagnosis dan patch minimal, bukan refactor.
Lalu bekerja dalam loop singkat:
Jalankan pemeriksaan setelah mereview diff.
Jika pemeriksaan lulus tetapi Anda khawatir regresi, tambahkan coverage.
Akhiri dengan deskripsi PR kecil: apa bugnya, kenapa terjadi, dan apa yang berubah. Tambahkan catatan reviewer seperti "hanya menyentuh file X" atau "menambah satu tes untuk kasus reset" agar review terasa aman.
Tepat sebelum membuka pull request, lakukan satu pass terakhir agar pekerjaan mudah direview dan aman di-merge.
Contoh cepat: jika Anda memperbaiki bug login tapi juga mereformat 20 file, batalkan commit formatting. Reviewer Anda harus fokus pada perbaikan login, bukan heran apa lagi yang bergeser.
Jika ada item yang gagal, lakukan satu loop kecil lagi: buat diff kecil, jalankan pemeriksaan, dan perbarui catatan PR. Loop terakhir sering menghemat jam bolak-balik.
Konsistensi mengubah sesi yang baik menjadi alur yang dapat diandalkan. Pilih loop default dan jalankan dengan cara yang sama setiap kali. Setelah seminggu, prompt Anda akan lebih singkat dan diff Anda lebih mudah direview.
Rutin sederhana:
Template prompt pribadi membantu Anda disiplin: "Ubah hanya yang diperlukan. Sentuh maksimal 2 file. Pertahankan perilaku publik kecuali saya katakan lain. Kasih tahu perintah yang harus dijalankan dan seperti apa suksesnya."
Jika Anda membangun di dalam Koder.ai, Anda bisa memakai loop yang sama di antarmuka chat-nya. Mode perencanaan cocok untuk merencanakan slice mergeable terkecil (input, output, dan pemeriksaan penerimaan), dan snapshot serta rollback membantu Anda cepat pulih saat eksperimen melenceng.
Setelah perubahan stabil, ekspor source code untuk menjalankan tooling lokal biasa, CI, dan review rekan seperti di repo normal Anda. Deploy saat butuh validasi di dunia nyata, misalnya mengecek alur end-to-end.
Jadikan loop ini kebiasaan. Prompt kecil, diff kecil, pemeriksaan sering, dan koreksi cepat akan menghasilkan PR yang terasa membosankan dalam arti terbaiknya.
Default: bidik satu perubahan kecil yang bisa direview dan Anda bisa jelaskan dengan satu kalimat.
Aturan praktis: Anda seharusnya dapat memprediksi file mana yang akan berubah, dan memvalidasinya dengan satu pemeriksaan cepat (tes terfokus, lint, atau jalankan singkat). Jika tidak bisa, tugasnya masih terlalu besar—pecah jadi dua loop terpisah: “tambah test repro” dan “perbaiki bug”.
Ya—mulailah dengan meminta rencana singkat ketika tujuannya belum jelas.
Gunakan gerbang sederhana:
Ini mencegah model menebak dan menyentuh file tambahan sebelum Anda menyetujui pendekatannya.
Sertakan hal-hal ini di prompt Anda:
Berhenti dan perkecil scope segera.
Langkah praktis:
X. Tidak ada refactor. Tidak ada formatting yang tidak terkait.”Mencoba “menyelesaikan dengan tes” pada diff yang melebar biasanya lebih memakan waktu dibanding mengulang dengan langkah yang lebih kecil.
Baca diff dulu, lalu jalankan pemeriksaan.
Urutan sederhana:
Tempelkan kegagalan persis seperti tampilannya dan minta perbaikan terkecil.
Sertakan:
Hindari “masih gagal” tanpa detail—output spesifik adalah yang memberi dasar untuk patch yang presisi.
Perlakukan model seperti pengetik cepat, bukan autopilot.
Anda bertanggung jawab untuk:
Kebiasaan yang baik: minta ringkasan bahasa biasa: apa yang berubah, apa yang tidak berubah, dan mengapa.
Pisahkan secara default.
Mencampur refactor dengan perubahan perilaku menambah noise dan membuat niat sulit diverifikasi.
Jaga singkat dan konkrit:
Jika PR Anda seperti “satu ide, dibuktikan oleh satu pemeriksaan”, biasanya cepat di-approve.
Koder.ai mendukung disiplin yang sama dengan beberapa fitur bantu:
Struktur ini otomatis membatasi ruang lingkup dan mempercepat review.
Ini menjaga loop tetap rapat dan memudahkan interpretasi kegagalan.
Gunakan fitur ini untuk menjaga iterasi kecil dan dapat dibatalkan, lalu merge lewat proses review standar Anda.