AgentSkillsCN

Assess Building Permit

评估建筑许可证

SKILL.md

Skill: Assess Building Permit Application

Domain

infrastructure

Description

Evaluates building permit applications against zoning codes, building codes, and municipal requirements to determine approval status and required modifications.

Tags

infrastructure, construction, building-codes, zoning, permit-review

Use Cases

  • Permit application pre-screening
  • Zoning compliance verification
  • Building code review
  • Variance identification

Proprietary Business Rules

Rule 1: Zoning District Compliance

Building use, height, and density must comply with zoning district regulations.

Rule 2: Setback Requirements

Structure placement must meet front, side, and rear setback minimums.

Rule 3: Floor Area Ratio (FAR)

Total floor area cannot exceed FAR limits for the zoning district.

Rule 4: Parking Requirements

Off-street parking must meet minimums based on use type and square footage.

Input Parameters

  • permit_id (string): Permit application identifier
  • parcel_id (string): Property parcel number
  • zoning_district (string): Zoning classification
  • project_type (string): New construction, addition, renovation
  • proposed_use (string): Building use classification
  • building_specs (dict): Height, stories, square footage
  • setbacks (dict): Proposed setbacks from property lines
  • parking_spaces (int): Proposed parking spaces

Output

  • permit_status (string): Approved, denied, conditional
  • compliance_score (float): Overall compliance percentage
  • violations (list): Code violations found
  • variances_needed (list): Required variance applications
  • conditions (list): Approval conditions

Implementation

The permit review logic is implemented in permit_reviewer.py and references codes from CSV files:

  • zoning_districts.csv - Reference data
  • parking_requirements.csv - Reference data
  • ada_requirements.csv - Reference data
  • fire_code.csv - Reference data
  • parameters.csv - Reference data.

Usage Example

python
from permit_reviewer import assess_permit

result = assess_permit(
    permit_id="BP-2024-001",
    parcel_id="123-456-789",
    zoning_district="C-2",
    project_type="new_construction",
    proposed_use="retail",
    building_specs={"height_ft": 45, "stories": 3, "sqft": 15000},
    setbacks={"front": 20, "side": 10, "rear": 15},
    parking_spaces=45
)

print(f"Status: {result['permit_status']}")

Test Execution

python
from permit_reviewer import assess_permit

result = assess_permit(
    permit_id=input_data.get('permit_id'),
    parcel_id=input_data.get('parcel_id'),
    zoning_district=input_data.get('zoning_district'),
    project_type=input_data.get('project_type'),
    proposed_use=input_data.get('proposed_use'),
    building_specs=input_data.get('building_specs', {}),
    setbacks=input_data.get('setbacks', {}),
    parking_spaces=input_data.get('parking_spaces', 0)
)