Verification Loop: Skill Inti Agentic Coding

Verification loop adalah siklus bertindak-mengamati-mengoreksi yang diterapkan pada kode: agen membuat perubahan, menjalankan pengecekan yang mengembalikan lolos atau gagal yang jelas, membaca hasilnya, dan menyesuaikan hingga pengecekan lolos. Pengecekannya bisa berupa test, pengecekan tipe, linter, build, atau probe runtime. Ia memberi agen kebenaran dasar alih-alih membiarkannya mengklaim kemenangan atas penilaiannya sendiri.
Sebuah language model adalah generator yang kuat tetapi pengkritik diri yang lemah, sehingga pengecekan eksternal melakukan kritik itu untuknya dan mengubah tugas terbuka menjadi pencarian dengan tujuan yang jelas. Boris Cherny, yang membangun Claude Code, menggambarkan siklus umpan balik ini sebagai alasan tool itu bekerja. Ia adalah kebiasaan paling berdaya ungkit yang bisa Anda tambahkan ke alur kerja agen.
Ringkas semua yang Anda pedulikan, yaitu test, tipe, lint, dan build, menjadi satu perintah yang mengembalikan hasil tak ambigu, lalu arahkan agen ke sana. Sebuah verify script pendek atau target make verify berfungsi baik. Dokumentasikan di CLAUDE.md Anda agar agen memakai satu perintah itu alih-alih mengarang pengecekan dadakan.
Sinyal yang baik itu cepat, sehingga agen bisa menjalankannya pada setiap perubahan; deterministik, sehingga kode yang sama selalu memberi vonis yang sama; dan bermakna, sehingga lolos benar-benar berkorelasi dengan kerja yang benar. Test otomatis adalah sinyal terkaya, diikuti pengecekan tipe, linter, build produksi, dan probe runtime atau screenshot untuk UI dan endpoint.
Bisa. Suite yang tipis atau flaky mengajari agen mengoptimalkan pengecekannya alih-alih tujuannya, sehingga ia dengan percaya diri menyatakan kode rusak sebagai selesai. Agen dengan loop buruk lebih berbahaya daripada yang tanpa loop, karena jawaban salahnya datang dengan tanda centang hijau. Jaga loop tetap cepat, deterministik, dan benar-benar bermakna.

Ringkasan Utama
Verification loop adalah pengecekan apa pun yang cepat dan deterministik, entah test, tipe, lint, build, atau sebuah probe runtime, yang dijalankan agen untuk menilai kerjanya sendiri dan beriterasi hingga lolos. Ia adalah perbedaan antara agen yang menebak dirinya selesai dan agen yang bisa membuktikannya, dan ia adalah kebiasaan paling berdaya ungkit dalam agentic coding.
Tanyakan pada pengguna Claude Code berpengalaman apa yang membuat sebuah agen efektif dan Anda jarang mendengar soal modelnya. Anda mendengar soal loop-nya: beri agen cara menjalankan hasil kerjanya, melihat hasilnya, dan mengoreksi. Boris Cherny, yang membangun Claude Code, menggambarkan siklus umpan balik ini sebagai alasan tool itu bekerja sama sekali.
Inilah verification loop, dan ia lebih merupakan skill yang Anda desain ke dalam proyek daripada sebuah fitur. Agen dengan loop yang ketat menggilas menuju jawaban yang benar; agen tanpa loop menghasilkan sesuatu yang tampak benar lalu berhenti. Tulisan ini menjelaskan apa itu loop, cara membangunnya, dan cara menjaganya tetap jujur.
Verification loop adalah siklus bertindak-mengamati-mengoreksi yang diterapkan pada kode. Agen membuat sebuah perubahan, menjalankan pengecekan yang mengembalikan lolos atau gagal yang jelas, membaca hasilnya, lalu menyesuaikan. Ia mengulang hingga pengecekan lolos atau ia kehabisan ide dan meminta bantuan.
Pengecekan itulah intinya. Tanpa satu pun, agen menulis dalam kegelapan dan harus mengklaim kemenangan berdasarkan firasat; dengan satu, ia punya kebenaran dasar untuk didorong. Loop terbaik berbagi tiga sifat:
Anda membangun verification loop dengan memberi agen satu perintah yang mengembalikan hasil tak ambigu. Tujuannya adalah meringkas semua yang Anda pedulikan, yaitu test, tipe, lint, dan build, menjadi satu sinyal lolos-atau-gagal yang bisa dipanggil agen setelah setiap perubahan.
Sebuah skrip pendek melakukan tugasnya dan sekaligus menjadi dokumentasi tentang apa arti selesai di repo Anda:
#!/usr/bin/env bash
# scripts/verify.sh - the agent's single source of truth
set -euo pipefail
npm run lint
npx tsc --noEmit
npm test
npm run build
echo "VERIFY OK"Ekspos loop-nya sebagai satu perintah, sesuatu seperti sebuah verify script atau target make verify, dan taruh di CLAUDE.md Anda. Ketika agen punya satu cara jelas untuk memeriksa dirinya, ia memakainya terus-menerus alih-alih mengarang pengecekan dadakan yang menyimpang dari standar Anda yang sebenarnya.
Sebuah loop hanya sebaik sinyalnya, dan pekerjaan berbeda butuh sinyal berbeda. Raih yang terkuat yang diizinkan tugasnya.
Loop bekerja karena ia mengganti penilaian agen tentang apakah ia selesai dengan sebuah fakta eksternal. Sebuah language model adalah generator yang kuat dan pengkritik diri yang lemah, dan sebuah test yang gagal melakukan kritik itu untuknya, mengubah tugas terbuka menjadi pencarian dengan tujuan yang jelas.
Ia juga berlipat ganda. Tulisan Addy Osmani tentang mengorkestrasi agen menyampaikan poin yang sama: seorang agen yang bisa memverifikasi keluarannya sendiri bisa dipercaya dengan run yang lebih panjang dan lebih otonom, karena tiap langkah dicek sebelum langkah berikutnya membangun di atasnya.
Sinyal yang lemah mengajarkan pelajaran yang salah. Jika suite Anda tipis atau flaky, agen mengoptimalkan pengecekannya alih-alih tujuannya, dan dengan percaya diri menyatakan kode yang rusak sebagai selesai. Agen dengan verification loop yang buruk lebih berbahaya daripada yang tanpa loop, karena ia datang dengan tanda centang hijau.
Perlakukan loop sebagai bagian dari basis kode Anda, bukan renungan belakangan. Sedikit investasi di sini membayar balik pada setiap run agen yang akan pernah Anda lakukan.
Model terus membaik, tetapi verification loop adalah bagian yang Anda kendalikan, dan itulah yang mengubah kemampuan mentah menjadi kerja yang andal. Beri agen Anda cara yang cepat, jujur, dan bermakna untuk memeriksa dirinya, dan ia berhenti menebak lalu mulai menuju konvergen. Kuasai satu kebiasaan ini dan sebagian besar nasihat agentic coding lainnya menjadi mudah diikuti.