recall — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited recall (Agent Skill) and scored it 45/100 (orange). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 1 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 1 flagged
A base64 string of 128+ characters appears in a documentation file. Encoded prompt injection hides the hostile instruction in base64 — invisible to keyword filters — and relies on the agent's ability to decode it at runtime. There is no normal authoring reason to embed a multi-hundred-byte base64 blob in skill docs.
*.sig, SIGNATURES) outside the documentation.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.
<!-- Trigger phrases: recall, search knowledge, what do we know about, find in knowledge base, /recall <query> -->
Recall searches the Distillery knowledge base using natural language queries and returns ranked results with full provenance.
/recall <query> or phrases like "what do we know about X"/recall caching --type session)See CONVENTIONS.md — skip if already confirmed this conversation.
If /recall was invoked with no arguments, ask: "What would you like to search for in the knowledge base?" Wait for the response.
Parse invocation arguments for optional filter flags (any order):
| Flag | Parameter | Description |
|---|---|---|
--type | <entry_type> | Filter by entry type (e.g., session, bookmark, minutes) |
--author | <name> | Filter by author identifier |
--project | <name> | Filter by project name |
--limit | <n> | Override default result limit (default: 10) |
Remaining text after removing flags is the query string.
Example: /recall caching --type session --author Alice --limit 5 → query: "caching", filters: type=session, author=Alice, limit: 5
Valid entry_type values: session, bookmark, minutes, meeting, reference, idea, inbox.
Call distillery_search with the parsed query, limit, and any filters. Only include filter parameters that were explicitly provided — do not pass empty or null values.
If results are returned, display each using the Output Format below.
If no results found, display: No results found for "<query>". followed by suggestions to broaden terms, remove filters, or check that entries exist on the topic.
Multiple results — show a header first:
Found <count> result(s) for "<query>"<filter_summary>:Where <filter_summary> summarises active filters (e.g., (type: session, author: Alice)), omitted if none.
Each result (ordered by similarity, highest first):
## <similarity_score>% — [<entry_type>]
<full content of the entry>
ID: <entry_id> | Author: <author> | Project: <project> | <created_at>
Tags: <tag1>, <tag2>, ...[session])ID: <id> | Author: <author> | Project: <project> | <created_at>Separate results with ---.
--limit overridedistillery_search callTags: (none)--type is given an invalid value, list valid types before calling the API~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.