From 00-due-diligence
Looks up NYC HPD violations, complaints, and building registration for residential buildings using address, BBL, or BIN from public PLUTO and HPD datasets.
npx claudepluginhub alpacalabsllc/skills-for-architects --plugin 00-due-diligenceThis skill is limited to using the following tools:
Look up HPD (Housing Preservation & Development) violations, complaints, and building registration for NYC residential buildings. Only applies to residential building classes. No API key required.
Generates combined NYC property reports from open data: landmarks, DOB permits/violations, ACRIS records, HPD complaints/registration, BSA variances. Input address, BBL, or BIN.
Analyzes zoning envelope rules for NYC lots using PLUTO data and Zoning Resolution. Input address, BBL, or BIN to fetch zoning districts, FAR limits, lot area, and polygon geometry.
Generates regulatory response plans for commercial real estate compliance: code violations, OSHA citations, ADA audits, fire safety, environmental issues, entitlements, stakeholder communication.
Share bugs, ideas, or general feedback.
Look up HPD (Housing Preservation & Development) violations, complaints, and building registration for NYC residential buildings. Only applies to residential building classes. No API key required.
/nyc-hpd 742 Evergreen Terrace, Springfield
/nyc-hpd 3011650045 (BBL)
/nyc-hpd 3388190 (BIN)
Accept one of:
Borough codes: Manhattan=1/MN, Bronx=2/BX, Brooklyn=3/BK, Queens=4/QN, Staten Island=5/SI
Query PLUTO to get BBL, BIN, and building metadata. No API key needed.
By BBL:
https://data.cityofnewyork.us/resource/64uk-42ks.json?bbl={BBL}
By address:
https://data.cityofnewyork.us/resource/64uk-42ks.json?$where=upper(address) LIKE '%{STREET}%'&borough='{BORO_CODE}'&$limit=5
Address normalization: Uppercase, strip unit/apt suffixes. Borough names to codes: Manhattan=MN, Bronx=BX, Brooklyn=BK, Queens=QN, Staten Island=SI. If multiple results, ask the user to pick. If zero, try variations or suggest providing a BBL.
Store from PLUTO: bbl, bin (or bldgbin), address, borough, bldgclass, zonedist1, yearbuilt, ownername, numfloors, lotarea, latitude, longitude.
Parse BBL into: boro (1 digit), block (5 digits zero-padded), lot (4 digits zero-padded).
Before querying HPD, check bldgclass from PLUTO. HPD only applies to residential buildings — classes starting with A, B, C, D, R, or S.
If the building class does NOT start with one of those letters, print:
"Building class {X} — HPD records not applicable (non-residential)."
And stop. Do not query HPD APIs.
IMPORTANT: HPD uses boroid (not borough). And block/lot are separate fields — not a combined BBL.
https://data.cityofnewyork.us/resource/wvxf-dwi5.json?$where=boroid='{boro}' AND block='{block}' AND lot='{lot}'&$order=inspectiondate DESC&$limit=50
Key fields: violationid, violationclass, inspectiondate, approveddate, originalcertifybydate, novdescription
https://data.cityofnewyork.us/resource/csn4-vhvf.json?$where=boroid='{boro}' AND block='{block}' AND lot='{lot}'
Pre-filtered to currently open violations.
Note: The complaints dataset uses borough (text like "MANHATTAN", "BRONX", "BROOKLYN", "QUEENS", "STATEN ISLAND") — NOT boroid. Map boro codes: 1→MANHATTAN, 2→BRONX, 3→BROOKLYN, 4→QUEENS, 5→STATEN ISLAND.
https://data.cityofnewyork.us/resource/ygpa-z7cr.json?$where=borough='{BOROUGH_NAME}' AND block='{block}' AND lot='{lot}'&$order=received_date DESC&$limit=30
Key fields: complaint_id, received_date, complaint_status, complaint_status_date, major_category, minor_category, problem_status
https://data.cityofnewyork.us/resource/tesw-yqqr.json?$where=boroid='{boro}' AND block='{block}' AND lot='{lot}'
Key fields: registrationid, buildingid, registrationenddate, ownerfirstname, ownerlastname
## HPD — {Address}
### Registration
| Field | Value |
|-------|-------|
| Registration ID | ... |
| Owner | {ownerfirstname} {ownerlastname} |
| Registration Expiry | YYYY-MM-DD |
### ⚠ Open Violations: {count}
**Class C (Immediately Hazardous):** {count} ⚠
**Class B (Hazardous):** {count}
**Class A (Non-Hazardous):** {count}
| Violation ID | Class | Inspection Date | Description | Certify By |
|-------------|-------|-----------------|-------------|------------|
| ... | C ⚠ | YYYY-MM-DD | ... | YYYY-MM-DD |
### All Violations ({count} total, showing 50 most recent)
| Violation ID | Class | Inspection Date | Approved Date | Description |
|-------------|-------|-----------------|---------------|-------------|
### Recent Complaints ({count} total, showing 30 most recent)
| Complaint ID | Received | Category | Status | Status Date |
|-------------|----------|--------|-------------|
Source: [HPD Violations](https://data.cityofnewyork.us/Housing-Development/Housing-Maintenance-Code-Violations/wvxf-dwi5) | [HPD Complaints](https://data.cityofnewyork.us/Housing-Development/Housing-Maintenance-Code-Complaints-and-Problems/ygpa-z7cr)
If no results: "No HPD violations, complaints, or registrations found for this property."