EP5. Generasi Berbasis Arsitektur dalam Praktik
💡 Dari "Tulis Kodenya" ke 72 Pemeriksaan Verifikasi
"develop jsondb."
AI biasa mungkin bersorak "Tentu!" dan membanjiri layar dengan ratusan baris. Cocrates dengan menyenangkan melewatkan ekspektasi kita lagi.
🦉 Cocrates: "Untuk apa Anda akan menggunakan
jsondbini? Saya akan merancang arsitekturnya dulu, mendapat tinjauan dan persetujuan Anda, lalu menghasilkan kode dengan aman."
Bukan mengayunkan kapak dulu (Do)—menyempurnakan blueprint (Plan) dulu. Itulah aturan Cocrates untuk menghasilkan artefak.
Episode ini mengikuti satu kalimat—"bangun ini"—saat menjadi enam ADR, satu spesifikasi, tujuh file sumber, dan 72 item verifikasi.
🏛️ Langkah 1. ADR — Intuisi Pengguna vs. 'Saran Mudah' AI
Pola muncul dalam dialog dengan Cocrates: AI secara naluriah mengusulkan apa yang paling sering dilatihnya—apa yang paling mudah diimplementasikan. Tanpa jangkar manusia, Anda melayang ke kenyamanan AI.
Proyek ini punya tiga debat arsitektur sengit (ADR).
1️⃣ [ADR 1] Model penyimpanan: "NoSQL lebih mudah" vs. "Saya butuh path intuitif"
- Pitch pertama AI: Struktur koleksi-dokumen ala MongoDB.
- Rem pengguna: "Saya butuh penyimpanan dapat dialamatkan path—
Set("episode/e1")→episode/e1.json." - Hasil: Mematahkan default AI; beralih ke pemetaan folder/file path.
2️⃣ [ADR 2] Arsitektur: "Library-only lebih sederhana" vs. "Banyak agent akan menggunakannya"
- Pitch pertama AI: Library internal single-process—mudah ditangani.
- Rem pengguna: "Bagaimana jika banyak proses AI agent membaca dan menulis DB ini sekaligus? Kita butuh client-server."
- Hasil: Cocrates mengakui kekeliruan dan merancang ulang sekitar server REST API (
jsondbd) plus CLI.
3️⃣ [ADR 3] Konkurensi: "Kunci seluruh DB" vs. "Kunci per file"
- Pitch pertama AI: Kunci level DB—tiga baris kode; seluruh DB berhenti saat tulis.
- Rem pengguna: "Itu bottleneck besar di server! Kunci per file saat menyentuh file berbeda."
- Hasil: Ditingkatkan ke engine berperforma tinggi menggunakan
sync.Mapuntuk konkurensi.
💡 Pelajaran: Ketika AI bilang "ini mudah dan bagus," itu mungkin jebakan yang mudah bagi AI untuk dibangun. Hanya manusia yang tahu konteks dan skenario nyata.
📝 Langkah 2. Spec — Satu Blueprint
Setelah ADR disetujui, Cocrates menggabungkan keputusan menjadi satu konstitusi: spec/jsondb.md.
Mandiri: baca dokumen ini saja dan Anda melihat sepuluh endpoint REST, signature API, perintah CLI, dan persyaratan tes sekilas.
⚡ Langkah 3. Generation — Didorong Hanya oleh Spec
Dengan spec terkunci, Cocrates mengaktifkan spec-driven-generation. Ia melupakan prompt pembuka yang samar dan mengode hanya dari spec yang kita sepakati.
- Output: Tujuh file library Go inti, server REST, CLI, unit dan integration test—
go builddango vetbersih pada percobaan pertama.
🔍 Langkah 4. Verification — Jaring 72 Pemeriksaan
Kode selesai bukan berarti perayaan. Cocrates menjalankan spec-driven-verification, memecah setiap persyaratan spec menjadi inventaris dan membandingkan.
📊 Papan skor: 70 PASS, 1 FAIL, 1 tidak dapat diverifikasi dari 72
Satu deviasi dan default AI diam muncul di hutan yang tampak sempurna.
🚨 Deviasi tertangkap
- Spec:
jsondb schema set /blog/episode→PUT /schema/blog/episode - Kode aktual: Slash duplikat →
PUT /schema//blog/episode - Server mentolerirnya—tapi konsistensi API rusak. Mudah terlewat tanpa verifikasi.
🤫 ASR tidak terdokumentasi (default diam)
Enam pilihan desain implisit yang dibuat AI di mana spec diam:
- URL encoding hilang saat menggabungkan query parameter; melewatkan re-validasi schema pada pembaruan data—dan lainnya.
💡 Pelajaran: "Kita punya spec—kode harus sempurna" naif. Celah diisi secara sewenang-wenang—jalankan verifikasi dan jaga spec sebagai dokumen hidup.
📝 Ringkasan Tiga Baris
- Ragukan 'saran termudah' AI. Konteks bisnis dan performa adalah pekerjaan manusia.
- Spec hidup. Perbarui saat verifikasi menemukan persyaratan yang hilang.
- Nilai Cocrates bukan mencetak jawaban. Ia menetapkan ritme arsitektur melalui dialog agar Anda memeriksa setiap langkah.
🎬 Selanjutnya
Kita telah menyelesaikan siklus penuh pada sistem desain Cocrates. Saatnya melangkah lebih jauh.
Berikutnya: melampaui menggunakan skills yang ada—bangun skill generasi berbasis arsitektur baru dengan Cocrates (mis. otomatisasi dokumen/laporan). Pembuatan skill langsung.
Sebelum sesi itu, tanyakan pada diri sendiri:
"Pernahkah saya copy-paste saran kode pertama AI tanpa berpikir dua kali?"
Seri ini memperkenalkan framework Cocrates Harness. Cocrates adalah agent harness yang dirancang untuk dialog Sokratik agar pengguna menjaga kendali dan berkembang.