slm-compress-60018c — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited slm-compress-60018c (Agent Skill) and scored it 96/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 1 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 1 flagged
A bulleted imperative like {match} tells the agent to never reveal, disclose, or mention something to the user. Used adversarially it can instruct the agent to hide its tool calls or lie about what it did — stripping the transparency a user relies on to trust the agent.
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.
When a tool output, transcript, or accumulated context grows large enough to crowd out working space, slm_compress reduces it in-place. The compressed form is used for the remainder of the session; the exact original is recoverable on demand via slm_retrieve. This works without a proxy and without touching ANTHROPIC_BASE_URL, so the full 1M context window is never sacrificed.
slm_compress(
content: str, # required — text to compress (max 1 MB)
mode: str = "auto", # "normalize" | "auto" | "aggressive"
reversible: bool = True, # store original in CCR for later retrieval
ttl_seconds: int = 86400, # CCR lifetime in seconds (default 24 h)
) -> dict| Key | Type | Meaning | |
|---|---|---|---|
ok | bool | True on success; False on internal error or empty input | |
compressed | str | Compressed text (or original on failure) | |
strategy | str | Which strategy was applied (e.g. "normalize", "none") | |
tokens_before | int | Word-count estimate of the input | |
tokens_after | int | Word-count estimate of the output | |
ratio | float | tokens_after / tokens_before (lower = more compact) | |
lossy | bool | Whether information was removed | |
ccr_id | str \ | None | UUID4 session token; present only when lossy=True and reversible=True |
note | str \ | None | Human-readable note (e.g. warnings, recovery hint) |
lossy: false, ccr_id: null.CompressRouter; may be lossy depending on daemon config; default.compress_mode=aggressive set in config; note field will warn if daemon config does not match.When slm_compress returns lossy: true, the original is stored under the ccr_id. Use slm_retrieve to get it back:
slm_retrieve(ccr_id: str) -> dict| Key | Type | Meaning | |
|---|---|---|---|
ok | bool | True when content was found | |
content | str \ | None | Original text, decoded from UTF-8 (or Latin-1 fallback) |
size_bytes | int | Byte length of the stored original | |
error | str \ | None | Error message on failure; None on success |
ccr_id must be a valid UUID4. Non-UUID4 strings return ok: false immediately.
ccr_id values are unguessable session tokens. Treat them like short-lived credentials:
slm_retrieve.ccr_id string itself.ttl_seconds (default 24 h); slm_retrieve returns ok: false after expiry.Compress when:
Do NOT compress:
ccr_id strings.slm_compress never raises an exception. On any internal error it returns:
{ "ok": false, "compressed": "<original input>", "ratio": 1.0, ... }When `ok` is `false`, continue with the original content. Never block a task waiting for compression to succeed.
# Step 1: compress a large tool output
result = await slm_compress(
content=long_log_text,
mode="auto",
reversible=True,
ttl_seconds=3600,
)
if result["ok"]:
working_text = result["compressed"]
ccr_id = result["ccr_id"] # None if lossless
else:
working_text = long_log_text # fail-open
ccr_id = None
# ... work with working_text ...
# Step 2: restore original when needed (e.g. before final summary)
if ccr_id:
restore = await slm_retrieve(ccr_id=ccr_id)
if restore["ok"]:
original_text = restore["content"]The slm compress subcommand exists but has known pre-existing parse-test failures. Prefer the MCP tools above. If you must use CLI:
slm compress status [--json]
slm compress mode safe|aggressive [--json]
slm compress code on|off [--json]
slm compress prose on|off [--json]
slm compress ccr on|off [--json]
slm compress align on|off [--json]These subcommands control daemon-level compression settings — they do not compress content inline. For inline compression, use slm_compress via MCP.
Content over 1 MB (1 000 000 bytes UTF-8) is processed but reversible is forced to False and ccr_id will be None. The note field will state "content over 1MB: ccr skipped".
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.