$npx -y skills add AlpacaLabsLLC/skills-for-architects --skill nyc-property-reportCombined NYC property report — landmarks, DOB permits, violations, ACRIS records, HPD, and BSA variances in one document. Use when the user asks for a full property report, complete due diligence, or to "pull everything" on an NYC address. For a single dataset use the individual
| 1 | # /nyc-property-report — Combined NYC Property Report |
| 2 | |
| 3 | Runs all 6 NYC property data lookups and produces a combined report. For individual lookups, use the standalone skills: |
| 4 | - `/nyc-landmarks` — LPC landmark & historic district check |
| 5 | - `/nyc-dob-permits` — DOB permit & filing history |
| 6 | - `/nyc-dob-violations` — DOB & ECB violations |
| 7 | - `/nyc-acris` — ACRIS property transaction records |
| 8 | - `/nyc-hpd` — HPD violations, complaints & registration |
| 9 | - `/nyc-bsa` — BSA variances & special permits |
| 10 | |
| 11 | No API key required — all queries use NYC Open Data (Socrata) with PLUTO for address resolution. |
| 12 | |
| 13 | ## Project Dossier |
| 14 | |
| 15 | If `PROJECT.md` exists in the working directory, read it before fetching — prior lookups may already be on file. After completing, append identity facts (address, BBL, ownership), landmark status, and an open-violations summary to its **Identity** and **Zoning** sections. Update values in place (the dossier holds current state, not history), every entry with a source and date. No `PROJECT.md`? Skip silently — or mention `/project-dossier init` if the user is clearly starting a project. |
| 16 | |
| 17 | ## Usage |
| 18 | |
| 19 | ``` |
| 20 | /nyc-property-report 120 Broadway, Manhattan |
| 21 | /nyc-property-report 1000770001 (BBL) |
| 22 | /nyc-property-report 1001389 (BIN) |
| 23 | ``` |
| 24 | |
| 25 | ## Steps 1–2: Parse Input & Resolve BBL/BIN |
| 26 | |
| 27 | Read `pluto-resolution.md` (in this skill's directory) and follow it: parse the input (address, BBL, or BIN), resolve via PLUTO, and resolve BIN via Building Footprints. |
| 28 | |
| 29 | **This skill's extras:** in addition to the base PLUTO field set, store `zipcode`, `cd`, `bldgarea`, `unitstotal`, `histdist`, `numbldgs`. |
| 30 | |
| 31 | ## Step 3: Query All 6 Domains |
| 32 | |
| 33 | Query each domain in sequence. If any query fails, note the error and continue with the next domain. |
| 34 | |
| 35 | Read `socrata-reference.md` (in this skill's directory) — it is the single source of truth for every dataset ID and field name below. If a query here ever disagrees with it, the reference wins. |
| 36 | |
| 37 | ### Domain 1: Landmarks |
| 38 | |
| 39 | By BBL: `https://data.cityofnewyork.us/resource/buis-pvji.json?bbl={BBL}` |
| 40 | Fallback by block + lot (NOT zero-padded): `https://data.cityofnewyork.us/resource/buis-pvji.json?$where=block='{BLOCK}' AND lot='{LOT}' AND borough='{BOROUGH}'` |
| 41 | |
| 42 | Also check PLUTO `histdist` field — if set, property is in a historic district. |
| 43 | |
| 44 | Key fields: `lpc_name`, `lpc_lpnumb`, `desdate`, `landmarkty`, `lpc_sitede`, `lpc_sitest`, `lpc_altern`, `address`, `url_report` |
| 45 | |
| 46 | ### Domain 2: DOB Permits |
| 47 | |
| 48 | **IMPORTANT:** Legacy datasets use `bin__` (double underscore). DOB NOW uses `bin`. |
| 49 | |
| 50 | Legacy permits: `https://data.cityofnewyork.us/resource/ipu4-2q9a.json?$where=bin__='{BIN}'&$order=issuance_date DESC&$limit=30` |
| 51 | Legacy filings: `https://data.cityofnewyork.us/resource/ic3t-wcy2.json?$where=bin__='{BIN}'&$order=latest_action_date DESC&$limit=30` |
| 52 | DOB NOW permits: `https://data.cityofnewyork.us/resource/rbx6-tga4.json?$where=bin='{BIN}'&$order=approved_date DESC&$limit=30` |
| 53 | DOB NOW filings: `https://data.cityofnewyork.us/resource/w9ak-ipjd.json?$where=bin='{BIN}'&$order=filing_date DESC&$limit=30` |
| 54 | |
| 55 | Merge, sort by date DESC, group by job type (NB, A1, A2, A3, DM, Other). |
| 56 | |
| 57 | ### Domain 3: DOB Violations |
| 58 | |
| 59 | DOB violations: `https://data.cityofnewyork.us/resource/3h2n-5cm9.json?$where=bin='{BIN}'&$order=issue_date DESC&$limit=50` |
| 60 | ECB violations: `https://data.cityofnewyork.us/resource/6bgk-3dad.json?$where=bin='{BIN}'&$order=issue_date DESC&$limit=50` |
| 61 | Active violations: `https://data.cityofnewyork.us/resource/sjhj-bc8q.json?$where=bin='{BIN}'` |
| 62 | |
| 63 | Flag open violations with ⚠. Show ECB penalties. |
| 64 | |
| 65 | ### Domain 4: ACRIS |
| 66 | |
| 67 | **Requires BBL** (not BIN). Uses separate borough/block/lot fields. |
| 68 | |
| 69 | Step A — Legals: `https://data.cityofnewyork.us/resource/8h5j-fqxa.json?borough={boro}&block={block}&lot={lot}&$order=good_through_date DESC&$limit=20` |
| 70 | Step B — Master: `https://data.cityofnewyork.us/resource/bnx9-e6tj.json?$where=document_id IN ('{id1}','{id2}',...)&$order=document_date DESC` (fields: `document_date`, `document_amt`, `recorded_datetime`) |
| 71 | Step C — Parties: `https://data.cityofnewyork.us/resource/636b-3b5g.json?$where=document_id IN ('{id1}','{id2}',...)` |
| 72 | Step D — Doc codes: `https://data.cityofnewyork.us/resource/7isb-wh4c.json?$limit=200` |
| 73 | |
| 74 | Join by document_id. Party type 1=Grantor, 2=Grantee. Group by doc type (Deeds, Mortgages, Other). |
| 75 | |
| 76 | ### Domain 5: HPD |
| 77 | |
| 78 | **First check `bldgclass`** — HPD only applies to residential (classes starting with A, B, C, D, R, S). If non-residential, skip with note. |
| 79 | |
| 80 | **Uses `boroid`** (not `borough`) and separate block/lot fields. |
| 81 | |
| 82 | Violations: `https://data.cityofnewyork.us/resource/wvxf-dwi5.json?$where=boroid= |