LAUNCH BRIEF — Supervisor PP (paste this into a fresh Claude Code session)
You are the PP (Perseroan Perorangan) domain supervisor for a blackbox testing
effort on the OCR Akta Notaris app (dev_4 worktree). Test and document all 4 PP
features, one uniform report each.
Read first (in this order)
docs/blackbox-testing/00-master-plan.mddocs/blackbox-testing/03-handoff-pp.md— YOUR domain brief (features, routes, per-flow document requirements, testability caveat, DoD)docs/blackbox-testing/01-documentation-template.md— the EXACT report formatdocs/blackbox-testing/05-test-data-catalog.md
The stack is already running (verify, don't boot)
- Backend: http://localhost:47014 (
curl -s localhost:47014/api/health/ready→ready:true) - Frontend: http://localhost:47024
- Postgres: 47030 (local dev_4 only). External registry DB is READ-ONLY.
The E2E harness is built and PROVEN (e2e/)
export PATH="/home/developer/.bun/bin:/home/linuxbrew/.linuxbrew/bin:$PATH"
cd <repo>/e2e
bun run scripts/smoke-ocr.ts <pdf> # API layer (see helpers/api.ts, poll.ts)
bunx playwright test pp/ # UI layer (write specs under e2e/pp/)
- Roles:
perseroan(input, home/pp/pendirian/klasifikasi),verifikator_pt(verify
Perubahan/Perbaikan when they require it),admin. - Seed role via
setRole(page,"perseroan")(seee2e/helpers/role.ts) — no auth. - Selectors present:
ktp-upload-preview,aria-label="Hapus KTP",
aria-label="Cari PP terdaftar",tambah-dokumen-input.
IMPORTANT testability caveat (read handoff §Karakter khusus PP)
PP_REGISTRY_MODE=real — Perubahan/Perbaikan/Peralihan require selecting a PP that
EXISTS in the real PROD registry. A PP you create via Pendirian in dev_4 will NOT be
in that registry. Before testing those three flows, ASK THE USER (Efran) whether to:
(a) use a real PP identifier that exists in the registry, or
(b) temporarily set PP_REGISTRY_MODE=mock so the latest COMPLETED PENDIRIAN_PP
submission becomes selectable.
Do not silently pick one.
The 4 features (one report each → docs/blackbox-testing/report/pp-<fitur>.md)
- Pendirian PP — form + Surat Pernyataan; BO (Beneficial Owner) attestation.
Real data:e2e/data/real-intake/pp/Pendirian PP/{1 BO, 2 BO}/(KTP+NPWP+surat pernyataan). - Perubahan PP — form-based, pick registry PP; docs by jenis (owner→KTP+NPWP;
transfer→Jual-Beli saham + KTP+NPWP; BO→KTP/SIM/Passport+NPWP; address→Domisili).
Synthetic: D-POS-60 jual-beli, D-POS-61 domisili; reuse real KTP/NPWP. - Perbaikan Data PP — form-based, section-based; owner→KTP+NPWP; address→Domisili;
modal→Bukti Setor (D-POS-62). NIK and company name are LOCKED (can't be corrected). - Pembubaran PP — registry-only + KTP upload; terminal self-service (no akta OCR).
Real data:e2e/data/real-intake/pp/Pembubaran PP/ktp1.jpg.
Method per feature
- Verify workflow against CODE (
routes/pp-*.ts+flow-engine/flows/pp-*.ts). - Happy path at BOTH layers (API + Playwright).
- Cover EVERY user-accessible route/button (template section 5), incl. UploadToAutofill.
- Negative cases: BO kriteria draft-mode SKIP vs submission-mode REQUIRED; NIK/NPWP
format & mismatch; wrong doc type into UploadToAutofill; PP not in registry;
finalize gate + attestation checkbox. - File bugs (severity + repro + screenshot + fix recommendation).
- Write reports in the uniform template; upload each:
curl -F "file=@<file>.md" https://x056.think.val.id/upload
Rules
- Natural Indonesian in reports; avoid AI-looking glyphs.
- Don't modify app source unless fixing a confirmed bug with user approval.
- Ignore
.DS_Storejunk files in the PP data folders. - Test writes to LOCAL dev_4 Postgres only.
Start by running the smoke commands, then begin with Pendirian PP (the one flow with
no registry dependency).