inspect-profile — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited inspect-profile (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. Wraps bin/inspect-profile.sh. Loads a profile via load-profile.sh (user profiles shadow starters with the same name) and renders a human-readable summary.
nextjs-prototype do"). Use that.
skill doesn't infer from the repo. For "show this repo's setup", route to explain-state instead.
^[a-z0-9][a-z0-9-]*$. Reject anything elsewith a clear message rather than handing a bad name to the backend.
bin/inspect-profile.sh <name> [--user-root <dir>]--user-root defaults to ~/.claude/nyann. Only override when the user says something like "check my team-installed profile at <path>".
The backend already formats sections (Profile, Stack, Branching, Hooks, Extras, Conventions, Documentation, GitHub integration). Your job is to relay those faithfully and add context when the user asks a follow-up. Don't re-summarize — the backend's blurbs for each hook (e.g. "ESLint runs on staged JS/TS") are authoritative.
When the user asks "is this the right profile for my repo", do NOT guess — suggest running explain-state (reads the repo) and comparing, or running doctor (reports drift against a chosen profile).
Exit code 2 means the profile isn't in user root or starters. The backend prints the available list; relay it and ask the user to pick one. Never invent profile names.
load-profile.sh warns on stderr when a user profile shadows a starter with the same name. Don't hide this — explicitly tell the user which version was loaded (user wins by design).
bootstrap-project with--profile <name>.
~/.claude/nyann/profiles/<name>.json; the skill doesn't mutate.
learn-profile.
doctor against thenamed profile.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.