Kembali ke Blog

Sebulan Pakai Bot Review Kode AI di PR Saya: Ini yang Beneran Kepake

#ai#code-review#workflow
Sebulan Pakai Bot Review Kode AI di PR Saya: Ini yang Beneran Kepake

Selama ini review kode di project solo saya cuma ada dua tahap: saya nulis (atau baca hasil agent), terus saya baca ulang sendiri sebelum merge. Nggak ada second pair of eyes beneran, karena ya, kerja sendirian. Bulan ini saya coba nutup celah itu dengan pasang bot review AI otomatis di beberapa repo — yang komentar langsung di PR tiap kali ada push, kayak reviewer manusia tapi jalan dalam hitungan menit. Saya nggak nulis ini buat endorse tool tertentu, cuma mau jujur soal apa yang beneran kepake dan apa yang cuma jadi notifikasi yang saya swipe away.

Setup-nya gampang banget — hubungin ke GitHub, kasih akses ke repo, dan tiap kali saya buka PR, dalam beberapa menit udah ada komentar otomatis yang breakdown perubahannya per file. Nggak ada friction buat mulai coba. Yang saya nggak nyangka itu seberapa cepet saya mulai bisa nebak jenis komentar apa yang bakal muncul, sebelum saya baca sendiri diff-nya.

Yang beneran nolongin itu nangkep hal-hal boring yang gampang kelewat pas saya capek. Variable yang di-declare tapi nggak kepake, import yang nggak perlu, inconsistency kecil kayak satu function pakai async/await sementara function di sebelahnya masih pakai .then() chain padahal harusnya konsisten. Kelas masalah yang sebenernya gampang saya tangkep sendiri kalau lagi fresh, tapi pas lagi ngoding jam 11 malem buat ngejar deadline client, ini yang paling gampang lolos. Bot-nya nggak pernah capek, dan itu ternyata beneran berharga buat catatan-catatan level ini.

Yang nggak kepake: saran arsitektur level tinggi yang kedengeran pinter tapi nggak ngerti konteks proyeknya. Beberapa kali bot-nya nyaranin refactor ke pattern yang “lebih best-practice,” padahal nggak sesuai sama constraint proyek yang cuma dia nggak tau — misalnya proyek client yang emang sengaja simpel karena scope-nya kecil dan bakal di-handover ke tim internal yang levelnya junior, jadi over-engineering justru kontraproduktif. Bot-nya nggak punya akses ke konteks kayak gitu, dan nggak ada cara gampang buat ngasih tau itu selain saya sendiri yang nge-dismiss komentarnya satu-satu.

False positive-nya lumayan sering, dan itu yang bikin saya hampir berhenti pakai di minggu kedua. Ada beberapa kali bot-nya flag “potential null pointer” di kode yang sebenernya udah di-guard di baris sebelumnya, cuma guard-nya lewat helper function yang bot-nya nggak trace sampai situ. Kalau saya cuma skim komentar-komentarnya tanpa mikir, saya bisa buang waktu ngecek hal yang sebenernya udah aman. Ini yang bikin saya sadar bot review AI nggak beda jauh sama linter yang lebih pinter — berguna kalau saya treat sebagai sinyal buat dicek, bukan verdict final yang langsung dipercaya.

Yang paling berguna justru bukan soal nangkep bug, tapi soal ngasih ringkasan diff yang gede. Pas saya kerja bareng agent coding buat generate perubahan lumayan besar — lintas belasan file — bot review ini ngasih ringkasan naratif “perubahan ini nge-refactor validasi input di tiga endpoint dan nambahin satu middleware baru,” yang bikin saya lebih cepet orientasi sebelum baca line-by-line sendiri. Nggak ngurangin kebutuhan saya buat baca semuanya — tetep saya baca — tapi ngurangin waktu “loading” mental sebelum mulai review beneran.

Saya matiin komentarnya di beberapa jenis file, dan itu bikin sinyalnya jauh lebih bersih. Awalnya bot-nya juga komentar di file config, migration SQL yang generated otomatis, sama file test snapshot — semuanya noise yang nggak perlu direview manusia sama sekali. Setelah saya exclude jenis file itu, rasio komentar yang beneran berguna naik drastis. Mungkin obvious buat orang lain, tapi baru kepikiran saya setelah ngerasain langsung: tool AI kayak gini itu sebagus konfigurasi awalnya, bukan sebagus model di baliknya doang.

Buat project client, saya belum pasang ini secara default. Bukan karena nggak berguna, tapi karena beberapa client punya kebijakan soal tool pihak ketiga yang bisa akses kode mereka, dan saya nggak mau assume itu oke tanpa nanya dulu. Ini pertimbangan yang nggak muncul di artikel-artikel yang cuma bahas “cara pakai AI reviewer” — di dunia freelance ada lapisan izin dan kepercayaan client yang harus dilewatin dulu sebelum tool sekeren apapun bisa dipasang.

Ada satu momen yang beneran ngubah pandangan saya. Minggu ketiga, bot-nya nangkep API key yang ke-hardcode secara nggak sengaja. Saya lagi buru-buru nge-debug integrasi API pihak ketiga, sempet naruh key testing langsung di kode buat ngetes cepet, niatnya mau dihapus lagi sebelum commit. Saya lupa. Bot review-nya flag itu dalam hitungan menit setelah push, jauh sebelum saya sempet sadar sendiri. Untungnya itu masih di branch yang belum di-merge dan key-nya cuma testing key yang scope-nya terbatas, jadi dampaknya kecil. Tapi momen itu bikin saya sadar value-nya bukan cuma soal style konsistensi — ada kelas kesalahan yang beneran mahal kalau lolos, dan itu jenis kesalahan yang justru paling gampang saya lewatin sendiri karena saya udah tau kode itu punya saya dan otomatis kurang skeptis pas review ulang.

Saya juga mulai bandingin catatan bot-nya sama kesalahan yang saya inget dari diri sendiri di masa lalu — misalnya lupa await sebuah promise di dalam loop yang bikin race condition subtle. Bot-nya konsisten nangkep pola-pola kayak gitu, dan itu ngasih rasa aman tambahan buat kasus-kasus yang saya tau riskan tapi kadang lolos kalau saya lagi cape.

Kesimpulan sebulan ini: saya tetep pakai, tapi bukan pengganti review saya sendiri. Posisinya lebih kayak asisten yang nangkep hal-hal kecil yang kelewat pas saya capek, dan ngasih ringkasan cepet buat diff yang gede — bukan reviewer kedua yang beneran ngerti proyeknya. Saya masih baca semua diff line-by-line sebelum merge, sama kayak sebelumnya, cuma sekarang ada satu lapisan tambahan yang nangkep beberapa hal receh sebelum sampai ke mata saya sendiri.