madb-memory — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited madb-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.
<!-- MADB-MEMORY SKILL © 2026 Pushkar Singh / Meta-Agents.AI
Licensed under Creative Commons Attribution-NoDerivatives 4.0 International (CC BY-ND 4.0). You may share this Skill verbatim with attribution; you may not publish modified versions. The full license text is at https://creativecommons.org/licenses/by-nd/4.0/legalcode
The MADB software this Skill invokes is distributed under the Meta-Agents.AI Proprietary License. This Skill file is the interface contract; the software itself is not open source. -->
You have MADB connected: a local memory store that persists across sessions and records not just what happened but why (causal lineage). Without it you start each session blank. With it, you can recall what you and the user did before, build on prior decisions, and trace why something happened.
Use it as a reflex tied to the work — not on every turn, and not only when asked.
recall (before) → act → remember (after) → trace_cause (when "why?")Call recall at the start of a task when any of these is true. Do it silently; don't announce it.
we wrote", "what we decided", "last time", "continue", "the usual".
Don't recall for self-contained one-offs (a fresh factual question, a standalone calculation, a brand-new task with no past). False-positive recall — pulling irrelevant memory into context — is the main failure mode. When in doubt, a single targeted recall is cheap; a recall on every trivial turn is noise.
recall(query="<the user's actual topic, in content words>", top_k=20)Use the user's real nouns (the project name, the filename, the decision) as the query — not meta-words like "previous conversation". If recall returns nothing useful, proceed normally; don't force it.
Call remember after something happened that a future session would need to know. Write the decision and its reason, not a transcript.
Remember when:
later ("their deploy target is X", "they prefer Y").
save_skill (see below).Don't remember every message, small talk, or things trivially re-derivable. Aim for the handful of facts that change what a future session would do.
Always link causation with caused_by — this is what makes the memory a lineage and not a flat log:
remember(
content="<the decision/result and its reason, in plain words>",
caused_by=[<event_id(s) this followed from, if known>],
tags=["<project>", "<topic>"],
importance=<higher for decisions that constrain future work>
)If you recalled an event earlier in the session and this new memory follows from it, pass that event's id in caused_by. That single habit is what lets trace_cause later answer "why did we end up here?"
When the user (or you) needs to understand why a current state exists — "why did we choose this", "how did we get here", "what led to X" — walk the causal chain:
trace_cause(event_id="<the event in question>", direction="backward")This returns the chain of caused_by links back to the origin. Use it to explain a decision's history, debug a wrong turn (find the upstream decision that caused it), or summarize how a project reached its current shape.
When you work out a repeatable how-to (a build sequence, a debugging routine, a project-specific convention), persist it so a future session can reuse it:
save_skill(name="<short-name>", description="<when to use it>", content="<the steps>")Recall skills when starting work that might have an established procedure:
recall_skill(query="<the kind of task>")recall doesn't just keyword-match. It ranks by a composite of: semantic similarity, recency, causal proximity (how close in the lineage), importance, and tag overlap. That's why linking caused_by and setting importance on real decisions pays off — it makes the right memories surface later, not just the most recent ones.
store. It is durable across sessions; it is not a shared, networked, or multi-agent system, and it does not enforce policy or isolation. Treat it as your durable notebook with causal links, nothing more.
local disk.
helps the user ("I remembered we decided X last time") — not as narration of every tool call.
# Session 1 — user designs a deploy approach
remember(content="Deploy target is Fly.io, chosen over Render for cheaper persistent
volumes. Build via Dockerfile, not buildpacks.",
tags=["deploy","infra"], importance=0.9)
→ returns event_id A
# Session 2 (days later) — user: "let's add the staging environment"
recall(query="deploy staging fly.io infra")
→ returns event A (the Fly.io decision)
# you now build staging consistent with the prior decision, and:
remember(content="Added staging app on Fly.io mirroring prod Dockerfile build.",
caused_by=[A], tags=["deploy","infra","staging"], importance=0.7)
# Later — user: "why are we on Fly and not Render again?"
trace_cause(event_id=<staging event>, direction="backward")
→ walks back to event A and its reasoningThat's the whole feature: remember why, recall it when it matters, prove the chain.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.