Install
openclaw skills install @zhonghao1995/swmm-modeling-memoryRead historical Agentic SWMM experiment audit artifacts and summarize repeated assumptions, QA issues, failures, missing evidence, run-to-run differences, lessons learned, and controlled skill update proposals. Use downstream of swmm-experiment-audit when multiple audited runs exist or when a user asks for modeling memory, failure-pattern extraction, lessons learned, or human-reviewed skill refinement proposals.
openclaw skills install @zhonghao1995/swmm-modeling-memoryPart of Agentic SWMM — install the project first for the executable toolchain (aiswmm CLI, SWMM solver, MCP servers).
memory_summary.json cards that compress audit artifacts into reusable next-run context.model_diagnostics.json is present.This skill does not run SWMM, build SWMM models, modify existing skills, or claim autonomous self-improvement.
Agentic SWMM is not only an automation workflow. It is a memory-informed, verification-first modeling system that can learn from audited modeling history through controlled skill refinement.
Use this skill after swmm-experiment-audit has produced run-level artifacts such as:
experiment_provenance.jsoncomparison.jsonexperiment_note.mdmodel_diagnostics.json when availableUse it when:
The proposals may point to relevant workflow skills such as end-to-end orchestration, audit reporting, QA verification, model building, or result parsing. They are not accepted changes.
The script writes these files to the selected modeling-memory output directory:
modeling_memory_index.jsonmodeling_memory_index.mdrun_memory_summaries.jsonproject_memory_index.mdprojects/<project-key>/project_memory.jsonprojects/<project-key>/project_memory.mdlessons_learned.mdskill_update_proposals.mdbenchmark_verification_plan.mdThe script also writes memory_summary.json beside each audited run by default. The JSON index and run summaries are the machine-readable source. The Markdown files are human-readable and can be copied to Obsidian with --obsidian-dir.
python3 skills/swmm-modeling-memory/scripts/summarize_memory.py \
--runs-dir runs \
--out-dir memory/modeling-memory
To refresh only the aggregate output without writing run-level cards (only
available via direct script invocation — aiswmm memory does not expose
this flag):
python3 skills/swmm-modeling-memory/scripts/summarize_memory.py \
--runs-dir runs \
--out-dir memory/modeling-memory \
--no-run-summaries
With optional Obsidian export:
python3 skills/swmm-modeling-memory/scripts/summarize_memory.py \
--runs-dir runs \
--out-dir memory/modeling-memory \
--obsidian-dir "/path/to/Obsidian/Agentic SWMM/05_Modeling_Memory"
SKILL.md files.--out-dir, audited run directories under --runs-dir, or the optional --obsidian-dir.aiswmm audit fires an auto-trigger after every successful audit that calls
summarize_memory.py in the background to refresh lessons_learned.md and
(unless --no-rag is given) rebuild the RAG corpus. This means
lessons_learned.md can be written by two paths:
agentic_swmm/memory/audit_hook.py via the M2 hook
after aiswmm audit succeeds.aiswmm memory --runs-dir runs or direct
python3 skills/swmm-modeling-memory/scripts/summarize_memory.py.Set AISWMM_SKIP_MEMORY=1 in the environment to suppress the auto-trigger
(useful for CI or benchmark runs where memory mutation is unwanted). Pass
--no-memory to aiswmm audit for the same effect on a single run.
The auto-trigger uses add_negative_lesson / NegativeLessonMd.update from
agentic_swmm/memory/negative_lessons_markdown.py, which increments
evidence_count and updates last_seen_utc on duplicate lesson names rather
than clobbering the existing entry. Manual summarize_memory.py runs use the
same merge logic.
swmm-experiment-auditswmm-experiment-audit records evidence for one run.
swmm-modeling-memory reads many audited runs and turns repeated evidence patterns into reusable project memory.
The intended controlled loop is:
aiswmm audit); the M2 hook refreshes lessons_learned.md automatically.aiswmm memory call when a full refresh is needed).