skill-author
Draft a well-formed new skill (a SKILL.md scaffold, optionally with scripts/references) from a described recurring need, for human review and approval. Use…
Calibration and validation scaffold for EPA SWMM. Use when an agent needs to (1) compare simulated vs observed flow, (2) evaluate candidate parameter sets, (3) rank explicit candidates by an objective, (4) run a bounded random / LHS / adaptive search for the best-fitting
$ npx -y skills add Zhonghao1995/agentic-swmm-workflow --skill swmm-calibration --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/swmm-calibrationContext preview
The summary Claude sees to decide when to auto-load this skill.
Calibration and validation scaffold for EPA SWMM. Use when an agent needs to (1) compare simulated vs observed flow, (2) evaluate candidate parameter sets, (3) rank explicit candidates by an objective, (4) run a bounded random / LHS / adaptive search for the best-fitting
name: swmm-calibration description: Calibration and validation scaffold for EPA SWMM. Use when an agent needs to (1) compare simulated vs observed flow, (2) evaluate candidate parameter sets, (3) rank explicit candidates by an objective, (4) run a bounded random / LHS / adaptive search for the best-fitting parameters, (5) run a publication-grade SCE-UA calibration with KGE as the primary objective and (r, alpha, beta) decomposition reported, or (6) run a DREAM-ZS Bayesian calibration producing a posterior over parameters with Gelman-Rubin convergence checks. Dedicated sensitivity-analysis methods (OAT, Morris, Sobol') now live on the `swmm-uncertainty` skill.
Part of [Agentic SWMM](https://github.com/Zhonghao1995/agentic-swmm-workflow) — install the project first for the executable toolchain (aiswmm CLI, SWMM solver, MCP servers).
Since ADR-0005 the top-level verb drives this skill's SCE-UA engine directly:
aiswmm calibrate --inp model.inp --observed-csv observed.csv \ --patch-map examples/calibration/patch_map.json \ --run-id calib_001 --total-iters 200 \ --param pct_imperv_s1=20,70 --run-dir runs/agent/calib_001 --progress
Contract highlights:
attribute selected by `--node`/`--attr`. There is no conversion layer; a greater-than-100x median magnitude mismatch between the best trial and the observed series triggers a loud `UNITS MISMATCH` warning (stderr + summary) to catch L/s vs m3/s style errors.
name must exist in the `--patch-map` file (the sole parameter-definition contract). Unknown names fail fast and list what IS available.
`calibration_summary.json` (`engine: sceua-spotpy`, `is_stub: false`), `best_params.json`, `09_audit/` candidate artifacts, `trials/sceua_NNNN/` working evaluations. Trials are engine working area; only the candidate in `09_audit/` is audit-grade and feeds `aiswmm calibration accept`.
`--engine synthetic` (still stamped `is_stub: true`) for dry runs.
`calibrate_dream_zs` agent tool or this skill's script directly.
| Strategy | When to use | Cost | Reports | |--------------|----------------------------------------------------------------------------|------------|---------| | `random` | First-pass prototyping, smoke-testing the patch map | Very low | Ranking table | | `lhs` | Quick coverage of a small search space | Very low | Ranking table | | `adaptive` | LHS with multi-round refinement around elite trials | Low | Ranking table per round | | **`sceua`** | **Publication-grade point-estimate calibration on a fixed search space** | **Medium** | **`calibration_summary.json` with KGE primary + decomposition + secondary metrics + `convergence.csv`** | | **`dream-zs`** | **Bayesian posterior calibration with Gelman-Rubin convergence checks** | **High** | **`calibration_summary.json` + `posterior_samples.csv` + `chain_convergence.json` + per-parameter marginal PNGs + correlation PNG** |
`mcp/swmm-calibration/server.js` exposes six tools, all thin wrappers around `scripts/swmm_calib
Pre-1.0 · stable v0.9.4 · pip install aiswmm==0.9.4 · CHANGELOG Headaches from tedious model setup? Try our another project SWMMCanada, our automated model-building project: draw an area anywhere in Canada and get a ready-to-run SWMM model. Up and running now.
Repo: Zhonghao1995/agentic-swmm-workflow
Draft a well-formed new skill (a SKILL.md scaffold, optionally with scripts/references) from a described recurring need, for human review and approval. Use…
Synthesize a plausible SWMM drainage network from public data (OSM streets + DEM) when NO real pipe-network data exists — input is just a bbox. Use ONLY when…
Assemble a runnable SWMM INP deterministically from subcatchment geometry/attributes, merged parameter JSON, network JSON, and climate references. Use when…
Fetch a ready-to-run SWMM model for any Canadian area from the SWMMCanada upstream service — real published municipal storm pipes where a supported city covers…
Deterministic rainfall/climate formatting for SWMM. Use when converting timestamped rainfall CSV files into SWMM-ready [TIMESERIES] lines and [RAINGAGES]…
Score a completed SWMM run against a configurable YAML rulebook of design checks — GB50014-style standards for real catchments, or the reference-free…