Flow Design — Pendirian Yayasan (PENDIRIAN_YAYASAN)
Status: TERIMPLEMENTASI (as-built, diperbarui 2026-08-18). Dokumen ini semula rancangan siap-eksekusi; kini mencerminkan kondisi kode aktual. Blocker S5 (sampel akta asli) sudah terselesaikan — lihat §8.
Scope: OCR + LLM ekstraksi & validasi lokal (read-only) untuk pendirian Yayasan di SABH. Padanan: flow-pendirian-perkumpulan.md.
1. Ringkasan scope & keputusan pengikat
Menggantikan pengisian form manual pendirian Yayasan dengan alur upload-and-process: notaris mengunggah akta pendirian, AI mengekstrak field, memvalidasi, lalu menampilkan Smart Review untuk dikoreksi. Read-only — hasil hanya untuk audit/validasi; tidak ditulis balik ke SABH (push REST di luar scope).
Keputusan yang mengikat rancangan ini (register terkunci — semuanya terlaksana di kode):
| ID | Keputusan | Realisasi di kode |
|---|---|---|
| D1 | Validasi lokal, read-only | Tidak ada write-back; submit = terminal lokal |
| D3 | Field penuh + Smart Review (ala Pendirian PT) | Ekstraksi seluruh field akta, halaman review field-by-field |
| D4a | Terminal, tanpa verifikator | Berakhir "Selesai"; TERMINAL_TYPES (SABH tak punya verifikator pendirian yayasan — S1) |
| D5/D6 | SABH = sumber kebenaran/kewajiban | Field & dokumen wajib dari kode SABH, bukan asumsi regulasi |
| D7 | SubmissionType terpisah PENDIRIAN_YAYASAN |
Enum + registry entry sendiri |
| D8′ | v2-generic tenant (fork sudah pensiun) | flows/yayasan-pendirian.ts — defineFlow standar; kustom via buildContext + extractor + rules; tanpa customProcess, tanpa hooks.beforeValidation (blob ekstraksi sudah membawa organ+kekayaan, context builder membacanya langsung) |
| D9 | Satu fase — lokal + asing sekaligus | Varian asing termasuk di v1 (diskriminator jenis_transaksi diekstrak dari akta) |
| D10 | Extractor & context organ-aware bersama dgn diskriminator varian | services/nirlaba-akta-extract.ts + schema/organ-nirlaba.ts bersama Yayasan⇄Perkumpulan (juga dipakai flow perubahan) |
| D11 | Rule set inti (DIPERLUAS — lihat §7) | 3 rule bersama nirlaba + 10 rule eksklusif Yayasan; rule KTP/NPWP tetap dibuang |
| D12 | Functional, not deep (MVP solid) | Alur inti benar; tidak over-engineered |
2. Dokumen & varian (dari kode SABH — bukan asumsi)
KOREKSI PENTING (verifikasi kode, mengubah riset awal): pendirian Yayasan pada dasarnya flow satu dokumen. Surat-pernyataan (tidak sengketa/pailit, BO, notaris) yang sempat tercatat sebagai syarat pendirian ternyata milik PERUBAHAN (UploadAktaController.php:218, guard isYayasanPerubahanTransaksi, id_aksi 3). Tidak ada field file_ktp/file_npwp di BadanHukumAkta — Yayasan tak pernah mengunggah KTP/NPWP; identitas organ = data form (no_ktp_passport_pengurus).
| Dokumen | Wajib? | Sumber kode | Peran OCR |
|---|---|---|---|
Akta Pendirian Yayasan (file_akta) |
Wajib | BadanHukumAkta.php:26,275,286; UploadAktaController.php:84 (actionYayasan, id_aksi 2) |
Dokumen otoritatif — seluruh field diekstrak dari sini |
| Kuesioner BO ("02") | Wajib (gate) | UploadAktaController.php:92-93 (checkStatusQuestionnaire("02")) |
Bukan OCR — form terstruktur; disebut sebagai prasyarat, bukan target ekstraksi |
Surat Pertimbangan Kemenlu (upload_syarat_asing) |
Wajib bila asing | FormDataYayasan.php:143-144,162,638 (checkUploadSyarat, scenario input) |
Presence-only carrier (tanpa blob ekstraksi); rawText dipakai rule kecocokan isi (§7) |
| Residence Permit (KITAS/KITAP) | Opsional | Sensus SABH 2026-08-07: slot upload_syarat_asing di filing nyata kerap berisi residence permit, bukan surat Kemenlu |
DocumentType tersendiri (keputusan 2026-08-11); classifier keyword membedakannya dari surat Kemenlu |
Kewajiban surat Kemenlu ditegakkan lewat rule (SYARAT_ASING_PRESENT), bukan checklist upload — variannya baru ketahuan setelah akta terekstrak, jadi requiredDocs flow hanya berisi akta.
Varian (diskriminator jenis_transaksi):
- Nasional (jenis_transaksi != 'asing'): akta + kuesioner BO. Identitas organ pakai NIK. Kekayaan awal minimum Rp10.000.000 (PP 63/2008).
- Asing (jenis_transaksi == 'asing' atau legacy corporate_asing, FormDataYayasan.php:227,434): + Surat Kemenlu; kekayaan awal minimal Rp100.000.000 (FormDataYayasan.php:434-436); identitas organ pakai paspor + negara + KITAS. Nilai jenis_transaksi yang tak terbaca diperlakukan sebagai nasional (FAIL tak boleh menyala dari nilai yang tak bisa dijelaskan operator).
3. UI flow (4 step — akta-first, ala PT)
Akta = dokumen otoritatif (seperti PT, bukan flipped ala PP). Terminal (tanpa verifikator). Stepper pakai YAYASAN_LABELS (flow-steps.ts), route family yayasan.
| Step | Label | Isi |
|---|---|---|
| 1 | Unggah | Notaris unggah akta (+ Kemenlu / residence permit bila asing). Warning wajib bila akta belum ada (AKTA_PRESENT hard-block). |
| 2 | Klasifikasi | Classifier nirlaba in-app (§6) menandai akta yayasan; board review/override. |
| 3 | Proses & Periksa | Ekstraksi akta (grounded, §4) → organ + kekayaan + metadata; cross-validation (§7); vision retry otomatis untuk scan rusak. |
| 4 | Review & Submit | Smart Review field-by-field (autolock ≥ 0.95, pensil manual-fill untuk field wajib yang tak terbaca) + hasil validasi (PASS/WARNING/FAIL); submit → Selesai (terminal). |
Section Smart Review (dari flows/yayasan-pendirian.ts): Identitas Yayasan, Organ Yayasan, Kekayaan Awal, Data Akta & Notaris, Hasil Validasi.
3a. Mermaid — UI flow / step
akta, dok asing opsional] --> B[2. Klasifikasi
title-tier nirlaba + board override] B --> C[3. Proses & Periksa
ekstraksi grounded + validasi] C --> D[4. Review & Submit
Smart Review field-by-field] D --> E((Selesai
terminal, read-only)) A -. akta belum ada .-> W[/AKTA_PRESENT: hard-block/] W -. blokir lanjut .-> A
3b. Mermaid — arsitektur & data flow backend (as-built)
nirlaba-akta-classifier (title tier)
short-circuit sebelum rantai PT"] KL --> DISP["dispatchProcessor()
submission-dispatch.ts"] DISP -->|"engine === v2-generic"| RF["runFlow(id, yayasanPendirianFlow)
flow-engine/processor.ts"] RF --> EX["extractNirlabaAkta
PaddleOCR layout → LLM (gateway) →
OCR grounding + harvest kekayaan/pembukaan akta"] EX -->|"gejala scan rusak"| VR["Vision retry
nirlaba-vision-retry.ts"] VR --> EX EX --> CTX["buildYayasanPendirianContext
(tanpa hooks — blob sudah membawa organ+kekayaan)"] CTX --> VAL["Cross-validation
YAYASAN_PENDIRIAN_RULE_SET (13 rule, §7)"] VAL --> READY[status READY → Smart Review] VAL -. NAMA_AVAILABILITY .-> SABH[("SABH MySQL readonly
tbl_order_name + tbl_badan_hukum
base='yayasan' — nirlaba-nama-availability.ts")] READY --> SUBMIT[Submit → COMPLETED terminal]
3c. Mermaid — sequence ekstraksi
4. Ekstraksi (as-built): schema + pipeline grounded
Schema backend/src/schema/akta-yayasan.ts; tipe organ bersama di schema/organ-nirlaba.ts (D10 — OrganMember termasuk tanggal_lahir ISO, amandemen dev4 2026-08-11). Extractor bersama services/nirlaba-akta-extract.ts (paket 1 kontrak dev4): PaddleOCR (text+words) → LLM baca schema varian → OCR grounding → ExtractedField dengan confidence riil + BoundingBox + blob penuh di rawExtractionJson. Tanpa worker GPU-server (arsitektur apostille/PP, bukan PT).
Kebijakan confidence (inti modul — LLM tidak dimintai self-confidence karena tak terkalibrasi):
- Field verbatim (nama, angka, kedudukan): di-ground ke kata OCR. Ketemu → confidence dari kata OCR di lokasi itu (plus bbox gratis untuk PDF viewer). Tak ketemu → nilai dipertahankan pada confidence rendah 0.40 (beda dgn apostille yang drop-to-null) — field akta itu bahan review, "tampak tapi diragukan, pensil tersedia" adalah semantik Smart Review.
- Field turunan (tanggal ISO, jenis_transaksi terinferensi, enum jangka waktu, flag maksud): fixed 0.75 — sengaja di bawah ambang autolock; manusia mengonfirmasi setiap nilai turunan.
- Autolock ≥ 0.95 (cermin PP_AUTOLOCK_CONFIDENCE): pensil hanya muncul di tempat sistem ragu.
Tambahan pipeline: kekayaan-harvest.ts + akta-opening-harvest.ts (panen deterministik Pasal 5 & pembukaan akta), latin-confusables.ts (perbaikan glyph OCR), dan vision retry (nirlaba-vision-retry.ts) — skor gejala scan rusak memicu baca ulang halaman tersangka via model vision.
Field → mapping ke form legacy SABH:
| Field ekstraksi | Tipe | Mapping SABH (FormDataYayasan) |
|---|---|---|
nama_yayasan |
string | nama_yayasan |
nama_singkat |
string|null | nama_singkat |
nama_asing |
string|null | nama_asing (asing) |
kedudukan { provinsi, kabupaten } |
obj | provinsi_nama_yayasan, kabupaten_nama_yayasan (provinsi jarang tertulis di akta — diturunkan dari kabupaten via registry wilayah) |
jangka_waktu |
enum(terbatas|tidak_terbatas) |
jangka_waktu, tahun_jangka_waktu |
maksud_tujuan { sosial, kemanusiaan, keagamaan } |
flags + teks | bidang_sosial/kemanusiaan/keagamaan + keterangan_* |
kekayaan_awal { nilai, nilai_terbilang, jenis, sumber[] } |
number + enum | kekayaan_awal, jenis_kekayaan_awal, sumbangan/pemisahan/wakaf/hibah/... — angka vs terbilang diperiksa silang (§7) |
npwp_yayasan |
string|null | npwp_yayasan |
organ (diskriminator varian: yayasan) |
obj | (lihat bawah) |
akta { nomor, tanggal, notaris_nama, notaris_kedudukan } |
obj | nomor_akta, tgl_akta, notaris_akta |
Organ Yayasan (pembina[], pengurus[], pengawas[]) — setiap anggota:
{ nama, jabatan, nik/paspor/kitas, tanggal_lahir?, negara?, status_kewarganegaraan? } → SABH nama_pengurus, jabatan_pengurus, no_ktp_passport_pengurus, negara, kitas_pengurus, status_kewarganegaraan (organ dibedakan via organ_yayasan = PEMBINA/PENGURUS/PENGAWAS, OrganYayasanForm.php:11-13).
Diskriminator varian (D10): extractor menerima variant: "yayasan" | "perkumpulan" yang memilih daftar organ (Yayasan: Pembina/Pengurus/Pengawas) & prompt section. Nasional→NIK; asing→paspor+negara+KITAS.
5. Field yang di-extract vs yang manual/form
- Diekstrak dari akta (OCR value): nama, kedudukan, jangka waktu, maksud/bidang, kekayaan awal + sumber, seluruh organ + jabatan + identitas + tanggal lahir, NPWP, nomor/tanggal akta, notaris,
jenis_transaksi(turunan). - Bukan dari dokumen (tetap manual/registry): kuesioner BO (form), voucher, provinsi (turunan registry wilayah).
- Manual-fill (pensil): field wajib SABH yang selalu tertulis di akta tapi gagal terbaca (daftar
REQUIRED_READ_FIELD_KEYS) di-render sebagai baris kosong yang bisa diedit;REQUIRED_FIELDS_PRESENTmenyebutkannya per nama (§7).
6. Klasifikasi dokumen (as-built: in-app title tier, BUKAN model terlatih)
Realisasi berbeda dari rencana awal (pola apostille-LLM): classifier LayoutLMv3 terlatih hanya punya label PT — akta yayasan identik layout-nya dengan akta PT dan akan salah baca. Diskriminatornya adalah judul kepala-akta ("AKTA PENDIRIAN YAYASAN"), jadi yang dibangun adalah services/nirlaba-akta-classifier.ts:
- Tier 1 — judul (deterministik): regex
^-anchored, toleran titik/spasi/baris OCR; presisi ~100%, tanpa sampel training. Selalu aktif. Berjalan sebelum rantai refinement PT — hit nirlaba melakukan short-circuit; null jatuh ke jalur PT tak tersentuh (kepala akta PT tak pernah memuat "…YAYASAN"/"…PERKUMPULAN"). - Tier 2 — LLM fallback (guided_json, cermin apostille-classifier): DORMANT di balik
NIRLABA_CLASSIFIER=llmsampai sampel perkumpulan tersedia.
Label nirlaba (== DocumentType): AKTA_PENDIRIAN_YAYASAN, AKTA_PENDIRIAN_PERKUMPULAN, AKTA_PERUBAHAN_YAYASAN, AKTA_PERUBAHAN_PERKUMPULAN — NIRLABA_AKTA_SUBTYPE_MAP memetakan label→varian yang memilih extractor/context organ-aware.
| Kelas | Untuk | Catatan |
|---|---|---|
AKTA_PENDIRIAN_YAYASAN |
akta utama (wajib, maxCount 1) | primaryAkta.classifiedType |
SURAT_PERTIMBANGAN_KEMENLU |
dok asing (opsional di checklist; kewajibannya via rule) | presence-only; rawText untuk rule kecocokan isi |
RESIDENCE_PERMIT |
KITAS/KITAP organ asing (opsional) | kelas baru 2026-08-11 dari temuan sensus; nirlaba-syarat-asing-classifier.ts (detectSuratKemenlu / detectResidencePermit) membedakan keduanya via keyword |
Reuse: untuk pendirian, tidak ada reuse KTP/NPWP (dokumen itu tak ada di flow ini).
7. Spesifikasi rule (as-built — D11 diperluas)
Perubahan dari register: rule identitas KTP/NPWP tetap DIBUANG (tak ada dokumen anchor). D11 asli (5 rule) tumbuh menjadi 13 rule: 3 bersama nirlaba (
rules/nirlaba-shared) + 10 eksklusif Yayasan (rules/yayasan-pendirian/index.ts), termasuk ekstensi #7-#9 yang meng-anchor akta terhadap dirinya sendiri (disepakati 2026-08-11).
Non-overridable (YAYASAN_NON_OVERRIDABLE_RULE_CODES, keputusan 2026-08-11): AKTA_PRESENT, SYARAT_ASING_PRESENT — KEBERADAAN dokumen wajib bukan judgment call operator; hanya ISI yang boleh di-override. Endpoint override menolak kode ini, engine finalize memblokir FAIL-nya walau overridden, FE mencerminkan daftarnya (pola NON_OVERRIDABLE_RULE_CODES PP).
| Rule | Severity | Inti | Overridable |
|---|---|---|---|
AKTA_PRESENT (bersama) |
FAIL | Akta pendirian belum diunggah | tidak |
ORGAN_COMPLETENESS (bersama) |
FAIL (2026-08-13; semula WARNING) | Organ belum lengkap: {daftar kosong} | ya (extraction-doubt) |
NAMA_AVAILABILITY (bersama) |
PASS/FAIL | Paritas proses pesan-nama SABH (2026-08-13): reservasi konsumable (belum kedaluwarsa/terpakai/terblokir verifikasi — cermin FormDataYayasan + checkPesanNama) → PASS; ditolak SABH → FAIL dgn alasan sama; terdaftar tbl_badan_hukum base=yayasan → FAIL; tanpa jejak → FAIL "belum dipesan" |
hanya saat confidence nama_* rendah; nama terverifikasi → terkunci, remedinya pesan nama + revalidasi |
KEKAYAAN_AWAL_PRESENT |
WARNING | Nilai tak terbaca / tak wajar; plus deteksi angka vs terbilang bertentangan (kasus nyata JIMMYAN: "Rp 1.000.000" vs "satu miliar" — bentuk ANGKA yang dipakai, verifikator melihat konfliknya) | ya |
KEKAYAAN_ASING_MIN |
FAIL (asing) | Kekayaan awal < Rp100.000.000 (FormDataYayasan.php:434); SKIPPED bila nasional / nilai tak terbaca (satu masalah satu laporan) |
ya (extraction-doubt; nilai terverifikasi → terkunci) |
KEKAYAAN_NASIONAL_MIN |
FAIL (nasional) | Padanan sisi nasional (2026-08-14): kekayaan awal < Rp10.000.000 (PP 63/2008); bentuk sama dgn saudaranya | ya (extraction-doubt) |
REQUIRED_FIELDS_PRESENT |
WARNING | Semua field wajib SABH yang selalu tertulis di akta, diperiksa KETERBACAAN-nya (2026-08-14, generalisasi dari cek metadata akta; kasus RUMBAI: kartu "Data Akta & Notaris" kosong tanpa sinyal). Remedinya vision retry / re-upload / pensil manual-fill. Provinsi sengaja TIDAK dicek (akta hampir tak pernah menuliskannya) | ya |
SYARAT_ASING_PRESENT |
FAIL (asing) | Surat Kemenlu belum diunggah (checkUploadSyarat). Sensus menemukan filing asing lolos SABH tanpa file — itu bukti celah enforcement SABH, bukan lisensi menirunya |
tidak |
SYARAT_ASING_CONTENT |
WARNING (asing) | Isi dokumen bertipe Kemenlu benar-benar surat Kemenlu? Kedua fixture negatif = residence permit di slot ini; remedinya re-map tipe dokumen. SKIPPED bila teks belum terbaca | ya |
ORGAN_IDENTITY_COMPLETE |
WARNING | Setiap anggota harus datang dgn nama + identitas (NIK/paspor/KITAS) + jabatan terbaca — tanpa rule ini blanks duduk diam di board (kasus CICILIA/HO 2026-08-12, JUNGCHANHEE 2026-08-13) | ya |
ORGAN_NIK_TTL_MATCH (#7) |
WARNING | NIK meng-encode tanggal lahir (digit 7-12, +40 utk perempuan, UU Adminduk 24/2013) — akta membawa checksum-nya sendiri; via lib/nik-birthdate. Sampel: 13 orang, 11 match, 1 mismatch = typo di AKTA (maka WARNING, bukan FAIL) |
ya |
ORGAN_NIK_FORMAT (#8) |
WARNING | NIK sah = tepat 16 digit; kedua akta sampel memuat NIK 17-digit asli. SKIPPED bila tak ada NIK (organ asing) | ya |
ORGAN_RANGKAP (#9) |
WARNING | UU Yayasan (Psl 29, Psl 40(4)) melarang rangkap antar organ; kasus sampel = baris "Pendiri" ikut terbaca sebagai Pembina (slip ekstraksi). Match by NIK, fallback nama | ya |
Dibuang (tak ada anchor di pendirian yayasan): NIK_KTP_ORGAN, NAMA_NPWP_ORGAN, KTP_COMPLETENESS, NPWP_COMPLETENESS, NAMA_BH_CONSISTENCY, dan seluruh rule saham/modal/bukti-setor/KBLI.
8. Sampel & golden set (blocker S5 SELESAI)
Sampel akta asli dari SABH tiba bertahap 2026-08-07 s.d. 2026-08-14 — prompt extractor sudah dituning dan diuji akurasi terhadapnya. Manifest lengkap: docs/samples/yayasan/README.md (PDF + .expected.json tidak di-commit — gitignored, berisi NIK/alamat).
- Akta: 2 nasional (1 born-digital, 1 scan) + 3 asing (scan 52-54 hlm; organ WNA Korea/RRT; satu dgn provinsi tertulis; satu dgn konflik angka-vs-terbilang kekayaan = kasus uji emas).
- Syarat asing: 1 surat pertimbangan Kemenlu asli (n=1 — jangan anchor keyword dari ini saja) + 2 residence permit yang ditemukan menghuni slot
upload_syarat_asing(fixture positifRESIDENCE_PERMITsekaligus fixture "bukan-Kemenlu"). - Golden set: file kembar
<basename>.expected.jsondi samping tiap PDF untuk uji akurasi ekstraksi; temuan lapangan per sampel (nama terbalik, NIK 15/17 digit, identitas di pasal penutup, dsb.) tercatat sebagai temuan bernomor di README sampel dan sudah menjadi rule §7.
Yang dulu ditandai BLOCKED-ON-S5 (prompt extractor, uji akurasi organ/kekayaan) kini live; sisa dormansi hanya LLM-fallback classifier perkumpulan (§6) yang menunggu sampel perkumpulan.
9. Roadmap
R1 — Dokumen identitas organ (KTP / Paspor+KITAS) + validasi silang antar-dokumen (ditambahkan 2026-08-18)
Menambahkan dokumen identitas sebagai syarat pendirian Yayasan, dengan pemeriksaan silang terhadap roster organ di akta. Ini melampaui paritas SABH secara sengaja: SABH tidak pernah meminta KTP/NPWP untuk pendirian yayasan (temuan §2), dan justru karena itu D11 membuang seluruh rule identitas — tidak ada dokumen anchor. Item ini MENCIPTAKAN anchor tersebut, sehingga rule yang dulu dibuang bisa hidup kembali dalam bentuk yayasan.
Bentuk kebutuhan (per anggota organ, bukan checklist statis):
- Anggota WNI: KTP.
- Anggota WNA: Paspor + KITAS/KITAP (kelas RESIDENCE_PERMIT yang hari ini opsional naik status menjadi bagian syarat; paspor kemungkinan butuh DocumentType baru).
- Karena jumlah dokumen mengikuti isi roster (baru diketahui setelah ekstraksi akta), penegakan lewat rule coverage per-anggota (pola PP BO), bukan requiredDocs statis.
Validasi silang yang direncanakan (anchor akta ⇄ dokumen identitas):
- NIK di KTP vs NIK anggota di akta (exact digit).
- Nama di KTP/paspor vs nama di akta — toleran urutan kata terbalik (kasus nyata sampel: Pembina "ASLAN BURHAN" = pemegang permit "BURHAN ASLAN").
- Tanggal lahir KTP vs NIK (reuse lib/nik-birthdate) dan vs tanggal_lahir akta.
- Nomor paspor di residence permit vs paspor anggota di akta (kasus nyata sampel: JUNGCHANHEE, paspor cocok).
- Kepemilikan: setiap dokumen identitas harus terpetakan ke tepat satu anggota organ; dokumen tak terpetakan = temuan.
Reuse yang tersedia: classifier + extractor KTP milik flow PT; kelas RESIDENCE_PERMIT + nirlaba-syarat-asing-classifier; pola coverage & guard dokumen-bersama dari PP BO (satu dokumen bisa dirujuk beberapa baris — jangan hapus fisik tanpa cek referensi).
Keputusan yang masih terbuka:
- Severity kelengkapan: filing SABH nyata sah TANPA dokumen ini, jadi absennya dokumen kemungkinan WARNING (bukan FAIL pemblokir) atau FAIL-yang-overridable — perlu keputusan produk sebelum implementasi.
- Mismatch hasil cross-check: WARNING overridable (konsisten dengan kebijakan ORGAN_NIK_TTL_MATCH — typo bisa di sisi akta).
- Dampak D10: skema kebutuhan yang sama layak dipertimbangkan untuk Perkumpulan (modul bersama) sekaligus.
R2 — Dokumen sumber data: NPWP perorangan, surat domisili, data kontak (diputuskan 2026-08-18)
Melengkapi R1 dengan tiga dokumen "pengganti ketikan" yang sama-sama sudah dipakai flow PT — reuse penuh, terverifikasi: document-processor men-dispatch ekstraktor murni berdasarkan documentType (flow-agnostic), enum + classifier terlatih + ekstraktor semuanya sudah ada.
| Dokumen | Data yang digantikan | Catatan |
|---|---|---|
| NPWP perorangan | NPWP pengurus | Cross-check nama vs organ akta (bagian dari validasi silang R1) |
| Surat pernyataan domisili | Alamat lengkap kantor (RT/RW, kelurahan, kecamatan, kodepos) | Akta pendirian biasanya hanya menyebut kedudukan kabupaten |
| Data kontak | Email + telepon | Pola DATA_KONTAK PT |
Severity mengikuti keputusan R1: mulai WARNING per dokumen (filing SABH nyata sah tanpa dokumen-dokumen ini), dinaikkan ke wajib setelah kebiasaan pengguna terbentuk.
R3 — Kekayaan awal + wasiat (diputuskan 2026-08-18)
- Bukti setor kekayaan awal — reuse keluarga
BUKTI_TRANSFER-*milik PT, berstatus opsional-verifikasi: SABH yayasan sendiri deklaratif ("Bukti penyetoran ATAU pernyataan tertulis dari pendiri",_formPengisianYayasan.php:1401), jadi ini bukan kebutuhan paritas melainkan nilai tambah OCR — cross-check angka vskekayaan_awalakta; paling bernilai untuk yayasan asing dengan floor Rp100 juta (KEKAYAAN_ASING_MINsudah ada). - Akta/kutipan wasiat — DocumentType BARU (satu-satunya di roadmap pendirian), store-only + rule yang ter-gate bila akta menyatakan sumber kekayaan hibah wasiat; menggantikan 4 kolom wasiat yang di SABH diketik manual (
nomor_wasiat,tanggal_akta_wasiat,nama_pemberi_wasiat,notaris+ kedudukannya). Khas yayasan: nol kemunculanwasiatdi model perseroan (PT didirikan dengan perjanjian, bukan wasiat; warisan di PT = peralihan saham pada perubahan).
Perkiraan R2+R3 gabungan: sekitar 1 hari (di luar validasi silang R1 yang ±1 hari sendiri).