Expected Inputs
context/staging/structure.json containing the user's location string.
Core Operations
- Load localized logic (e.g. BC Building Code tables for coastal vs interior snow loads).
- Look up baseline assumptions required for safe structural span sizes.
- Output the required psf limits to
context/staging/building-code.jsonso the structural-engine can read it.
Gotchas
- Snow load is city-level, not province-level. BC coastal (Richmond) = 24 psf; BC interior (Kelowna) = 48+ psf. Using the provincial average produces a structurally under-designed system. Always look up the specific municipality.
- Permit threshold is NOT in scope. This skill outputs design loads only. Whether the project requires a building permit (e.g. > 10 m² in BC triggers permit) is a separate determination — do not include permit guidance in building-code.json or this skill will be conflated with legal advice.
- Unknown jurisdiction must be flagged, not silently defaulted. If jurisdiction cannot be resolved, output
"jurisdiction_resolved": falseand a"jurisdiction_warning"field. Never silently fall back to a generic load without indicating the assumption. - Wind loads compound with snow loads. High-wind coastal zones may have lower snow but higher uplift requirements. Ensure both snow and wind load fields are populated in building-code.json.
Smoke Test
- Interior BC lookup: Given
structure.jsonwithjurisdiction=BC-Interior(Kelowna): outputsbuilding-code.jsonwithsnow_load_psf ≥ 40,jurisdiction_resolved: true. ✓ - Coastal BC lookup: Given
jurisdiction=BC-Coastal(Richmond): outputssnow_load_psf ≤ 25. ✓ - Unknown jurisdiction: Given
jurisdiction=Unknowninstructure.json: outputsbuilding-code.jsonwithjurisdiction_resolved: falseand a non-emptyjurisdiction_warning. ✓