Turn unstructured real estate documents into typed, verifiable data. Classifies uploads (utility bill, energy audit, lease, PCA, drawing, regulatory filing), extracts structured fields per document type, digitizes charts/graphs/tables from PDFs into JSON, writes results to the asset record, and RAG-indexes every document so it stays searchable. Triggers on: "extract from this bill", "parse this audit", "what does the lease say about", "pull the data out of this PCA", "digitize this chart/table", "process these documents", "batch ingest", any document upload that should become structured data.
How this skill is triggered — by the user, by Claude, or both
Slash command
/document-intelligence:document-intelligenceThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
One pipeline for every document that enters a portfolio: **classify → extract → write →
One pipeline for every document that enters a portfolio: classify → extract → write → index. The goal is typed data with provenance, not prose summaries.
Read the document (you have native PDF/image vision). Emit:
{ type, confidence, language, pages, scanned: bool }
Types: utility_bill | energy_audit | lease | pca | architectural_drawing | regulatory_filing | om | rent_roll | other. If confidence < 0.8, say what it looks like
and ask rather than guessing. Multi-document PDFs (e.g. a year of bills in one file):
split logically and process each.
Use the schema for the detected type in references/extraction-schemas.md. Rules:
{ value, unit, page, verbatim_source_text } — the page
reference is what makes downstream verification possible.null + listed in gaps.low_confidence, never
reconstruct illegible numbers.pdf-chart-parser MCP tools (parse_pdf_charts,
parse_pdf_tables, extract_specific_chart) to digitize visual data — chart-heavy
exhibits (OM comps, audit baseline graphs, rent-roll tables) go through it rather than
eyeballing pixel values. If the MCP is unavailable, extract only clearly labeled data
points and flag the rest.Attach extracted data to the right asset: update asset fields where the platform schema
has a home for them (e.g. utility consumption, audit EUI baseline), and save the full
extraction JSON alongside the source document in the asset's files. Name the extraction
file <source-doc>.extracted.json. If the asset is ambiguous, ask — never attach data to
a guessed asset.
Ensure the source document is RAG-indexed (platform uploads index automatically; for out-of-band files, upload via the Files API so indexing triggers). The extraction JSON rides along so semantic search can find both the document and its structured data.
For a folder/drop of many documents: classify all first, present a one-line-per-file
manifest (file → type → target asset) for confirmation, then extract in order,
finishing with a summary table: processed / failed / fields written / gaps. Never
silently skip a failed file — list each with the reason.
npx claudepluginhub soapboxbuild/soapbox-document-intelligenceGuides collaborative design exploration before implementation: explores context, asks clarifying questions, proposes approaches, and writes a design doc for user approval.
Creates structured, bite-sized implementation plans from specs or requirements before writing code. Useful for breaking down multi-step tasks into testable steps with file structure and task boundaries.
Guides reception of code review feedback: verify before implementing, avoid performative agreement, push back with technical reasoning when needed.