Tembok Tiga Bulan
Anda membangun SaaS dengan vibe coding. Awalnya cepat. “Buat login” — 30 detik. “Tambahkan pembayaran” — 2 menit. MVP diluncurkan dalam tiga minggu.
Tiga bulan kemudian, hal-hal aneh terjadi. AI “merapikan” logika pembayaran dan diam-diam mengubah perhitungan diskon. Menambahkan endpoint baru merusak autentikasi yang ada. Permintaan refactoring mengubah nama field API publik, mematikan semua klien.
Ini disebut logic drift — AI secara tidak sengaja memodifikasi logika bisnis yang ada. Bug regresi juga ada dalam pengembangan tradisional. Tapi logic drift berbeda. Perubahan yang tidak pernah dimaksudkan oleh pengembang terjadi secara tak terlihat di seluruh codebase. Setiap prompt dimulai dalam context window yang baru.
Drift dalam Angka
Ini bukan opini. Ada datanya.
Kecepatan mengorbankan kompleksitas. Tim peneliti Carnegie Mellon membandingkan 807 repositori GitHub sebelum dan sesudah adopsi Cursor (MSR 2026). Penambahan kode meningkat 3-5x di bulan pertama. Setelah dua bulan, keunggulan kecepatan menghilang. Yang tersisa: peringatan analisis statis naik 30%, kompleksitas kode naik 41% — secara permanen.
Tidak menjadi lebih cepat — justru lebih lambat. Organisasi riset AI nirlaba METR melakukan uji coba terkontrol acak dengan 16 pengembang berpengalaman open-source (2025). Pada proyek yang sudah mereka kenal baik, kelompok yang menggunakan alat AI membutuhkan waktu 19% lebih lama untuk menyelesaikan tugas. Namun para pengembang sendiri merasa ada percepatan 20%. Selisih 39 poin persentase antara persepsi dan kenyataan. Hasilnya mungkin berbeda pada proyek baru, tapi asumsi “AI = selalu lebih cepat” sudah patah.
Pada skala besar, stabilitas runtuh. Menurut Google DORA Report (2025), setiap peningkatan 25% dalam adopsi AI berkorelasi dengan penurunan 7,2% dalam stabilitas pengiriman software.
Dan memang runtuh. Amazon mewajibkan penggunaan alat AI coding di seluruh perusahaan pada 2025 dan mengerahkan 21.000 AI agent. Pada periode yang sama, sekitar 30.000 karyawan di-PHK, drastis mengurangi kapasitas review. Kombinasi kode yang dihasilkan cepat oleh AI dan staf review yang berkurang menghasilkan 4 insiden Sev-1 dalam 90 hari. Pada 5 Maret 2026, pemadaman 6 jam menyebabkan estimasi kerugian 6,3 juta pesanan. Dokumen internal menyatakan: “Generasi kode cepat GenAI secara tidak sengaja mengekspos kerentanan, dan perlindungan saat ini sama sekali tidak memadai.”
“Lakukan TDD” Bukan Jawabannya
Saran umum untuk logic drift vibe coding adalah “tulis tes.” Arahnya benar, tapi bagaimana Anda menyediakan tes menentukan hasilnya.
Studi TDAD (arxiv 2026) menguji ini secara presisi. Qwen3-Coder 30B dievaluasi dengan 100 instansi dari SWE-bench Verified.
| Kondisi | Tingkat Regresi |
|---|---|
| Baseline (tanpa instruksi tes) | 6.08% |
| Instruksi prosedural “lakukan TDD” | 9.94% (lebih buruk) |
| File tes yang terpengaruh disediakan dalam context | 1.82% (penurunan 70%) |
Memberitahu agent “lakukan TDD” justru memperburuk keadaan. Agent menyimpang dari tugas asli saat mencoba mengikuti instruksi prosedural. Tapi menyediakan “file tes ini harus lolos” sebagai context konkret mengurangi regresi sebesar 70%.
Perbedaannya jelas. Bukan instruksi “bagaimana mengetes”, tapi kontrak “apa yang harus lolos”.
Hurl: Kontrak dalam Plain Text
Hurl adalah alat pengujian yang mendeklarasikan permintaan HTTP dan respons yang diharapkan dalam plain text. Dikelola oleh Orange (France Telecom), berupa binary Rust tanpa dependensi runtime, 18,7k bintang di GitHub. Cukup cepat untuk dijalankan di setiap commit dalam CI.
# Login succeeds
POST http://localhost:8080/api/auth/login
{
"email": "test@example.com",
"password": "secret123"
}
HTTP 200
[Asserts]
jsonpath "$.token" exists
jsonpath "$.user.email" == "test@example.com"
# Unauthenticated access returns 401
GET http://localhost:8080/api/pages
HTTP 401
Dua kontrak. Login harus mengembalikan 200 dengan token. Akses tanpa autentikasi harus mengembalikan 401.
Ketika file ini di-commit ke git dan dijalankan di setiap commit dalam CI — saat AI “merapikan” logika autentikasi dan 401 berubah menjadi 200, commit ditolak. Drift ditangkap sebelum mencapai produksi.
Mengapa Hurl
Unit test juga bisa menangkap drift — jika Anda tidak memberi AI izin untuk memodifikasi file tes. Tapi unit test memverifikasi fungsi internal, menjadikannya secara struktural terikat pada implementasi. Ketika nama fungsi berubah, tes rusak. Setiap refactoring memerlukan pembaruan tes.
Hurl berada di batas HTTP. Hanya mendeklarasikan permintaan dan respons. Tidak tahu apa-apa tentang internal kode. Tidak peduli bagaimana AI mengubah kode, jika perilaku yang dapat diamati dari luar tetap sama, tes lolos; jika berbeda, tes gagal. Hurl secara alami independen dari implementasi.
| Unit Test | Hurl | |
|---|---|---|
| Memverifikasi | Fungsi internal | Kontrak HTTP |
| Saat refactoring AI | Diubah bersama | Tidak berubah |
| Deteksi drift | Bersyarat (jika dikunci) | Alami |
| Ketergantungan struktur kode | Tinggi | Tidak ada |
| Keterbacaan manusia | Level kode | Plain text |
| Generasi oleh LLM | Perlu memahami struktur kode | Hanya perlu HTTP |
Yang diverifikasi Hurl bukan kode tapi perilaku. Kode bisa diubah bebas oleh AI. Perilaku tidak boleh berubah. Perbedaan ini adalah kunci menangkap drift.
Kunci Ratchet
Ketika tes Hurl lolos, kunci. Ini adalah ratchet.
1. Write Hurl tests for current API (or auto-extract)
2. Run on every commit in CI
3. Passing tests cannot be deleted or modified
4. New features require new Hurl tests
5. All existing + all new tests must pass to merge
Beritahu agent “refactor kode ini” dan ia mengubah kode dengan bebas. Tapi jika tes Hurl gagal, commit ditolak. Agent harus mempertahankan semua perilaku yang ada saat melakukan refactoring. Drift pada kasus tepi yang tidak dicakup Hurl masih mungkin, tapi untuk perilaku yang sudah dicakup, drift ditekan secara struktural.
Ini selaras persis dengan temuan studi TDAD. Bukan instruksi prosedural “tulis tes”, tapi kontrak konkret “file Hurl ini harus lolos”. Agent boleh memilih metode, tapi tidak boleh melanggar kontrak.
Berfungsi pada Sistem Legacy Juga
Sudah menjalankan software vibe coding di produksi? Tidak perlu memulai dari awal.
Langkah 1: Tangkap perilaku saat ini dalam Hurl.
Jika dokumentasi API ada, terjemahkan langsung ke Hurl. Jika tidak, minta agent membaca kode yang ada dan menulis tes Hurl. Tujuannya adalah mendeklarasikan “beginilah cara kerjanya saat ini” dalam plain text untuk setiap endpoint.
Langkah 2: Hubungkan ke CI.
Verifikasi semua tes Hurl lolos dan tambahkan sebagai syarat merge.
Langkah 3: Anda aman sekarang.
Baik AI melakukan refactoring maupun menambah fitur, Hurl melindungi perilaku yang ada. Jika drift terjadi, CI langsung menangkapnya.
Bukan pekerjaan fondasi — retrofit seismik. Memperkuat bangunan tanpa menutup toko.
Bukan Akhir Vibe Coding — Tapi Evolusinya
Andrej Karpathy, yang menciptakan istilah “vibe coding”, menyatakan tepat setahun kemudian pada Februari 2026 bahwa “era vibe coding telah berakhir.” Paradigma baru adalah agentic engineering — manusia tidak menulis kode, mereka mengorkestrasi agent yang secara otonom merencanakan, mengimplementasi, dan menguji.
Thoughtworks Technology Radar (2025) menempatkan Spec-Driven Development pada level “Assess”. Tim Martin Fowler menerbitkan analisis alat SDD. Industri konvergen ke arah yang sama.
Tes Hurl adalah unit terkecil dari transisi ini. Anda tidak butuh 10 spesifikasi. Anda tidak perlu belajar OpenAPI. Satu file Hurl adalah satu kontrak. Dan kontrak itu secara struktural mencegah drift tanpa membatasi kebebasan agent.
Jangan ganti modelnya. Tambahkan kontrak.
Terkait
- yongol — Lunas Kapal AI Coding SaaS — Memaksa konsistensi full-stack dengan 10 SSOT. Hurl adalah salah satunya.
- Ratchet Pattern — Cara Membuat Agent Sampai Tuntas — Teori di balik verifikasi deterministik dan penguncian ratchet.
- IFEval-Exploiting Ratchet Code — Loop umpan balik menggunakan sycophancy bias dan Reins.
References
- Cursino, D. et al. (2026). “Speed at the Cost of Quality? The Impact of AI Coding on Software.” MSR 2026. arxiv.org/abs/2511.04427
- METR (2025). “Measuring the Impact of Early AI on Experienced Open-source Developer Productivity.” arxiv.org/abs/2507.09089
- Google Cloud (2025). DORA Report 2025. cloud.google.com
- Wang, Z. et al. (2026). “TDAD: Test-Driven Agentic Development.” ACM AIWare 2026. arxiv.org/abs/2603.17973
- Autonoma (2026). “Amazon Vibe Coding Failures: 4 Sev-1s in 90 Days.” getautonoma.com
- CNBC (2026). “Amazon convenes ‘deep dive’ internal meeting to address AI-related outages.” cnbc.com
- Thoughtworks (2025). “Spec-Driven Development.” Technology Radar Vol.33. thoughtworks.com
- Karpathy, A. (2026). “From Vibe Coding to Agentic Engineering.” thenewstack.io
- Fowler, M. et al. (2025). “SDD Tools.” martinfowler.com
- Hurl. hurl.dev | github.com/Orange-OpenSource/hurl