npx claudepluginhub thejefflarson/soundcheck --plugin soundcheckThis skill uses the workspace's default tool permissions.
Protects against malicious or compromised packages introduced through unpinned
Audits dependency configs for supply chain risks like unpinned versions, missing lockfiles, postinstall scripts in package.json, requirements.txt, Gemfile, go.mod, Cargo.toml, pom.xml. Hardens with pinning, SBOM, signing best practices.
Intercepts pip, npm, go installs to audit package identity, vulnerabilities, suspicious signals, and enforce lockfile hash pinning before execution.
Provides software supply chain security guidance on SBOM generation, SLSA framework, dependency scanning, SCA tools, and protections against attacks like dependency confusion and typosquatting.
Share bugs, ideas, or general feedback.
Protects against malicious or compromised packages introduced through unpinned dependencies, unverified installs, or absent integrity checks. A single poisoned transitive dependency can give attackers arbitrary code execution during build or runtime.
"requests": "^2.28.0" in package.json / pyproject.toml — caret/tilde ranges allow automatic minor/patch upgrades to a compromised versionpip install git+https://github.com/user/repo — installs from an arbitrary git ref with no integrity guaranteepackage-lock.json / poetry.lock committed — lockfile omission defeats reproducible buildsnpm install in CI with no npm audit step — vulnerabilities enter the build silently"ai-fetch-helper": "^1.0.0" in an AI-generated manifest — hallucinated package names are claimed by attackers before the developer notices (slopsquatting)Flag the vulnerable code and explain the risk. Then suggest a fix that establishes these properties:
*, no
latest, no caret/tilde ranges, no open comparators, no unpinned git
branches or tags. A floating range silently pulls in the next compromised
release; an exact pin means a human decides when to move.package-lock.json, pnpm-lock.yaml, poetry.lock,
Cargo.lock, go.sum, or the Maven lock plugin output. CI installs with
a frozen-lockfile command (npm ci, pnpm install --frozen-lockfile,
cargo build --locked, go mod verify) that fails on drift, not a
silent-resolve command.npm audit, pip-audit,
cargo audit, trivy, OWASP Dependency-Check. A scanner that reports but
doesn't fail the build is advisory, not a gate.curl | bash, wget | sh, iwr | iex — every instance replaces
the whole supply chain with whatever the server decides to serve today.npm view <pkg> / pip index versions <pkg>
catches them.Anchor — shape, not implementation:
# manifest: "express": "4.18.2" # exact, not ^4.18.0
# CI:
npm ci # fails if lockfile missing / drifted
npm audit --audit-level=high # non-zero exit gates the build
# forbidden: curl https://… | bash
Confirm the response:
*, latest, caret/tilde ranges, open comparators, or unpinned git branches/tagspackage-lock.json, pnpm-lock.yaml, poetry.lock, Cargo.lock, go.sum, Maven dependency lock plugin output)npm ci, pnpm install --frozen-lockfile, cargo build --locked, go mod verify, mvn dependency:verify) — not a command that silently resolves fresh versionsnpm audit, pip-audit, cargo audit, nancy, trivy, OWASP Dependency-Check)curl | bash, wget | sh, iwr | iex)