Search & Catalog 15k SKU Q-Commerce: Relevan + In-Stock Real-time
Search & Catalog 15k SKU Q-Commerce: Relevan + In-Stock Real-time

Vibe Coding itu seperti menyuruh tukang bangun rumah tanpa denah โ hasilnya? Kacau di bulan ketiga. OpenSpec hadir sebagai 'denah arsitektur' untuk AI coding, menggeser paradigma dari ngobrol acak ke Spec-Driven Development yang terstruktur.
"Orang bijak membangun rumah di atas batu, bukan di atas pasir." โ Pepatah universal yang juga berlaku untuk software engineering
OpenSpec adalah framework open-source dari Fission AI yang memaksa AI untuk membaca denah dulu sebelum mulai bangun. Alih-alih ngobrol bolak-balik tanpa rencana (vibe coding), OpenSpec mengubah cara kerja AI jadi terstruktur, terprediksi, dan aman untuk proyek skala besar.
Bayangkan Anda menyewa kontraktor untuk membangun rumah. Tapi alih-alih memberinya denah arsitektur, Anda hanya bilang:
"Bikinin kamar di situ ya. Oh iya, tambahin dapur juga. Eh, pintunya geser aja deh."
Awalnya sih oke. Kamar jadi, dapur jadi. Tapi di bulan ketiga:
Ini persis yang terjadi dengan vibe coding. Anda ngobrol dengan AI, minta kode ini-itu, semuanya lancar... sampai proyeknya membesar. Lalu:
Jendela konteks percakapan terbatas. AI tidak ingat keputusan yang dibuat 3 hari lalu.
Mengapa arsitektur dirancang begitu? Hilang bersama ditutupnya sesi chat.
Kode tumbuh melampaui kapasitas kognitif manusia DAN jendela konteks AI sekaligus.
Tambah fitur baru justru merusak fitur lama karena tidak ada pemetaan sistem.
Banyak proyek yang dibangun murni dengan vibe coding dilaporkan menabrak "tembok kompleksitas" pada bulan ketiga. Tambah fitur baru malah hancurkan yang sudah jalan โ karena tidak ada yang merekam kenapa kode ditulis begitu.
Spec-Driven Development (SDD) adalah kebalikan dari vibe coding. Filosofinya sederhana:
Jangan suruh AI nulis kode sebelum ada spesifikasi yang jelas.
Kalau vibe coding itu "ngobrol โ kode โ berharap bener", maka SDD itu "tulis niat โ validasi โ baru kode".
graph LR
subgraph VC["โ Vibe Coding"]
A["Ngobrol dgn AI"] --> B["AI nulis kode"]
B --> C["Cek, salah"]
C --> A
end
subgraph SDD["โ
Spec-Driven Dev"]
D["Tulis spesifikasi"] --> E["Review & validasi"]
E --> F["AI nulis kode sesuai spec"]
F --> G["Arsipkan & update spec"]
end
style VC fill:#450a0a,color:#fca5a5
style SDD fill:#052e16,color:#86efacDan di garis depan gerakan SDD ini, berdiri platform bernama OpenSpec.
OpenSpec adalah framework open-source buatan Fission AI yang berfungsi sebagai lapisan perencanaan universal antara niat manusia dan eksekusi AI.
Analoginya: kalau AI coding agent itu kontraktor, maka OpenSpec adalah meja arsitek di mana denah digambar, divalidasi, dan disimpan โ sebelum palu dan paku disentuh.
| Property | Type | Description |
|---|---|---|
| Filosofi Inti | Design Philosophy | Brownfield-first โ dioptimalkan untuk proyek yang SUDAH berjalan, bukan proyek baru dari nol |
| Teknologi | Tech Stack | TypeScript (98.7% basis kode), didistribusikan via CLI (npm/pnpm/yarn/bun) |
| Kompatibilitas | Integration | Agnostik โ mendukung 20+ agen AI: Claude Code, Cursor, Codex, Windsurf, Gemini CLI, dll. |
| Prinsip Utama | Core Principle | Spesifikasi adalah sumber kebenaran, BUKAN kode. Kode bisa diganti, spec yang dijaga. |
OpenSpec tidak butuh API key khusus atau protokol tertutup. Seluruh spesifikasi hidup di dalam repositori Git Anda, berdampingan dengan kode. Pindah dari Claude ke Gemini? Specnya tetap sama.
Tahun 1990-an, Charles Simonyi dari Microsoft punya visi: niat pakar domain seharusnya jadi artifak utama, bukan kode. Kode cuma "efek samping" dari niat itu.
Masalahnya? Dulu tidak ada teknologi yang bisa menerjemahkan niat bahasa alami jadi kode. Sekarang ada โ namanya LLM.
OpenSpec menghidupkan kembali visi ini: spesifikasi Markdown bukan sekadar dokumentasi pasif, tapi representasi niat yang bisa dieksekusi oleh AI.
Ketika biaya membuat kode makin murah (karena AI), sumber kebenaran otomatis bergeser NAIK โ dari kode ke niat fungsional.
Prompt Engineering itu taktis โ fokus pada satu instruksi, satu iterasi. Seperti SMS ke kontraktor: "Bikin kamar ya."
Context Engineering itu strategis โ membangun lanskap penalaran jangka panjang. Seperti menyerahkan buku panduan lengkap: standar bangunan, denah, pagar pembatas, dan kriteria keberhasilan.
OpenSpec memaksa developer memecah pemikirannya jadi blok-blok terkelola:
Hasilnya? Prompt ke AI jadi sangat sederhana, dan output berubah dari "tebakan kreatif" menjadi "keluaran algoritmik yang terprediksi".
Di era Agile, dokumentasi kebutuhan sering diminimalkan. "Working software over comprehensive documentation," kata manifesto Agile.
Tapi AI membalikkan ini! LLM butuh instruksi yang tidak ambigu dan batasan hierarkis yang ketat. Tanpa itu, AI akan mengisi celah dengan asumsi sendiri โ alias halusinasi.
OpenSpec mengembalikan disiplin Requirements Engineering: setiap niat diartikulasikan spesifik, ditinjau manusia, dan divalidasi mesin sebelum AI boleh nulis kode.
Inovasi terpenting OpenSpec adalah pemisahan fisik antara "kebenaran saat ini" dan "rencana perubahan". Bayangkan seperti ini:
specs/ = Buku catatan resmi sekolah โ berisi aturan yang sudah berlakuchanges/ = Kertas coret-coretan โ tempat ide baru diuji sebelum masuk buku resmiAnalogi: Seperti UUD 1945 โ dokumen resmi yang berlaku saat ini.
Analogi: Seperti RUU (Rancangan Undang-Undang) โ proposal yang belum disahkan.
Bayangkan AI berhalusinasi dan menulis spec yang salah. Dengan pemisahan ini,
kerusakan tertahan di folder changes/ โ tidak merembet ke sumber
kebenaran utama. Seperti sistem airlock di kapal selam: bocor di satu
kompartemen, kapal tetap mengambang.
Seluruh siklus pengembangan OpenSpec berjalan dengan tiga perintah saja. Seperti siklus Rancang โ Bangun โ Arsipkan:
/opsx:propose โ Rancang DuluAnda mendeskripsikan apa yang diinginkan dalam bahasa sehari-hari. AI lalu:
changes/:| Property | Type | Description |
|---|---|---|
| proposal.md | Justification | Mengapa perubahan ini perlu? Apa dampaknya ke modul lain? |
| specs/ | Spec Delta | Delta spesifikasi โ apa yang berubah secara fungsional |
| design.md | Technical Design | Keputusan teknis: teknologi apa, pola apa, jalur logika apa |
| tasks.md | Task List | Daftar tugas implementasi yang atomik dan deterministik |
Analogi: Seperti arsitek yang menggambar denah, menghitung material, dan membuat jadwal kerja โ sebelum kontraktor mulai ngebor.
/opsx:apply โ Baru BangunSetelah manusia menyetujui proposal, AI mulai implementasi:
tasks.mddesign.mdAnalogi: Kontraktor mulai ngebor โ tapi harus ikut denah. Mau pindahin pipa? Harus balik ke arsitek dulu.
/opsx:archive โ Arsipkan & BersihkanSetelah implementasi dan testing selesai:
archive/ dengan timestampspecs/ (sumber kebenaran)Analogi: Setelah rumah jadi, denah arsitektur diupdate dan disimpan di brankas. Kertas coret-coretan dibuang. Bersih.
graph LR
A["๐จ Propose"] -->|"Review & Approve"| B["๐จ Apply"]
B -->|"Test & Verify"| C["๐ฆ Archive"]
C -->|"Siklus berikutnya"| A
style A fill:#7c3aed,color:#fff
style B fill:#059669,color:#fff
style C fill:#d97706,color:#000Saat pertama kali menjalankan openspec init, platform memindai seluruh proyek Anda dan menghasilkan file project.md โ semacam "UUD" untuk proyek Anda:
Apa tujuan proyek ini? AI tidak boleh membuat keputusan yang menyimpang dari tujuan.
TypeScript? Go? React? AI tahu batasan teknologinya dan tidak boleh tiba-tiba pakai framework lain.
Naming convention, folder structure, style guide โ AI harus ikuti standar yang sudah ada.
Unit test wajib? E2E test untuk fitur kritis? AI tahu apa yang harus ditest.
OpenSpec menolak vendor lock-in. Saat inisialisasi, platform otomatis
mendeteksi folder agen (.claude/, .cursor/, dll.) dan menyuntikkan
rules yang relevan. Anda bebas pakai Claude, Gemini, Codex, atau apa pun.
Ini bagian teknisnya โ tapi analoginya simpel.
Vibe Coding itu seperti menyuruh kontraktor membaca ulang seluruh buku manual bangunan setiap kali Anda minta pasang satu lampu. Mahal, lambat, dan kontraktor sering lupa detail di halaman 847.
OpenSpec memberikan kontraktor cuma halaman yang relevan โ denah listrik di lantai 2, standar watt yang dipakai, dan checklist keamanan. Itu saja.
AI menerima: SELURUH repositori (jutaan karakter)
Akibatnya:
โ Biaya API membengkak
โ Latensi tinggi
โ AI "lupa" detail di tengah-tengah
โ Halusinasi meningkat drastisAI menerima: project.md + folder changes/ yang relevan
Hasilnya:
โ
Biaya API jauh lebih murah
โ
Respons lebih cepat
โ
Rasio sinyal vs noise hampir 100%
โ
Halusinasi berkurang drastisSecara teknis, ini karena arsitektur transformer punya kompleksitas kuadratik โ makin panjang input, makin mahal dan makin "pelupa" AI-nya. OpenSpec memotong input ke minimum yang diperlukan.
OpenSpec punya aturan ketat soal bagaimana spec ditulis. Tujuannya: supaya AI (dan manusia) tidak salah tafsir.
OpenSpec mengadopsi standar IETF RFC 2119 โ standar yang biasa dipakai untuk menulis spesifikasi internet global:
| Property | Type | Description |
|---|---|---|
| MUST / SHALL | Mandatory | Wajib mutlak. Tidak boleh dikompromikan. Contoh: 'Sistem MUST memvalidasi token JWT' |
| SHOULD | Recommended | Sangat direkomendasikan, tapi ada pengecualian valid. Contoh: 'Respons SHOULD di-cache selama 5 menit' |
| MAY | Optional | Benar-benar opsional. Contoh: 'Pengguna MAY mengaktifkan notifikasi email' |
Kata "harus" dalam bahasa sehari-hari itu ambigu โ bisa berarti wajib atau cuma saran. Dengan MUST vs SHOULD, AI langsung tahu: yang MUST itu hukum gravitasi (tidak bisa dilanggar), yang SHOULD itu pedoman (bisa dilenturkan dengan alasan bagus).
Setiap spesifikasi WAJIB punya minimal satu skenario pengujian. Formatnya dipinjam dari Behavior-Driven Development (BDD):
#### Scenario: Pengguna login dengan kredensial valid
- GIVEN pengguna terdaftar dengan email "[email protected]"
- WHEN pengguna memasukkan email dan password yang benar
- THEN sistem mengembalikan token akses valid
- AND pengguna diarahkan ke halaman dashboardAnalogi: Ini seperti soal ujian untuk kode Anda. Kalau tidak bisa jawab soal ini, berarti kodenya belum benar. OpenSpec bisa menjalankan openspec validate --strict untuk memastikan semua soal ada dan formatnya benar.
Ketika mengusulkan perubahan, OpenSpec memaksa Anda untuk mengkategorikannya:
Fungsionalitas baru yang berdiri sendiri.
Seperti menambah ruangan baru di rumah โ tidak mengganggu ruangan lain.
## ADDED Requirements
### Dark Mode Support
Sistem MUST menyediakan opsi dark mode...Mengubah perilaku yang sudah ada. Wajib tulis ulang spec secara lengkap (bukan cuma bagian yang berubah).
Seperti merenovasi dapur โ Anda tulis ulang denahnya dari awal, bukan cuma coret-coret denah lama.
## MODIFIED Requirements
### Login Flow (UPDATED)
Sistem MUST mendukung OAuth2 selain email/password...Menghapus fitur. Wajib isi dua hal: alasan dan jalur migrasi.
Seperti merobohkan tembok โ Anda perlu jelaskan kenapa dan bagaimana penghuni pindah ke ruangan lain.
## REMOVED Requirements
### SMS Verification
- Reason: Biaya SMS terlalu tinggi, diganti WhatsApp OTP
- Migration: Semua pengguna akan dimigrasikan ke WhatsApp OTPGanti nama tanpa mengubah fungsionalitas. Untuk menjaga jejak audit.
Seperti mengganti nama jalan โ alamatnya berubah, tapi rumahnya tetap.
## RENAMED Requirements
- FROM: User Authentication
- TO: Identity VerificationBagaimana posisi OpenSpec di antara platform SDD lainnya?
| Parameter | OpenSpec | GitHub Spec Kit | Amazon Kiro | BMAD |
|---|---|---|---|---|
| Fokus | ๐๏ธ Brownfield (kode lama) | ๐๏ธ Greenfield (proyek baru) | ๐ข Korporat (AWS) | ๐ค Multi-agen |
| Alur Kerja | 3 perintah simpel | 4 fase kaku | IDE terintegrasi | Delegasi otonom |
| Konteks | Delta (hemat) | Dokumen penuh (berat) | Steering files | Sharding |
| Tech Stack | TypeScript/npm | Python/UV | Terminal/VS Code | Framework-agnostik |
| Vendor Lock-in | โ Tidak ada | โ ๏ธ Bias GitHub | ๐ AWS only | โ Tidak ada |
GitHub Spec Kit memaksa 4 fase hierarki super-kaku: specify โ plan โ tasks โ implement. Semua harus selesai sebelum satu baris kode ditulis.
Masalahnya? Dokumen Markdown membengkak, review bisa berjam-jam. Untuk proyek legacy yang kompleks, ini overkill.
OpenSpec memilih pendekatan inkremental โ hanya lacak yang berubah (delta), dengan 3 perintah sederhana. Lebih ringan, lebih adaptabel.
Analogi: Spec Kit itu seperti bikin skripsi lengkap sebelum mulai riset. OpenSpec lebih seperti jurnal harian โ tulis apa yang berubah, langsung validasi.
Amazon Kiro punya kekuatan luar biasa: akses mendalam ke file system, koneksi SSH, integrasi MCP โ semua dibalut dalam IDE yang powerful.
Tapi? Anda terkunci di ekosistem AWS dan model Claude secara eksklusif. Pindah ke Gemini? Tidak bisa. Pakai di luar VS Code? Tidak bisa.
OpenSpec bekerja di samping IDE pilihan Anda, mendukung 20+ agen AI, dan tidak menuntut infrastruktur khusus.
Analogi: Kiro itu mobil keluaran showroom โ cepat dan mewah, tapi servis harus di dealer resmi. OpenSpec itu mobil standar terbuka โ bengkel mana saja bisa handle.
Nama mirip, tapi fungsi sangat berbeda:
Analogi: OpenAPI itu spesifikasi ukuran konektor USB-C โ bentuk port, voltase, pin assignment. OpenSpec itu manual instruksi untuk robot yang merakit USB-C di pabrik โ bagaimana robot harus kerja, langkah per langkah.
Keduanya bisa bersinergi: OpenSpec bisa memandu AI untuk menghasilkan file OpenAPI yang tervalidasi sempurna.
Tidak ada pendekatan yang sempurna. Berikut kritik paling tajam terhadap SDD dan OpenSpec:
Kritikus bilang SDD itu 'Waterfall pakai baju baru.' Obsesi dokumentasi di awal berpotensi membunuh kelincahan Agile.
Tumpukan dokumen spec TIDAK otomatis berarti kode berkualitas. Bisa jadi false sense of security.
Kalau spec tidak diupdate saat ada improvisasi mid-flight, spec yang basi lebih BERBAHAYA daripada tidak ada spec.
Terlalu sedikit struktur = kacau (vibe coding). Terlalu banyak struktur = macet (waterfall). Sweet spot-nya di mana?
Model-Driven Development (MDD) di tahun 2000-an punya visi mirip: "model dulu, kode otomatis." Hasilnya? Gagal karena terlalu berat, tidak fleksibel, dan tidak bisa beradaptasi dengan perubahan. OpenSpec sadar akan risiko ini โ makanya mereka memilih pendekatan delta (ringan) bukan pendekatan full-spec (berat).
OpenSpec bukan pengganti kreativitas atau kelincahan. Ia adalah jaring pengaman โ memastikan bahwa semakin AI menjadi "kontraktor" yang lebih canggih, kita sebagai "arsitek" tidak kehilangan kendali atas desain bangunannya.
Vibe coding itu seperti improvisasi jazz โ indah untuk solo pendek. Spec-Driven Development itu seperti orkestra โ butuh partitur agar 50 musisi bermain harmonis.
OpenSpec adalah partiturnya.
Search & Catalog 15k SKU Q-Commerce: Relevan + In-Stock Real-time

Real-time Order Tracking Q-Commerce: Driver Bergerak di Peta Live


Promo & Voucher Engine Q-Commerce: Rule Engine Anti-Abuse
