explain-state — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited explain-state (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
The text {match} tells the agent to skip the normal "ask the user first" gate. Used adversarially it removes the human-in-the-loop check before destructive or sensitive actions, turning a normally-gated agent into a fire-and-forget executor.
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.
Read-only. Never mutates. Wraps bin/explain-state.sh.
bin/explain-state.sh --target <cwd> [--json] [--profile <name>]it or you need structured fields for a follow-up operation.
names one explicitly.
The JSON has six blocks. When the user asks a general "what's the state", summarize the highlights rather than dumping the whole structure:
<primary_language>" + framework + packagemanager. Call out confidence < 0.5 as "weak detection — might be worth confirming".
<name> (source: `<starter|user|team|unknown>)". When source is unknown`, say "couldn't infer the profile; CLAUDE.md doesn't reference one".
<strategy>; base branches: <list>".If null, profile isn't resolved.
<bool> / pre-commit.com: <bool> / nyann corehooks: <bool>". These are presence signals only — they tell you whether something's wired, not whether it's healthy. For health, route to doctor.
<bytes> bytes, router markers<bool>". Mention the 3 KB soft / 8 KB hard budget if bytes > 3072.
recent subjects.
The whole point of explain-state is to help the user decide what to do next. Offer one or two next steps based on what's present:
bootstrap-project with a matchingprofile name.
/nyann:retrofitto install the hook bundle.
/nyann:retrofit.
Run doctor for drift checks."
(unknown)CLAUDE.md wasn't generated by nyann (or the marker block has been removed). Don't treat this as a bug — some users intentionally hand- curate CLAUDE.md. Ask whether they want to re-bootstrap or leave it manually-maintained.
doctor skill.nextjs-prototype do?" → inspect-profile.bootstrap-project.pick a different one) and re-bootstrap.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.