← ClaudeAtlas

swmm-builderlisted

Assemble a runnable SWMM INP deterministically from subcatchment geometry/attributes, merged parameter JSON, network JSON, and climate references. Use when creating auditable INP + manifest artifacts for downstream swmm-runner/calibration.
Zhonghao1995/agentic-swmm-workflow · ★ 8 · AI & Automation · score 71
Install: claude install-skill Zhonghao1995/agentic-swmm-workflow
# SWMM Builder (INP assembly layer) ## Contract Build a runnable SWMM `.inp` using explicit file inputs: - `subcatchments.csv` (shape/area/outlet/routing basics) - merged params JSON from `swmm-params` - network JSON from `swmm-network` - rainfall/time-series references from `swmm-climate` - optional options config JSON The builder writes: - final SWMM INP text (`--out-inp`) - manifest JSON (`--out-manifest`) with source paths + SHA256 + key metadata - strict validation diagnostics for critical sections (`[OPTIONS]`, `[RAINGAGES]`, `[TIMESERIES]`, `[SUBCATCHMENTS]`, `[SUBAREAS]`, `[INFILTRATION]`, and current network sections) ## Inputs ### Subcatchments CSV schema (required) Required columns: - `subcatchment_id` - `outlet` - `area_ha` - `width_m` - `slope_pct` Optional columns: - `rain_gage` (falls back to default gage from climate/config) - `curb_length_m` (default `0`) - `snow_pack` (default blank) ### Params JSON (required) Expected to match `skills/swmm-params/scripts/merge_swmm_params.py` output: - `sections.subcatchments` (`id`, `pct_imperv`) - `sections.subareas` (`id`, runoff/subarea fields) - `sections.infiltration` (`id`, Green-Ampt fields) - Required fields are now validated strictly with type/range checks (for example `%Imperv` and routing percentages must be `0..100`). ### Network JSON (required) Expected to match `skills/swmm-network` schema (`junctions`, `outfalls`, `conduits`, etc.). Builder now validates required network fields used to emit `[JUNCTIONS