slm-remember-31402d — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited slm-remember-31402d (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.
Store atomic, durable facts into SuperLocalMemory for retrieval in future sessions. One fact per call. Recall before you remember.
Store:
Do not store:
Before calling remember, always call recall first with the core terms of what you are about to store. If a near-duplicate exists:
update_memory(fact_id, content) to refine the existing fact insteadof creating a new one.
remember when no sufficiently similar fact is found.Duplicates degrade retrieval quality for every future session.
recall(query="JWT token expiry auth", limit=5, session_id="<sid>")If a near-duplicate is returned:
update_memory(
fact_id="f8a2bc91",
content="JWT tokens use 1h expiry for API access tokens; refresh tokens 30d (updated 2026-06-16)",
)update_memory returns {"success": true, "fact_id": "f8a2bc91", "content": "..."}.
remember(
content="Decided to use JWT with 1h expiry for API auth; refresh tokens persist 30 days",
tags="auth,security,decision",
project="superlocalmemory",
importance=8,
session_id="<sid>",
)Real response shape:
{
"success": true,
"fact_ids": ["c9d4e112"],
"count": 1,
"pending": false,
"message": "Stored (recallable now; enriching async)."
}When pending: true, the daemon was offline at save time; the fact enters a pending queue and becomes recallable once the daemon is back. Do not re-save.
Never claim "saved" unless `success: true` is in the response.
remember(
content: str, # required — the atomic fact to store
tags: str = "", # comma-separated tags, e.g. "auth,security,gotcha"
project: str = "", # project scope, e.g. "superlocalmemory"
importance: int = 5,# 1–10; see scale below
session_id: str = "",# from session_init; attributes the write to this session
scope: str = None, # v3.6.15 multi-scope: "personal" (default) | "shared" | "global"
shared_with: str = "",# comma-separated profile_ids for scope="shared"
)Multi-scope (v3.6.15, opt-in): leavescopeunset forpersonal(private to this profile — the default, identical to 3.6.14)."global"is visible to every profile on the machine;"shared"is visible to the profiles inshared_with. See docs/shared-memory.md.
importance scale:
Use 7–10 only for facts that would cause real damage if forgotten.
Store one atomic fact per remember call. Do not concatenate multiple unrelated points into a single content string — they will be hard to update individually and harder to retrieve cleanly. If you have three separate decisions, make three calls.
Untagged, unscoped facts are harder to retrieve and harder to manage. Minimum: set tags to one or two relevant terms and project to the repo/product name.
For deletion, the CLI is the authoritative surface. The MCP forget tool in v3.6.14 runs an Ebbinghaus decay cycle — it does NOT delete by query. For targeted deletion, use the CLI:
# Preview what would be deleted (always do this first)
slm forget "<query>" --dry-run [--json]
# Execute deletion after confirming the preview
slm forget "<query>" --yes [--json]
# Delete a specific fact by exact ID (use when you have the fact_id)
slm delete <fact_id> --yes [--json]Flags verified in source (main.py):
slm forget: positional query, --dry-run, --yes / -y, --jsonslm delete: positional fact_id, --yes / -y, --jsonAlways run --dry-run first and review the preview before passing --yes.
# Store a fact
slm remember "<content>" [--tags a,b,c] [--json]
# Store a shared/global fact (v3.6.15, opt-in)
slm remember "<content>" --scope global
slm remember "<content>" --scope shared --shared-with alice,bob
# Flags verified in source (main.py): --tags, --json, --sync, --scope, --shared-with
# --sync: wait for full enrichment before returning (default is async)
# --scope: personal (default) | shared | global ; --shared-with: profile ids for sharedFlags that do NOT exist on slm remember: --importance, --project, --format — these are MCP-only params or fabricated.
| Scenario | Action |
|---|---|
| Fact is still true but needs refinement | update_memory(fact_id, new_content) |
| Fact is superseded or wrong | slm forget "<query>" --dry-run then --yes |
| Duplicate found that matches recall result | update_memory on the existing one |
| Fact has a known ID and is clearly obsolete | slm delete <fact_id> --yes |
SuperLocalMemory v3.6.18 · Qualixar · AGPL-3.0-or-later
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.