Postingan ini adalah materi presentasi yang disampaikan pada tanggal 2 Mei 2026 di Dabakodan Dao Lab Vibe Coding Guild, memperkenalkan studi kasus tentang 'Harness Engineering'.
Nextain adalah perusahaan yang mengembangkan dan mendukung teknologi untuk AX (AI Transformation) bagi perusahaan dengan produk perangkat lunak. Kami telah mengambil alih operasional sistem portal gereja Korea, Onmam.com, dan sedang mengerjakan inisiatif AX. Kami telah memigrasikan sistem lama yang berada di pusat IDC, menyiapkan lingkungan untuk pengembangan dan operasional berbasis agen, serta melakukan pekerjaan stabilisasi dan peningkatan fitur. Karena ini adalah sistem lama, ada banyak trial and error, dan kami menginternalisasi pengalaman serta teknologi perusahaan dengan menerapkan naia-business-adk ke Onmam.com. Sebagai bagian dari pengalaman ini, kami membagikannya dalam acara tersebut sebagai studi kasus yang menjelaskan rekayasa harness.

Pesan utama dari artikel ini "Lebih penting menciptakan lingkungan di mana AI tidak membuat kesalahan, daripada sekadar menggunakan AI dengan baik."
1. Pertama, Perkenalan Layanan Kami
Onmam.com — Platform manajemen gereja yang digunakan oleh 13.876 gereja di seluruh negeri
www.onmam.com ← Pencarian Gereja, Portal Anggota
home.onmam.com ← Aplikasi Saluran (Konten/Pembayaran)
{nama_gereja}.onmam.com ← Situs Web Gereja Individu
Infrastruktur: Server IDC lama → Migrasi penuh ke GCP (Google Cloud) selesai pada April 2026 DB: 13.876 data gereja × Cloud SQL
2. Mari kita mulai dengan sebuah insiden
"Suatu hari di bulan April 2026"
Pukul 11 pagi. Tiba-tiba seluruh layanan Onmam.com tidak merespons.
Pengguna: "Mengapa situsnya tidak berfungsi?"
Setelah melacak penyebabnya — kode untuk mengambil daftar papan buletin di file Board.php.
-- Kueri yang bermasalah (disederhanakan)
SELECT * FROM boards
JOIN (
SELECT bbs_id, COUNT(*) FROM all_boards GROUP BY bbs_id -- ← Ini masalahnya
) AS summary ON boards.id = summary.bbs_id
WHERE church_id = ?
Satu kueri ini melakukan pemindaian penuh terhadap seluruh data 13.876 gereja setiap kali. Ketika lalu lintas membludak, 145 kueri yang masing-masing memakan waktu 600-800 detik berjalan secara bersamaan → server lumpuh total.
Apa hubungannya ini dengan AI?
Kode ini mungkin awalnya ditulis oleh seorang developer manusia. Namun, saat ini developer menulis kode semacam ini bersama AI.
Masalahnya — AI tidak tahu "bagaimana kode ini akan berfungsi di lingkungan 13.876 gereja." AI fokus pada implementasi fitur yang diminta, dan tidak memahami konteks layanan kami.
Maka para developer mulai berpikir: "Bagaimana kita mencegah AI menulis kode tanpa memahami layanan kita?"
3. Rekayasa Harness — Penjelasan 30 Detik
Sama seperti kita membutuhkan kendali dan pelana (Harness) untuk mengendalikan kuda,
agen AI juga membutuhkan batasan, panduan, dan mekanisme verifikasi.
Agen = Model + Harness
Harness = Merancang seluruh lingkungan tempat AI bekerja
Ini bukan sekadar "mengajukan pertanyaan bagus kepada AI". Desain sistem yang secara struktural mencegah AI membuat kesalahan yang sama ketika terjadi kesalahan.
4. Harness yang Benar-benar Dibangun di Onmam.com
[Harness #1] AGENTS.md — "Peta Layanan Kami" untuk AI
alpha-adk/
├── CLAUDE.md ← File yang harus dibaca AI saat memulai sesi
├── AGENTS.md ← Daftar aturan proyek
└── .agents/
└── context/
└── agents-rules.json ← Aturan operasional spesifik
AI harus membaca file-file ini sebelum menyentuh kode Onmam.com. Ini berisi konten seperti:
- "Pengujian dan modifikasi kode hanya dilakukan di lingkungan alpha"
- "home.onmam.com adalah aplikasi channel terpisah, bukan portal"
- "Pola tabel turunan GROUP BY di Board.php sangat dilarang"
Gangguan tadi? Sekarang, jika AI mencoba membuat pola yang sama, ia akan melihat aturan ini dan berhenti.
[Harness #2] Hooks — "Pengaman" yang bekerja sebelum dan sesudah tindakan AI
Hooks yang saat ini aktif di workspace ini:
Tepat sebelum AI menjalankan perintah Bash →
✓ pr-guard.js : Memblokir merge PR tanpa review
✓ commit-guard.js : Memblokir commit yang melanggar aturan
✓ deploy-guard.js : Memblokir deployment ke server produksi tanpa persetujuan
✓ git-push-guard.js : Memblokir git push tanpa persetujuan
✓ destructive-git-guard.js : Memblokir perintah destruktif seperti git reset --hard
Tepat sebelum AI memodifikasi file →
✓ prod-gateway-guard.js : Memblokir penggunaan kunci API produksi di file lingkungan dev
✓ design-doc-guard.js : Memblokir modifikasi dokumen desain tanpa izin
Tepat setelah AI memodifikasi file →
✓ cascade-check.js : Memeriksa file yang terpengaruh secara berantai oleh file yang dimodifikasi
Contoh kerja nyata deploy-guard.js:
AI mencoba menjalankan perintah deployment produksi:
$ gcloud run deploy onmam-web ...
→ [Harness] Perintah deployment produksi diblokir: gcloud run deploy
Proyek: onmam-web
Deployment produksi memerlukan persetujuan sebelumnya.
Cara menyetujui: Tambahkan item persetujuan ke .claude/deploy/approvals.json
AI tidak akan menjalankan deployment produksi secara langsung.
Meskipun AI mencoba mengunggah sesuatu ke server produksi secara tidak sengaja atau terlalu agresif, itu akan diblokir secara fisik.
[Harness #3] Lingkungan Alpha — Arena Bermain Khusus untuk Eksperimen AI
Produksi (Production) : www.onmam.com ← Digunakan oleh gereja-gereja nyata
Staging (Staging) : staging.onmampick.org ← Verifikasi akhir sebelum deployment
Alpha (Alpha) : luke-*-alpha.onmampick.org ← Ruang kerja bersama AI
Aturan: Semua pekerjaan dengan AI hanya di alpha.
Mengapa ini penting — Apa yang sebenarnya terjadi pada 29 April 2026:
AI salah mengira
home.onmam.comsebagai aplikasiportaldan menulis konfigurasi vhost yang salah. Karena ini di lingkungan alpha → tidak ada dampak pada layanan nyata. Kesalahan ini dicatat di AGENTS.md → AI tidak akan membuat kesalahan yang sama lagi.
Esensi harness ada di sini: Jika terjadi kesalahan → dicatat di harness → kesalahan itu menjadi tidak mungkin secara struktural di kemudian hari.
[Harness #4] Skills — "Alat Kami Sendiri" untuk AI
skills/
├── email/ ← Pengiriman email (termasuk penerima, aturan SMTP)
├── sms/ ← Pengiriman SMS
├── web-monitoring/ ← Pemantauan status layanan
└── service-management/ ← Perintah operasional layanan
Jika AI diminta "kirim email" — ia akan membaca file skill ini dan secara otomatis tahu kepada siapa, dalam format apa, dan melalui SMTP mana harus mengirim. Tidak perlu bertanya "apa alamat email penerima?" setiap kali.
5. Mengapa Developer Peduli tentang Ini
"Masalah di Era Pengembangan Tanpa AI"
Bergantung pada kemampuan individu developer → kualitas menurun jika senior pergi
Harus ditangkap melalui code review → perlu dilihat langsung oleh manusia
"Masalah Tim dengan AI tetapi Tanpa Harness"
AI menghasilkan kode dengan cepat → tetapi tidak memahami konteks layanan kita
Mengulangi kesalahan yang sama → AI membuat bug, manusia memperbaikinya
AI dapat mengakses server produksi secara langsung → tidak tahu kapan akan terjadi insiden
"Tim dengan AI + Harness"
AI menulis kode dengan memahami aturan kita → generasi yang kontekstual
Jika terjadi kesalahan, dicatat di harness → mencegah kesalahan yang sama secara struktural
Akses produksi disetujui oleh manusia → otonomi yang aman
Meminjam ungkapan Toss:
"Dengan harness, kami meningkatkan titik terendah produktivitas seluruh organisasi. Tidak bergantung pada kemampuan individu, setiap anggota tim menghasilkan hasil di atas standar tertentu."
6. Ringkasan — Apa yang Ingin Saya Sampaikan kepada Non-Developer
Di era AI, definisi "melakukan dengan baik" sedang berubah.
Dulu: Developer yang pandai menulis kode Sekarang: Developer yang pandai merancang lingkungan tempat AI menulis kode
Inti dari desain lingkungan tersebut adalah rekayasa harness.
Dan ini bukan hanya tentang developer.
Harness yang juga bisa dilakukan oleh non-developer:
→ Menulis aturan kerja dengan jelas dalam dokumen
→ Mendefinisikan kepada AI "ini boleh dilakukan, ini tidak boleh dilakukan"
→ Mencatat "mengapa AI membuat kesalahan" ketika terjadi kesalahan
= Ini sendiri adalah awal dari rekayasa harness
Struktur Harness Onmam.com Sekilas
alpha-adk/
├── CLAUDE.md ← [Panduan] Wajib dibaca saat memulai sesi AI
├── AGENTS.md ← [Panduan] Aturan proyek (SoT)
├── .agents/context/
│ └── agents-rules.json ← [Panduan] Aturan operasional spesifik
├── .claude/
│ ├── hooks/
│ │ ├── deploy-guard.js ← [Sensor] Memblokir deployment produksi
│ │ ├── prod-gateway-guard.js← [Sensor] Memblokir kunci API produksi
│ │ ├── commit-guard.js ← [Sensor] Memverifikasi aturan commit
│ │ ├── pr-guard.js ← [Sensor] Memaksa persetujuan PR
│ │ ├── session-inject.js ← [Sensor] Menyuntikkan konteks setiap sesi
│ │ └── cascade-check.js ← [Sensor] Memeriksa dampak berantai setelah modifikasi
│ └── settings.json ← [Izin] Pengaturan eksekusi hook
├── skills/
│ ├── email/ ← [Alat] Skill pengiriman email
│ ├── web-monitoring/ ← [Alat] Pemantauan layanan
│ └── service-management/ ← [Alat] Perintah operasional layanan
└── data-private/memory/ ← [Feedback Loop] Mencatat kesalahan → Mencegah terulangnya
├── project_onmam_incidents.md ← Mencatat pola gangguan Board.php
├── project_onmam_app_structure.md← Mencatat kesalahan home≠portal
└── feedback_alpha_only.md ← Mencatat aturan khusus alpha
Harness = Kumpulan file-file ini Semuanya di-commit ke repo git. Semua konteks tim! terakumulasi sebagai kode.