think
16px
820px

Smoke-Revision Batch 3 — 2026-07-10 (all done + deployed @52545fde)

TL;DR: all four items closed and live on x056.ahu-demo.ocr.val.id. The berakhirnya "masih minta KTP/NPWP" was a step-3 rule that never got the step-2 doc-set update; the "extraksi rusak" was two document types with NO extraction handler falling into the deed classifier and getting rejected — both fixed, and the dev's stuck submission was repaired in place (now Tinjauan, 6/6 docs). AI summaries now render on every PT transaction, and the SP Pendirian PP builder is built end-to-end (verified: real 2-page PDF generated on staging). Backend 2470/0 · frontend 970/0.

1. Berakhirnya step 3 — dua akar masalah

Symptom Root cause Fix
Step 3 "masih minta KTP dan NPWP" BSBHP_REQUIRED_DOCS (the step-3 validation rule) still hard-FAILed on missing KTP/NPWP — batch 2 only updated the step-2 doc-set (BERAKHIRNYA_DOC_TYPES), not the rule. Klasik step-2/step-3 drift. KTP/NPWP removed from the rule's required list (label → "Paket 6 Dokumen PDF"); the shared KTP/NPWP rules already degrade to SKIPPED/WARNING when the docs are absent, so nothing else demands them. Flow requiredDocs declaration aligned.
"Extraksi datanya masih rusak" SURAT_PERMOHONAN and LAPORAN_LIKUIDASI had no case in the document processor — they fell through to the generic deed handler, whose doc-classifier gate rejected them (Classifier confidence too low (0.3%): 'PENETAPAN_GANTI_NAMA') and bricked both documents. SURAT_LIKUIDATOR (pembubaran) got its OCR-only case; these two never did. Both join the OCR-only carrier block (PaddleOCR text only; the grounded field extraction was always meant to run in the flow-engine focusedPasses — which was already wired and waiting). I consolidated the four copy-pasted OCR-only cases into one while there.

Also checked while I was in there: pembubaran dan penggabungan tidak punya drift serupa (mereka tak pernah hard-require KTP/NPWP di step 3).

Your stuck submission a9472c45 was repaired in place on staging — the two bricked docs re-extracted (real OCR text now), focused passes ran, validation re-computed: BSBHP_REQUIRED_DOCS=PASS, likuidator match PASS, dan submission sekarang Tinjauan 100% (6/6). Catatan: dua FAIL tersisa (BSBHP_REGISTRY_STATE — PT ini belum punya pembubaran yang disetujui di SABH; AKTA_DATE_WINDOW — akta > 30 hari) adalah validasi bisnis yang memang benar untuk data uji ini, bukan bug. Tiga submission ERROR jam 04:29–04:31 (0 dokumen) adalah artefak re-submit dari state browser lama — temp file sudah terpakai oleh submission pertama; abaikan/hapus saja.

2. Ringkasan AI di semua transaksi (async, non-blocking)

  • Komponen bersama AiSummaryCard (di-extract dari halaman Laporan RUPS): fire-once saat data review tiba, skeleton saat menunggu, error + "Coba lagi" tanpa memblokir review (LLM run nyata ~17 dtk — terverifikasi live di submission berakhirnya).
  • /summarize sekarang me-route SEMUA tipe PT: perubahan/akuisisi/penggabungan (builder delta-family dengan heading sesuai tipe), pembubaran (akta + surat likuidator), berakhirnya (paket 6-PDF + sisa kekayaan + urutan pengumuman), peleburan (dump gaya pendirian — akta = anggaran dasar PT baru), pendirian & Laporan RUPS (sudah ada).
  • Kartu terpasang di: PT pendirian/perubahan/akuisisi/penggabungan V2 + halaman review pembubaran/berakhirnya/peleburan. (PP flows belum — data modelnya beda; bilang saja kalau mau menyusul.)
  • Screenshot-verified di 703eb1a7 — kartu "Ringkasan AI" tampil paling atas dengan ringkasan nyata.

3. SP Pendirian PP builder (item roadmap, sekarang jadi)

Mengikuti rasa UI/UX Surat Keterangan Perbaikan (list → builder → terbit → unduh PDF), dengan SATU perbedaan disengaja sesuai permintaanmu: tidak ada toggle pilih-bidang — surat pendirian menuntut semua bidang terisi, jadi seluruh form selalu tampil dan tombol Terbitkan/Pratinjau di-gate oleh checklist kelengkapan (sidebar menyebut persis bidang yang kosong; API juga menolak 409 + daftar gap).

  • Halaman: /pp/sp-pendirian (daftar, filter Draft/Diterbitkan, unduh template kosong) + /pp/sp-pendirian/new (builder; autosave; lanjutkan draft via ?continue=).
  • Bidang: identitas pemilik (8), data perseroan (12 + modal dengan terbilang otomatis), KBLI multi-select (reuse komponen SK, cari master KBLI), pemilik manfaat (opsional, tabel dinamis), kota + tanggal surat. Singkatan & BO opsional; sisanya wajib.
  • Output: docx (template docxtemplater baru, font OCRA, 3 klausul PERNYATAAN statutori tetap tercetak → PP_DECLARATIONS_PRESENT lulus saat surat diunggah ke permohonan Pendirian PP) + PDF via libreoffice. Diverifikasi live: PDF 2 halaman ter-generate di staging.
  • Entry points: tombol "Buat Surat Pernyataan" di kartu "Belum punya Surat Pernyataan?" pada /pp/pendirian/klasifikasi, + entri sidebar "Surat Pernyataan Pendirian" di grup Perseroan Perorangan.
  • Backend: model SpPendirianPp (satu blob JSON — beda dari SK yang per-correction-row), routes /api/pp/sp-pendirian (draft PATCH menerima partial; generate/preview di-gate), migrasi 20260710080000 (terpasang otomatis saat deploy).

4. Roadmap: Bukti Setor rewrite (recorded)

Spec kamu tercatat di tidyup/tasks.md (Phase G roadmap) + memory: buang daftar file/jenis dokumen (redundan); tampilkan fakta setoran yang dikompilasi lintas file bukti setor — bank, no. rekening penerima (jika ada), jumlah, transaction id (jika ada), tanggal transfer (jika ada), cabang (jika ada) — komponen dinamis (render hanya field yang ada per setoran). Catatan implementasi: butuh pass ekstraksi baru untuk field bukti-transfer (ekstraksi sekarang hanya membaca total penyetor).

Deploy record

ahu-ai-ocr:52545fde di Server 2 (:3520); migrasi 20260710080000_sp_pendirian_pp auto-applied; health OK; berakhirnya submission repaired; SP PDF generation + summarize endpoints verified live. Commits: 6e66ad08 (batch utama) + 52545fde (copy fix KBLI empty-state).