Selama ini kita diajari prompt engineering: menulis instruksi yang bagus agar model memberi jawaban bagus. Tapi begitu kamu menjalankan AI coding agent — Claude Code, Codex, OpenCode — prompt saja tidak cukup. Kamu akan terus mengetik perintah yang sama, menunggu, memeriksa, lalu mengetik lagi. Loop engineering membalik cara itu: berhenti mengetik prompt, dan desain loop-nya.

Loop engineering adalah disiplin mendesain sistem yang menjalankan agen di sekitar codebase — sistem itu yang menemukan kerjaan, menyerahkannya ke agen, memverifikasi hasil, dan menyimpan state. Kamu mendesain sistemnya sekali, lalu sistem yang bekerja berulang-ulang. Artikel ini panduan lengkapnya, dari konsep sampai menjalankan loop pertamamu.

Loop — sistem yang menemukan kerja, menyerahkan ke agen, memverifikasi, dan menyimpan state.

STATE.md — file state persisten yang dibaca/ditulis loop tiap run.

Pattern — pola loop siap pakai (triage, PR babysitter, CI sweeper, dll.).

Level — L1 report → L2 assisted → L3 unattended (naik bertahap).

Loop Ready — skor 0–100 seberapa siap loop-mu.

Dari prompt engineering ke loop engineering

Prompt engineering berurusan dengan satu pertanyaan dan satu jawaban. Context engineering memperluasnya: apa yang masuk ke konteks agen. Loop engineering melangkah lebih jauh — ia mendesain siklus kerja: apa yang agen kerjakan, bagaimana hasilnya diverifikasi, dan bagaimana state disimpan supaya run berikutnya tahu sudah sampai mana. Frasa intinya: "Stop prompting. Design the loop. Get a score."

Apa itu loop?

Sebuah loop melakukan empat hal secara berulang:

1. Discover — menemukan pekerjaan yang perlu dilakukan (issue baru, CI gagal, dependensi usang).

2. Hand off — menyerahkan pekerjaan itu ke agen dengan konteks yang tepat.

3. Verify — memeriksa hasil kerja agen (test, review, diff).

4. Persist — menyimpan state (STATE.md) supaya run berikutnya melanjutkan, bukan mengulang.

Pattern library: pilih loop yang tepat

Loop engineering hadir sebagai pustaka pattern, bukan tombol "tulis ulang modul". Beberapa pattern paling umum:

  • Daily Triage — jaga repo tetap sehat (issue, CI, dependensi), laporan harian.
  • PR Babysitter — buka dan kawal pull request.
  • CI Sweeper — perbaiki build yang gagal (biaya tinggi, hati-hati).
  • Dependency Sweeper — update dependensi usang.
  • Changelog Drafter — susun changelog otomatis.
  • Issue Triage — klasifikasi dan label issue masuk.
  • Post-Merge Cleanup — beres-beres setelah merge.

Level: L1 report → L2 assisted → L3 unattended

Jangan langsung biarkan agen mengubah kode sendirian. Naik level secara bertahap, hanya setelah verifier terbukti benar selama satu minggu:

  • L1 — Report: loop hanya melaporkan, tidak mengubah apa pun. Kamu baca dulu.
  • L2 — Assisted: loop boleh mengusulkan/perbaiki kecil, dengan pengawasan.
  • L3 — Unattended: loop berjalan dan bertindak otomatis.

Aturan minggu pertama: report only. Tanpa auto-fix, tanpa auto-merge. Baca apa yang ditulis loop sebelum membiarkannya bertindak.

Langkah 1: Scaffold loop pertamamu

Jalankan di root project git mana pun (tidak perlu clone repo loop-engineering). Mulai dengan pattern daily-triage dan tool claude:

bash
npx @cobusgreyling/loop init . --pattern daily-triage --tool claude

Ganti --tool dengan grok, codex, atau opencode sesuai agen yang kamu pakai. Perintah ini menyalin starter kit dan membuat STATE.md, LOOP.md, loop-budget.md, dan loop-run-log.md, lalu mencetak skor Loop Ready-mu.

Langkah 2: Cek kesehatan loop (doctor)

Jalankan health check (audit + sync + 3 aksi teratas):

bash
npx @cobusgreyling/loop doctor .

Langkah 3: Cek biaya sebelum menjadwalkan

Loop yang sering berjalan bisa membakar token dengan cepat. Hitung dulu perkiraannya:

bash
npx @cobusgreyling/loop cost --pattern daily-triage --level L1 --cadence 1d

Sesuaikan --level dan --cadence dengan rencana-mu. Loop frekuensi tinggi (mis. CI Sweeper tiap 5 menit) paling boros token.

Langkah 4: Audit skor Loop Ready

Skor 0–100 dengan langkah perbaikan konkret. Ulangi setelah tiap perbaikan:

bash
npx @cobusgreyling/loop audit . --suggest

Skor yang dihitung memberi bobot lebih ke run terbaru daripada file di disk — STATE.md yang berumur 30 hari bukan level L3.

Langkah 5: Circuit breaker untuk loop L2+

Saat loop mulai memperbaiki kode tanpa pengawasan, pasang circuit breaker supaya ia eskalasi ke manusia alih-alih mengulang kegagalan yang sama selamanya:

bash
npx @cobusgreyling/loop context --check --ledger loop-ledger.json

Exit 0 = lanjut · 2 = eskalasi ke manusia. Breaker akan trip saat: iterasi maksimum tercapai, error yang sama berulang N×, terlalu banyak kegagalan beruntun, atau batas token tercapai.

Langkah 6: Jalankan dan naik level

Mulai di L1 (report only). Baca laporan loop selama seminggu. Kalau verifier sudah selalu benar, naik ke L2, lalu L3. Skor Loop Ready ≥ 80 menandakan loop-mu siap di-versi-kan sebagai harness yang lebih formal.

File-file penting yang dibuat

  • STATE.md — state persisten loop (sudah sampai mana).
  • LOOP.md — definisi loop-mu.
  • loop-budget.md — batas token harian.
  • loop-run-log.md — log tiap run.
  • loop-ledger.json — ledger untuk circuit breaker.

Safety: loop memperbesar keputusan

Prinsip paling penting: loop engineering memperbesar penilaian (judgment) — baik yang benar maupun yang salah. Token cost bisa meledak. Loop tanpa pengawasan membuat kesalahan tanpa pengawasan. Karena itu naik level bertahap, verifikasi dulu, dan selalu baca apa yang dihasilkan loop.

Dua risiko utama: (1) biaya token yang tidak terkontrol pada loop frekuensi tinggi, (2) loop L3 yang bertindak otomatis bisa melakukan kesalahan berulang tanpa ada yang melihat. Circuit breaker + budget cap adalah pengamannya.

Kesimpulan

Loop engineering adalah langkah berikutnya setelah prompt dan context engineering: alih-alih mengetik perintah berulang, kamu mendesain sistem yang menemukan kerja, mendelegasikan ke agen, memverifikasi hasil, dan menyimpan state. Dengan pattern siap pakai, level bertahap (L1→L3), dan skor Loop Ready, kamu bisa mengoperasikan coding agent secara disiplin — bukan sekadar menembak prompt.

Mulai kecil: jalankan npx @cobusgreyling/loop init . --pattern daily-triage di satu repo, baca laporan minggu pertama, baru naik level. Referensi lanjutan: cobusgreyling/loop-engineering dan tulisan Addy Osmani.

Apa bedanya loop engineering dengan prompt engineering?

Prompt engineering mendesain satu instruksi untuk satu jawaban. Loop engineering mendesain siklus kerja berulang (discover → hand off → verify → persist) yang dijalankan sistem secara otomatis di sekitar codebase. Prompt adalah bagian kecilnya; loop adalah keseluruhan sistemnya.

Apakah loop engineering hanya untuk Claude Code?

Tidak. Tool yang didukung antara lain Claude Code, Grok, Codex, OpenCode, Cursor, Windsurf, dan OpenClaw. Konsep loop-nya sama — yang berbeda hanya cara menjadwalkan dan menjalankannya.

Kenapa harus mulai dari L1 (report only)?

Karena loop memperbesar keputusan — termasuk yang salah. Di L1 loop hanya melaporkan, jadi kamu bisa memvalidasi dulu bahwa loop menemukan kerja yang benar dan verifikasinya akurat, sebelum mengizinkannya bertindak otomatis di L2/L3.