What problem does it solve? Running the MARRMoT toolbox (47 conceptual rainfall-runoff model structures in MATLAB/Octave) from an agent workflow is error-prone: forcing data arrives in inconsistent units (mm/3h, kg/m2/s, Kelvin), PET must be pre-computed externally, and silent unit or column-order mistakes produce plausible-looking but wrong streamflow. This Skill encodes the full operational pipeline, unit-trap table, and diagnostic triplets so simulations, calibration, and validation execute correctly against the real model binary. ## Core Features & Use Cases - End-to-end pipeline tools: convert_forcing.py builds the [P, Ep, T] climate array in mm/d and deg C, convert_parameters.py maps soil/land data to parameter vectors, run_marrmot.py executes any of the 47 structures via Octave (with CMA-ES or Monte-Carlo calibration), and parse_output.py extracts Q, Ea, and storage to CSV with NSE/KGE/PBIAS metrics. - Diagnostic recovery: 20 symptom-to-diagnosis-to-remedy triplets in diagnostics/triplets.yaml cover silent unit conversions, solver non-convergence, S0 length mismatches, and water-balance issues, with a preflight_check.py that verifies the Octave binary, source tree, and data before any run. - Use Case: Calibrate GR4J (m_07_gr4j_4p_2s) on daily CMFD forcing for a catchment, then validate simulated streamflow against observed discharge converted from m3/s to mm/d, reporting NSE and PBIAS against cited Moriasi convention bands. ## Quick Start Run python preflight_check.py in this directory, then ask the agent to convert your forcing CSV with tools/convert_forcing.py and execute a GR4J run via tools/run_marrmot.py, scoring the output with tools/parse_output.py against your observed streamflow.