--- name: nyc-dob-permits description: Look up NYC DOB permits and new-building, alteration, or demolition job filings. Use for filed or permitted work and renovation history; use nyc-dob-violations for violations. allowed-tools: - WebFetch - Write - Read - Bash --- # /as:nyc-dob-permits — DOB Permit & Filing History Look up all DOB permits and job filings for any NYC building across both Legacy BIS and DOB NOW systems. No API key required. ## Usage ``` /as:nyc-dob-permits 120 Broadway, Manhattan /as:nyc-dob-permits 1000770001 (BBL) /as:nyc-dob-permits 1001389 (BIN) ``` ## Steps 1–2: Parse Input & Resolve BBL/BIN Read `../nyc-property-report/pluto-resolution.md` (shared by all 7 NYC due-diligence skills) and follow it: parse the input (address, BBL, or BIN), resolve via PLUTO, and resolve BIN via Building Footprints — **BIN is required** for every query in Step 3. ## Step 3: Query DOB Permits & Filings Dataset IDs and field names are canonical in `../nyc-property-report/socrata-reference.md` — on any disagreement, the reference wins. Query all 4 datasets using BIN. **IMPORTANT:** Legacy datasets use `bin__` (double underscore). DOB NOW datasets use `bin`. ### Legacy Permit Issuance ``` https://data.cityofnewyork.us/resource/ipu4-2q9a.json?$where=bin__='{BIN}'&$order=issuance_date DESC&$limit=30 ``` Key fields: `permit_si_no`, `job__`, `job_type`, `issuance_date`, `expiration_date`, `permittee_s_first_name`, `permittee_s_last_name`, `owner_s_first_name`, `owner_s_last_name` ### Legacy Job Filings ``` https://data.cityofnewyork.us/resource/ic3t-wcy2.json?$where=bin__='{BIN}'&$order=latest_action_date DESC&$limit=30 ``` Key fields: `job__`, `doc__`, `job_type`, `job_status`, `latest_action_date`, `applicant_s_first_name`, `applicant_s_last_name` ### DOB NOW Approved Permits ``` https://data.cityofnewyork.us/resource/rbx6-tga4.json?$where=bin='{BIN}'&$order=approved_date DESC&$limit=30 ``` Key fields: `job_filing_number`, `work_permit`, `permit_status`, `work_type`, `approved_date`, `issued_date`, `expired_date` (this dataset has NO `filing_date` or `job_type` — use `approved_date` / `work_type`) ### DOB NOW Job Filings ``` https://data.cityofnewyork.us/resource/w9ak-ipjd.json?$where=bin='{BIN}'&$order=filing_date DESC&$limit=30 ``` Key fields: `job_filing_number`, `filing_status`, `filing_date`, `job_type` ## Step 4: Print Results Merge all results, sort by date descending. Group by job type: - **NB** = New Building - **A1** = Alteration Type 1 (major — changes use/egress/occupancy) - **A2** = Alteration Type 2 (multiple work types) - **A3** = Alteration Type 3 (minor, one work type) - **DM** = Demolition - **Other** = Everything else ```markdown ## DOB Permits & Filings — {Address} **Total found:** {count} ({x} legacy, {y} DOB NOW) ### New Building (NB) | Date | Job # | Permit # | Status | Applicant | |------|-------|----------|--------|-----------| | ... | ... | ... | ... | ... | ### Alteration Type 1 (A1) | Date | Job # | Permit # | Work Type | Status | Applicant | |------|-------|----------|-----------|--------|-----------| ### Alteration Type 2-3 (A2/A3) {table} ### Demolition (DM) {table if any} ### Other {table if any} **Note:** Pre-BIS records (before ~1989) are not digitized. If this building predates 1989 and few records appear, earlier permits exist only on paper. Source: [DOB Permit Issuance](https://data.cityofnewyork.us/Housing-Development/DOB-Permit-Issuance/ipu4-2q9a) | [DOB Job Filings](https://data.cityofnewyork.us/Housing-Development/DOB-Job-Application-Filings/ic3t-wcy2) | [DOB NOW Permits](https://data.cityofnewyork.us/Housing-Development/DOB-NOW-Build-Approved-Permits/rbx6-tga4) | [DOB NOW Filings](https://data.cityofnewyork.us/Housing-Development/DOB-NOW-Build-Job-Application-Filings/w9ak-ipjd) ``` If no results from any dataset: "No DOB permits or filings found for this property." ### Conventions - All dates: YYYY-MM-DD - If Socrata returns empty array: "No results found" - If HTTP error: note it and suggest checking the address - If the user requests, write results to a file - Check PLUTO `yearbuilt` — if before 1989, add the pre-BIS note ## Final Step: Disclaimer + Marker (required) This skill produces regulatory output. End every report this skill produces — printed in chat or saved to a file — with the canonical disclaimer block from `rules/professional-disclaimer.md`, followed by one blank line and the machine-readable marker, exactly as shown: ```markdown > **Disclaimer:** This is an AI-generated analysis for preliminary planning purposes. All findings must be verified by a licensed professional before use in design, permitting, or regulatory submissions. ``` The marker is a single end-of-file sentinel — it appears exactly once, as the last line of the report. The `post-write-disclaimer-check` hook parses saved `.md` reports for the marker and blocks the write if the canonical disclaimer block is missing.