Install
openclaw skills install @okzapradhana/property-developer-researchResearch Indonesian property projects and developers using Webwright/browser evidence. Use when the user asks to investigate a property, housing cluster, developer legality, official website, Sikumbang, Sireng, or generate a buyer due-diligence report from a property/developer name.
openclaw skills install @okzapradhana/property-developer-researchUse this skill to investigate an Indonesian housing/property project and developer with screenshot-backed evidence. Default sources for now:
https://sikumbang.tapera.go.id)https://sireng.pkp.go.id)https://gis.bnpb.go.id/server/rest/services/inarisk/layer_risiko_banjir/ImageServer)Use the Webwright workflow: create a task workspace, write plan.md, drive Playwright, save screenshots/logs under final_runs/run_<id>/, verify evidence, then summarize or generate PDF/ZIP if asked.
Before starting, verify required tools are available:
python3 --version
node --version
npm --version
npx playwright --version
If Playwright or Chromium is missing, install it before browsing:
npm install -g playwright
npx playwright install chromium
For Python helpers/report generation, install missing packages as needed:
python3 -m pip install --user requests beautifulsoup4 lxml pillow reportlab weasyprint pypdf
Optional but useful for polished outputs: zip, pandoc, and ffmpeg. If unavailable, proceed with HTML/PDF generated from Python and clearly note any skipped artifact.
If the webwright skill is installed, follow it for browser automation and screenshot verification. If it is not installed, use direct Playwright scripts and preserve the same evidence/log folder structure described below.
Ask only if missing and not inferable:
property_name — e.g. Clarity Housedeveloper_name — e.g. Easton Urban Kapital / PT Easton Urban Kapitalsummary, PDF, evidence ZIP)If user gives only one of property/developer, proceed with web search to infer candidates, but label inferred values clearly.
Use:
outputs/property_research_<slug>/
├── plan.md
├── final_script.py
└── final_runs/run_<id>/
├── final_script.py
├── final_script_log.txt
├── screenshots/
├── data/
├── report.pdf # default for Telegram/group-chat reports unless chat-only requested
├── flood_map.png # if InaRISK checked
└── evidence.zip # if requested
slug should combine normalized property + developer when available.
plan.mdAlways include these unless explicitly out of scope:
Nama Perumahan.Nama Pengembang for the developer.final_runs/run_<id>/.Preferred path:
"<property_name>" "<developer_name>" official and exact property/developer terms.Extraction targets:
Do not quote marketplace prices as official. If price is only on marketplace, label it as third-party listing data.
For location-based risk, prefer Google Maps place coordinates over broad listing coordinates or address geocoding.
Coordinate extraction priority:
Extraction rules:
@<lat>,<lon>,<zoom>, !3d<lat>!4d<lon>, q=<lat>,<lon>, or ll=<lat>,<lon>.lat, lon, coordinate source, Google Maps URL, place title, and confidence (exact place, entrance/POI, address-level, fallback).InaRISK flood lookup:
https://gis.bnpb.go.id/server/rest/services/inarisk/layer_risiko_banjir/ImageServer0–1. Report classes: Low < 0.333, Medium 0.333–0.666, High >= 0.666.NoData. If so, do not stop; use nearby valid samples and report exact pixel as NoData plus ring average/max and high-risk sample share.Base endpoint often works for structured lookup:
https://sikumbang.tapera.go.id/ajax/lokasi/search
Parameters:
keyword=<query>
selectedSearch=data-lokasi
skalaPerumahan=semua
sort=terbaru
searchBy=nama-perumahan | nama-pengembang
page=1
limit=50
Required searches:
searchBy=nama-perumahan, keyword=<property_name>.searchBy=nama-pengembang, keyword=<developer_name> and common variants with/without PT.If exact property search returns 0, run fallback fan-out in parallel:
Deduplicate by idLokasi. Rank candidates using phrase similarity + token overlap. Report:
idLokasinamaPerumahanFor detail/siteplan pages, capture screenshots when candidate is strong enough or when user asks for deeper extraction.
Use official site:
https://sireng.pkp.go.id
Search exact developer name and variants:
PTPTCapture:
/certificate/...) when presentExtract:
SRG-...)AKTIF/other)If multiple rows exist, do not collapse them. List each row and explain that the buyer must confirm which legal entity/NPWP/signatory is used for the transaction.
Default to generating a PDF report for Telegram/group-chat property research unless the user explicitly asks for chat summary only. If time is tight, create a concise PDF from the verified findings and include references/evidence file paths; do not leave the result as chat-only.
For a PDF or final written report, use this order:
Risk heuristics:
Always say this is public-source due diligence, not a substitute for AHU, OSS/NIB, NPWP, land certificate/BPN, PBG/SLF, PPJB/AJB review, or notary/PPAT verification.
When delivering artifacts to Telegram, send:
Keep the chat summary short; details belong in the PDF/evidence pack.