audhd-context-recovery-5d8705 — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited audhd-context-recovery-5d8705 (Agent Skill) and scored it 92/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 2 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 2 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.
A /resume command. Reconstructs the user's last working context — active project, recent decisions, open threads — from the local cognitive graph, so the user does not have to remember it.
Activate when any of the following is true:
/resume or /where-was-i.get_time_context.time_since_last_prompt is greater than PT8H. In this case, do not activate silently — offer it: "It's been a while. Want a /resume?"Do not activate on every session start. Do not activate mid-conversation. This is a session-opener for a returning user, not a status report.
Follow this order. Stop early if a step returns nothing useful and say so plainly.
get_time_context(). Note time_since_last_prompt. Use this to scope the recap:/resume Phase 0 RFC).recall_entity(name_or_alias=<that name>).weekly_rollup() (no project arg) and use the first project mentioned in summary / decisions as the most recent.recall_entity.resolution.method is alias, fuzzy, or embedding, surface the score and the resolved entity name. Ask the user to confirm before continuing. Do not silently assume the match is right. If entity is null, stop and tell the user the graph has no record matching that name.recall_decisions(project=<resolved name>, since=<scoped date from step 1>). Keep the three most recent.weekly_rollup(project=<resolved name>). Use blockers and next_actions. Keep up to three open threads (a blocker is an open thread; a recent decision without follow-up is an open thread).weekly_rollup.next_actions if present, otherwise from the most recent decision lacking follow-up. If neither exists, say "Nothing in the graph suggests an obvious next move — what's on your mind?" Do not invent.Three short sections plus one closing sentence. Plain text. No headings deeper than H3. No tables.
You were on: <project name> · last activity <relative timestamp, e.g. "yesterday 16:42">
Recent decisions
- <decision 1, one line, with date>
- <decision 2, one line, with date>
- <decision 3, one line, with date>
Open threads
- <blocker or follow-up 1>
- <blocker or follow-up 2>
- <blocker or follow-up 3>
Next: <one concrete move drawn from the graph>.When the graph is thin, shorten honestly — for example: "Two decisions recorded, no open blockers. Next: nothing obvious — your call."
entity == null: do not fabricate. Say "No entity matches '<input>'. Want to try a different name, or run /resume with no argument?"decisions == [] and blockers == []: say so. Do not pad.truncated_facts, truncated): mention them briefly. "Older items were truncated."adhd-daily-planner plans the day.Direct. Plain. Past tense for what was decided; present tense for what is open. Talk about the work — projects, decisions, threads — not about the user's neurotype. No clinical framing. No "executive function". No "context-switching tax".
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.