supply-chain-risk-auditor — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited supply-chain-risk-auditor (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
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.
Generates a supply-chain risk report for a project's direct dependencies (npm, PyPI, Go), plus an advisory sweep of everything its lockfile resolves. Two deterministic scripts do the measuring; your job is the judgment they refuse to automate.
Every figure in this report is a claim about somebody else's project, and hand-collected figures were measured wrong before this skill was rebuilt around scripts: GitHub contributor counts said five-plus people maintain lodash where npm's ACL says one, and gh saw zero downloads for a package that moves 164 million a week. Do not estimate maintainer counts, downloads, staleness, or CVE history from gh, web search, or memory — run the collector, and quote what it measured.
The scripts enforce two rules worth knowing before you read their output:
assessed-clean, assessed-flagged, or unassessable-with-a-reason.
non-zero instead of printing a report that finds nothing.
package.json, pyproject.toml,requirements*.txt, or go.mod. If none exist, say so and stop — do not audit an ecosystem this collector does not parse by hand. Lockfiles read for exact versions and the transitive sweep: package-lock.json/npm-shrinkwrap.json, uv.lock, and a go 1.17+ go.mod. yarn.lock, pnpm-lock.yaml, and poetry.lock are not read — the report says so when they are present, and versions fall back to pins or the latest release.
gh auth status. Unauthenticated GitHub allows 60 requests/hour against 5,000,and the collector makes several per dependency; expect repository criteria to come back unassessable without it. Say so rather than fixing it silently.
asked otherwise:
uv run {baseDir}/scripts/collect.py <project-dir> --json <out-dir>/findings.json
uv run {baseDir}/scripts/render.py <out-dir>/findings.json --out <out-dir>/report.mdExpect a few minutes for ~50 dependencies — several HTTP requests per dependency, more with many Go modules, and slower without authenticated gh. If collect.py exits non-zero, it is refusing to report — relay its message verbatim instead of retrying or working around it.
report.md and findings.json. The report is the deliverable; the JSON carriesthe datum behind every verdict when you need to cite one.
version away.
exists in the registry before naming it, and label these as judgment, not measurement.
npm ci --ignore-scripts is viable for thisproject's build.
Write added prose the way a security report reads, and apply the same register to the report addendum and the final reply alike — replies get pasted into tickets and reports verbatim. State the finding, the datum behind it, and the action.
should upgrade"), no contractions, no exclamation points.
25 advisories", not "it is recommended that axios be upgraded".
"fortunately"), and no guesses about why the project chose what it chose.
future for the consequences of acting or not.
If the report-writing:writing-style skill is available in the session, follow it — it is the full version of this register.
The rendered report carries facts only. The interpretive rules below are instructions to you, not content for the reader — do not copy them into the deliverable as caveats or framing.
those rows say what could not be known, not what is wrong.
assessed" — check the assessed count before repeating a clean verdict.
numbers; every one is reproducible from the artifact.
measured against these criteria only.
gh can give me maintainer counts faster than the collector." Measured wrong — repocontributors and registry publish rights are different populations.
half the criteria are structurally unassessable.
boundary of every claim in the report. Dropping them turns partial coverage into a clean bill of health, which is the failure this skill was rebuilt to prevent.
lockfile-resolved version are different claims; the report labels which one it makes. Keep the label.
reads dependency source, only registry, advisory, and repository metadata.
nothing more than the dependency list — manifests and lockfiles — and never installs, builds, or executes anything. Broken installs and import-time breakage are out of scope, and worth saying so if the user seems to expect them.
improvising an audit for it.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.