swmm-rag-memory — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited swmm-rag-memory (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
failure_advice.{json,md} for failed or warning runs, without modifying model files.resolution_memory.json for human-reviewed and benchmark-verified repairs.This skill reads existing audit and modeling-memory artifacts. It does not run SWMM, modify model inputs, rewrite skills, or claim that retrieved memory proves a modeling conclusion.
swmm-modeling-memoryswmm-modeling-memory summarizes audited runs after experiments have been recorded.
swmm-rag-memory retrieves the most relevant historical memory for a current question.
The intended loop is:
swmm-modeling-memory.swmm-rag-memory.The corpus builder writes these files to the selected RAG-memory output directory:
corpus.jsonlkeyword_index.jsonembedding_index.jsonThe retriever writes JSON results by default and can also write a Markdown context pack. Failure advice writes failure_advice.json and failure_advice.md into the run directory. Verified repairs can be recorded as resolution_memory.json.
Build a corpus from existing memory and audited runs:
python3 skills/swmm-rag-memory/scripts/build_memory_corpus.py \
--memory-dir memory/modeling-memory \
--runs-dir runs \
--out-dir memory/rag-memoryRetrieve relevant memory:
python3 skills/swmm-rag-memory/scripts/retrieve_memory.py \
--query "peak flow parsing is missing" \
--memory-dir memory/modeling-memory \
--runs-dir runs \
--top-k 5Hybrid retrieval:
python3 skills/swmm-rag-memory/scripts/retrieve_memory.py \
--query "peak flow was not parsed from the report" \
--index-dir memory/rag-memory \
--retriever hybrid \
--top-k 5Generate an LLM-ready context pack:
python3 skills/swmm-rag-memory/scripts/answer_with_memory.py \
--query "Why does high continuity error keep recurring?" \
--memory-dir memory/modeling-memory \
--runs-dir runs \
--retriever hybrid \
--top-k 6 \
--format markdownOptional Obsidian export:
python3 skills/swmm-rag-memory/scripts/answer_with_memory.py \
--query "How should I investigate missing peak-flow parsing?" \
--memory-dir memory/modeling-memory \
--runs-dir runs \
--obsidian-dir "$HOME/Documents/Agentic-SWMM-Obsidian-Vault/10_Memory_Layer/RAG Queries"Generate advice after a failed, partial, or warning run:
python3 skills/swmm-rag-memory/scripts/generate_failure_advice.py \
--run-dir runs/<case> \
--index-dir memory/rag-memory \
--retriever hybridRecord a repair only after review and verification:
python3 skills/swmm-rag-memory/scripts/record_resolution_memory.py \
--run-dir runs/<case> \
--action-taken "Updated runner parser to read Node Inflow Summary." \
--file-changed skills/swmm-runner/scripts/run_swmm.py \
--verification "python3 -m pytest tests/test_swmm_runner_peak_parser.py" \
--human-reviewed \
--benchmark-verifiedOne-command post-audit refresh:
python3 skills/swmm-rag-memory/scripts/refresh_after_run.py \
--run-dir runs/<case> \
--runs-dir runs \
--memory-dir memory/modeling-memory \
--rag-dir memory/rag-memoryThis rebuilds the RAG corpus, generates failure advice only if trigger conditions are met, and rebuilds the corpus again if advice was written. It does not regenerate curated memory/modeling-memory outputs unless --refresh-modeling-memory is provided.
runs/, memory/modeling-memory/, or existing SKILL.md files.failure_advice.md as accepted knowledge. It is only retrieval-grounded advice.resolution_memory.json as reusable repair memory only when human_reviewed=true and benchmark_verified=true.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.