think
16px
820px

Korpus chatbot batch 2 — domain AHU tambahan + product knowledge ahu-ocr

Tanggal: 2026-08-22 · Lanjutan dari: batch 1
Lingkup: data-only. Tidak ada perubahan kode aplikasi, tidak ada deploy.


1. Ringkasan

Awal hari ini Setelah batch 1 Setelah batch 2
guide (crawl panduan.ahu.go.id) 757 757 757
generated-help (artikel buatan sendiri) 43 297 378
Total chunk 800 1.054 1.135
Total artikel generated-help 43 77 96

Batch 2 menambah 19 artikel / 81 chunk: 11 artikel domain AHU (gen5_*) dan
8 artikel product knowledge ahu-ocr (gen6_*).

Keputusan Anda soal ambang rupiah non-tarif — dibiarkan tanpa angka — sudah
dijalankan; builder batch 2 bahkan punya assertion yang menolak build kalau ada
nominal rupiah yang lolos.


2. Artikel baru per domain

2a. gen5_* — domain AHU (11 artikel / 43 chunk)

Artikel Isi pokok
CV/Firma/Persekutuan Perdata — jenis transaksi 5 jenis: Pendaftaran · Pencatatan Pendaftaran · Perubahan · Pencatatan Perubahan · Pembubaran. Jalur "Pencatatan" untuk badan usaha yang berdiri sebelum sistem daring, dan wajib melampirkan Bukti Pengesahan lama
Aturan nama CV/Firma/PD Nama tidak boleh berawalan "CV", cek kata terlarang, cek nama terdaftar & nama yang sedang diajukan, pengajuan nama punya tanggal kedaluwarsa
Pembubaran CV/Firma/PD 6 dasar pembubaran + dokumen pendukung (Akta Pembubaran / Putusan Pengadilan / Dokumen Lain)
Pelaporan wasiat bulanan (notaris) UUJN Pasal 16 ayat (1) huruf j: 5 hari pada minggu pertama tiap bulan berikutnya; jendela tanggal 1–5; laporan NIHIL tetap wajib; terlambat → teguran email & risiko freeze; form unfreeze hanya tanggal 5–12
Surat Keterangan Wasiat (SKW) Data pemohon, dokumen kematian, identitas almarhum (termasuk alias & "lahir sekitar tahun"); unggahan maks 5 MB; email Yahoo/Hotmail/Live/Outlook tidak diproses
Pemilik Manfaat (BO) Data wajib tiap pemilik manfaat termasuk alamat sesuai negara asal untuk WNA dan "hubungan korporasi dengan pemilik manfaat"; kriteria berbeda per bentuk korporasi
Pemblokiran badan hukum Jenis blokir (Password / Permohonan), cakupan Seluruhnya/Sebagian, 12 jenis dokumen pendukung, dan rantai Konseptor → Verifikator → Direktur BU → Jenderal → Selesai
Pembubaran PT vs Berakhirnya Status Pembubaran (Ps.142–147) MEMBUKA likuidasi & mengangkat likuidator; Berakhirnya Status MENUTUPnya dengan menerima laporan akhir likuidator. Prasyarat: pembubaran harus sudah disetujui
Penggabungan vs Peleburan vs Pengambilalihan Penggabungan → satu PT bertahan; Peleburan → semua bubar, lahir PT baru; Pengambilalihan → tidak ada yang bubar, pengendalian yang pindah
Dokumen pendirian Yayasan & Perkumpulan Akta saja untuk pendirian lokal (+ Surat Pertimbangan Kemenlu untuk yayasan asing); identitas organ diketik sebagai data formulir, bukan diunggah; pendirian nirlaba tanpa tahap verifikator
Advokat asing Diajukan oleh kantor advokat; ijazah dilegalisir KBRI; rekomendasi organisasi advokat Indonesia; kuota per kantor; tahap wawancara

2b. gen6_* — product knowledge ahu-ocr (8 artikel / 38 chunk)

Artikel Isi pokok
Apa itu Sistem OCR/AI AHU Membaca dokumen → mengisi formulir otomatis. "Yang tadinya mengetik, sekarang tinggal memeriksa." Sepenuhnya on-premise
Langkah penggunaannya Unggah → Ekstraksi → Tinjauan → Selesai, plus varian: tahap Menunggu Verifikasi, alur form-first Perubahan PP, Pembubaran PP, Perbaikan Data PT
Halaman Tinjauan Ringkasan AI, Hasil Validasi (yang lulus disembunyikan), panel isian, bounding box; arti warna hijau/kuning/merah dan override wajib beralasan
Cakupan 5 keluarga alur (PT, PP, Yayasan, Perkumpulan, Apostille), 20 jenis dokumen PT / 53 lintas alur, 13 kategori apostille, 149 kode aturan validasi
Sisi verifikator Antrean, filter cepat, Rekomendasi AI: Aman / Perlu Perhatian / Waspada, keputusan Setujui/Tolak/Minta Revisi dengan catatan wajib
Pencocokan tanda tangan Dokumen vs spesimen registri, peta kemiripan; skor advisori, dibatasi pada tingkat PERINGATAN, tidak pernah bisa menolak sendiri
Batasan sistem Tidak menerbitkan SK · AI mengusulkan manusia memutuskan · sumber kebenaran tetap sistem asal · tidak ada klaim akurasi · skor keyakinan bukan ukuran kebenaran
Beda chatbot vs sistem OCR Batas tegas antara keduanya

3. Product knowledge ahu-ocr — apa yang sengaja TIDAK dimasukkan

Deck demo produk (ahu-ocr-tidyup/docs/2026-08-22-materi-slide-demo-28-agustus.md)
punya daftar "JANGAN dikutip" sendiri. Saya mengikutinya, dan untuk beberapa hal
saya bahkan lebih ketat — karena jawaban chatbot tidak bisa dijamin membawa
caveat-nya ikut serta.

Tidak dimasukkan Alasan
Correction rate 2,34% Ini batas bawah tingkat kesalahan, bukan akurasi — berkas ukurannya sendiri menyatakan "This is not accuracy." Dalam satu kali penceritaan ulang, angka ini berubah jadi "97,7% akurat". Sebuah artikel bisa menuliskan caveatnya; sebuah jawaban chatbot yang diringkas belum tentu. Jadi angkanya tidak ada sama sekali di korpus
Confidence gating / "keyakinan tinggi = lebih akurat" Kalibrasinya tidak monoton (pita <0,50 justru 1,5% koreksi, pita ≥0,95 2,4%)
Latensi ujung-ke-ujung Belum pernah diukur
Perbandingan kecepatan vs SABH Sisi SABH tidak pernah diukur
URL/port staging internal, kolom Secret, peran login Ini permukaan publik — alamat internal tidak boleh bocor ke sana
Flag demo/debug (SK_MOCK_DEMO, ALLOW_DEBUG_BYPASS, votingDemoMode) Detail operasional, bukan pengetahuan produk
Nama data contoh & ID submission Sebagian menyangkut pindaian dokumen orang sungguhan

Sebagai gantinya, artikel gen6_ocr_batasan menyatakan batasan itu secara
positif
— sehingga ketika ditanya "berapa akurasinya?", model menjawab bahwa
sistem ini tidak menyatakan angka akurasi, bukan mengarang satu.

Batas terhadap scope chatbot tetap dijaga

Setiap artikel gen6_* diakhiri kalimat tetap: "chatbot Tanya AHU ini TIDAK
memproses, membaca, atau menerima unggahan dokumen."
Jadi menambah product
knowledge tidak membuat chatbot terkesan bisa menerima dokumen — justru
sebaliknya, sekarang ia bisa menjelaskan perbedaannya dengan tegas. Diuji
langsung, lihat §5.


4. Temuan orchestrator ketiga (diperbaiki, tanpa deploy)

Batch 1 menemukan dua cacat (passage 600 karakter, input guard). Batch 2
menemukan satu lagi:

Planner mengembalikan rencana KOSONG untuk pertanyaan meta.
"Apakah chatbot ini bisa membaca dokumen saya?""Maaf, saya tidak dapat
memproses pertanyaan ini."
dalam 0,5 detik. Penyebabnya plan.ts:136-141:
bila daftar tool call kosong, permohonan ditolak dengan kode PLAN_UNPARSEABLE.
Planner menganggap pertanyaan tentang dirinya sendiri tidak butuh tool.

Ini pertanyaan yang sangat mungkin muncul di demo — dan jawabannya justru
ada di korpus (gen6_ocr_vs_chatbot).

Perbaikan: aturan L2 diperluas agar pertanyaan META tentang layanan ini
sendiri juga dirutekan ke tool rag, dengan penutup "Jangan pernah
mengembalikan rencana kosong: bila ragu, panggil tool rag."

Sekalian diperbaiki: blok aturan L2 sekarang dibatasi penanda
(<!-- demo28:begin -->), sehingga menjalankan ulang skrip policy
mengganti aturannya, bukan menempelkan salinan basi kedua. Diverifikasi:
hanya ada 1 blok, 922 karakter.

Policy sekarang di v5 (v0 → v5). Rollback satu perintah, ada di header
policy_allow_topics_demo28.js.

Keamanan — tidak ada regresi

Guard L4 tetap tidak disentuh. Kelima probe diuji ulang setelah setiap
perubahan policy dan semuanya tetap ditolak dalam 0,1 detik:
direktur PT tertentu · daftar notaris beserta alamat · kekayaan PT tertentu ·
NIK telanjang · pemegang saham PT tertentu.


5. Hasil uji langsung (staging)

5a. Empat belas pertanyaan baru

# Pertanyaan Hasil Waktu
1 Apa bedanya pendaftaran dan pencatatan CV? ✅ lengkap, bahkan menarik detail Pengadilan Negeri dari korpus crawl 6,2s
2 Apakah nama CV boleh diawali kata CV? ✅ tidak boleh, beserta pesan sistemnya 3,5s
3 Apa saja dasar pembubaran CV? ✅ keenam dasar 5,6s
4 Kapan notaris harus melaporkan daftar akta wasiat? ✅ UUJN 16(1)j, jendela 1–5, teguran, freeze, unfreeze 5–12 4,5s
5 Bagaimana cara mengurus SKW untuk ahli waris? ✅ termasuk jebakan email Yahoo/Hotmail 9,5s
6 Data apa saja yang harus dilaporkan untuk pemilik manfaat? ✅ lengkap 7,4s
7 Bagaimana alur permohonan pemblokiran badan hukum? ✅ rantai 4 tahap + dokumen 8,0s
8 Apa bedanya pembubaran PT dan berakhirnya status badan hukum? ✅ "membuka vs menutup likuidasi" 7,8s
9 Apa bedanya penggabungan, peleburan, dan pengambilalihan PT? ✅ ketiganya, dengan nasib badan hukum masing-masing 7,2s
10 Berapa banyak dokumen yang harus diunggah saat mendirikan Yayasan? ✅ akta saja (+ Kemenlu untuk asing) 3,7s
11 Bagaimana cara kantor advokat mempekerjakan advokat asing? ✅ termasuk kuota & wawancara 6,6s
12 Apa itu sistem OCR AHU dan apa fungsinya? ✅ + menyebut sendiri bedanya dengan chatbot 6,7s
13 Apakah sistem OCR AHU menerbitkan SK? tidak — contoh SK berlabel CONTOH 3,7s
14 Bagaimana cara membaca warna pada halaman tinjauan? ✅ hijau/kuning/merah + override beralasan 6,6s

5b. Tiga pertanyaan meta (semula gagal, kini lolos)

Pertanyaan Sebelum Sesudah Waktu
Apakah chatbot ini bisa membaca dokumen saya? ditolak PLAN_UNPARSEABLE 0,5s ✅ "Tidak" + mengarahkan ke sistem OCR 4,1s
Apa bedanya chatbot ini dengan sistem OCR AHU? ✅ perbandingan tiga sumbu 9,6s
Apakah AI-nya yang memutuskan permohonan disetujui? tidak, advisori, keputusan pada verifikator 4,2s

5c. Regresi enam pertanyaan demo — aman

Pertanyaan Waktu Panjang jawaban
Cara mendirikan PT Perorangan 7,7s 1.698 char
Apostille vs legalisasi 6,0s 1.439 char
Syarat nama PT 6,9s 1.315 char
Masa berlaku pesan nama 4,2s 738 char
Syarat pengesahan Yayasan 6,7s 1.435 char
Cara mengubah anggaran dasar PT 9,1s 1.884 char

6. Provenance batch 2

Domain AHU (read-only, ~/remote-development/ahu-codebase)

Fakta Sumber
5 jenis transaksi CV ahu-cv-firma/protected/modules/cv/models/Cv.php:10-16
Pencatatan wajib Bukti Pengesahan Cv.php:1663-1675 (validateAkta)
Nama tidak boleh berawalan CV Cv.php:1651-1662 (validate_nama)
6 dasar pembubaran + dokumen Cv.php:75-100 ($list_dasar_pembubaran)
Modul cv/firma/pd; tipe badan usaha ahu-cv-firma/protected/models/BadanUsahaBlokir.php:26-28; protected/modules/
UUJN Ps.16(1)j teks lengkap ahu-wasiat/views/transaksi/create.php:15
Batas tanggal 5, teguran email ahu-wasiat/controllers/TransaksiController.php:16,274-290
Form unfreeze hanya tanggal 5–12 ahu-wasiat/views/transaksi/_formFreezeNotaris.php:11
Voucher "Pelaporan Bulanan Daftar Akta berkenaan dengan Wasiat" ahu-wasiat/models/Wasiat.php:298-299; models/PNBPWasiat.php:8
Isian SKW ahu-wasiat/models/FormPemohonWasiat.php:184-228
Unggahan maks 5 MB, PDF-only sebagian FormPemohonWasiat.php:240-249
Email Yahoo/Hotmail/Live/Outlook ditolak FormPemohonWasiat.php:273
Data pemilik manfaat ahu-cv-firma/protected/models/QuestionPemilikManfaat.php:27-50
Kriteria BO per bentuk korporasi (DB-driven) beneficial-owner/models/master/KriteriaBO.php, RuleKriteria.php:40-55
Jenis blokir & kategori ahu-pemblokiran/.../internal/enum/jenis_blokir_sabh.go, kategori_permohonan.go
12 dokumen pemblokiran PT internal/enum/dokumen_pemblokiran_pt.go:11-23
Rantai Konseptor→Verifikator→Direktur BU→Jenderal internal/enum/status_permohonan_blokir_pt.go:42-58
Pembubaran = id_aksi 12; Berakhirnya = id_aksi 36 (kode 70) SABH models/VerifikasiPerseroan.php:175-176; models/TransaksiPerseroan.php:56,2232-2307; models/FormDataPerseroanPembubaran.php:356
Merger = id_aksi 11 SABH models/TransaksiPerseroan.php:2861
Ijazah legalisir KBRI, rekomendasi organisasi advokat, kuota, wawancara ahu-advokat/modules/permohonan_baru/views/permohonan-baru/create.php:75,398,465-512; modules/permohonan/models/Wawancara.php:52

Produk ahu-ocr (read-only, ~/remote-development/poc-ahu-ai/ahu-ocr-tidyup)

Fakta Sumber
Label langkah & sub-label tiap alur frontend/src/lib/flow-steps.ts:13-60
Daftar jenis transaksi yang didukung backend/prisma/schema.prisma:119-235
Pembubaran vs Berakhirnya, Penggabungan vs Peleburan, Akuisisi — beserta rujukan UUPT dan id_aksi SABH komentar doc pada schema.prisma:137-200
Pendirian Yayasan/Perkumpulan akta-only + Kemenlu untuk asing, tanpa verifikator schema.prisma:184-200
Peralihan PP ke PT (menumpang pipeline pendirian PT) schema.prisma:126-128
Apostille satu tipe untuk dua layanan, read-only integration schema.prisma:129-134
Warna validasi, ringkasan AI, bounding box, "Centang semua", cakupan angka, label verifikator, modal tanda tangan, caveat wajib docs/2026-08-22-materi-slide-demo-28-agustus.md §2, §5–§8, §11
Stack on-premise, tanpa panggilan API awan CLAUDE.md ("Full on-premise: no cloud API calls")

7. Yang masih sengaja dilewati

Dilewati Alasan
Ambang rupiah non-tarif (modal wajib-audit, kekayaan minimum yayasan asing) Sesuai keputusan Anda: dibiarkan tanpa angka. Builder batch 2 punya assertion yang gagal kalau ada nominal rupiah lolos
Ambang persentase kriteria pemilik manfaat Kriterianya disimpan di tabel database (kriteria_bo), bukan di kode, dan berbeda per bentuk korporasi. Artikel menjelaskan mekanismenya tanpa mengarang angka ambang
Koperasi, Partai Politik, Kurator, PPNS, e-PASTI Ada codebase-nya, tapi tidak masuk prioritas yang Anda sebutkan dan tidak semuanya relevan untuk audiens demo. Siap dikerjakan kalau diminta
Angka correction rate produk OCR Lihat §3 — risiko salah baca lebih besar daripada manfaatnya
Menaikkan 600 di compose.ts Tetap perbaikan kode yang butuh deploy; ditangani dari sisi korpus. Rekomendasi pasca-28 Agustus tidak berubah

8. Keadaan akhir

  • Tidak ada deploy, tidak ada file aplikasi diubah. Yang berubah: Milvus, knowledge API agent, dan policy.sqlite.
  • Reload schema dijalankan di kedua agent. Internal 51.250 / 69.934 karakter; public 51.250 / 65.187.
  • Backup batch 1 (800 chunk) tetap di ~/backups/ahu-ai-chatbot/2026-08-22/.
  • Mode demo masih ON di staging — tidak saya ubah.
  • Commit bd7f32b (batch 2), menyusul 782992f (batch 1).

9. Berkas baru batch 2

Berkas Isi
docs/knowledge-sources/build_demo28_batch2.py builder 19 artikel (gen5_ + gen6_), dengan assertion anti-rupiah
docs/knowledge-sources/gen_demo28_batch2.json 43 chunk domain AHU
docs/knowledge-sources/gen_demo28_ocr.json 38 chunk product knowledge ahu-ocr