agentleFS
moh-obaidamoh-obaida/ReadyVibe-Skills/skills/security/dependency-security/SKILL.md

dependency-security

Skill2 starsChanged 25 days agoApache-2.0View on GitHub

Use when a project has package manifests and lockfiles and you want to know about known-vulnerable, abandoned, or suspicious dependencies before launch, without running install scripts. It reads manifests and lockfiles, uses the ecosystem's audit tooling where safe, and proposes minimal, non-breaking upgrades. Do not use it to upgrade major versions automatically, run untrusted install scripts, or claim a project is free of vulnerabilities.

We split this skill into the rules it gives an agent

5 rules. 0 are common, 4 are distinctive, and 1 is very specific to this project.

  • 0

    Common

    Most of the 4 edited versions we read keep these.

  • 4

    Distinctive

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Every dependency is code you ship.

    line 13
  2. Distinctive:

    Before launch, after a big scaffold, or when the AI generator added many packages.

    line 18
  3. Distinctive:

    Not to perform general code review or to upgrade frameworks.

    line 19
  4. Very specific:

    Lockfile present and committed?: No lockfile means builds are not reproducible: flag it.

    line 23
  5. Distinctive:

    If audit tooling could not run (offline), vulnerability status is UNKNOWN.

    line 37

“Common” is measured: kept by at least 6 in 10 of the 4 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

dependency-security

Every dependency is code you ship. A launch review should know what is in the tree and whether any of it is known-bad, without executing any of it to find out.

Activate when

  • Manifests exist (package.json, lockfiles, requirements.txt, Gemfile.lock, go.mod, Cargo.lock, composer.lock).
  • Before launch, after a big scaffold, or when the AI generator added many packages.
  • Not to perform general code review or to upgrade frameworks.

Inspect

  1. Lockfile present and committed? No lockfile means builds are not reproducible: flag it. Multiple package managers' lockfiles (both package-lock.json and pnpm-lock.yaml) signal confusion.
  2. Known vulnerabilities, safely. Use audit tooling that reads the lockfile: npm audit --omit=dev, pnpm audit --prod, yarn npm audit, pip-audit, bundle audit, cargo audit. These query an advisory database and do not run package scripts; they need network access to the registry: state if unavailable (UNKNOWN). Never run npm install/pnpm install on unreviewed code solely to audit; audit from the lockfile. Separate production from dev-only dependencies: production exposure matters most at launch.
  3. Triage each advisory: is the vulnerable code path reachable in this project (a server-only package used client-side, a dev tool)? Severity in context; fix availability; direct vs transitive.
  4. Suspicious or unnecessary packages: typosquat-looking names (reacct, lodahs), packages added by an AI with tiny download counts or no repository, postinstall/preinstall scripts in the tree (list them; do not run), unused dependencies, duplicate libraries for the same job, packages requesting broad permissions.
  5. Abandonment and licensing signals: end-of-life framework versions, deprecated packages (npm view <pkg> deprecated), copyleft licenses in shipped client code (legal-identity-notices).
  6. Client bundle exposure: heavy or server-only libraries in the client bundle (performance-readiness, web-security).
  7. CI and supply chain: lockfile-enforced installs (npm ci), no secrets in CI logs, pinned actions where practical.

Evidence that counts

Label each claim OBSERVED, SOURCE-INDICATED, DECLARED, INFERRED, UNKNOWN, or REVIEW REQUIRED. UNKNOWN is never a pass and never a failure.

  • An advisory from an audit run is OBSERVED for that database at that time. Reachability is INFERRED unless traced.
  • "No advisories" means none in the database queried, on that date, for that lockfile; it says nothing about unknown vulnerabilities or malicious packages.
  • If audit tooling could not run (offline), vulnerability status is UNKNOWN.

May change

Apply patch and minor upgrades that resolve advisories when tests/build still pass (npm update <pkg>, lockfile-only); add overrides/resolutions for transitive fixes when clearly safe; remove unused or suspicious packages with the owner's confirmation; commit a lockfile. Do not upgrade major versions or frameworks automatically, run install scripts of unreviewed packages, or delete a lockfile to "fix" it. Propose major upgrades as a list with breaking-change notes.

Must not claim

"No vulnerabilities", "secure dependencies", or "up to date". Report counts by severity, what is production-reachable, and what could not be checked.

Verify

Re-run the audit from the updated lockfile; rebuild and run the project's tests and a smoke load of the site; confirm no new deprecations or peer-dependency errors.

Escalate

Critical/high advisories with no fix, suspected malicious packages, or a compromised dependency (stop and tell the owner; rotate any secrets the package could have seen); major upgrades that need scheduled work.

No change is valid when

The audit is clean for production dependencies and the lockfile is committed. Do not churn versions to hit "latest".

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.