agentleFS
varunk130varunk130/ai-workflow-playbooks/skills/dependency-assessment/SKILL.md

dependency-assessment

Skill2 starsChanged 6 months agoMITView on GitHub

Evaluate whether to add, update, or remove a dependency based on maintenance, security, size, and licensing criteria.

  • Installs packages

The file

We split this skill into the rules it gives an agent

10 rules. About 0 are common, 7 are distinctive, and 3 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈7

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 3

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Before adding any package, answer every question honestly:

    line 16
  2. Distinctive:

    If you answer "no need" to any of the first four questions, stop.

    line 26
  3. Distinctive:

    Never install a package without checking its vital signs:

    line 30
  4. Very specific:

    Use npm info <pkg>, GitHub insights, or equivalent tooling to gather these signals.

    line 41
  5. Distinctive:

    Every dependency carries a license.

    line 59
  6. Very specific:

    Run npx license-checker or pip-licenses and flag anything viral or unknown.

    line 68
  7. Distinctive:

    Never add a dependency without explicitly evaluating the checklist in competency 1.

    line 80
  8. Distinctive:

    Always verify the license is compatible with the project before installing.

    line 81
  9. Distinctive:

    Always check for an existing package in the project that serves the same purpose before adding a new one.

    line 82
  10. Very specific:

    Run a security audit (npm audit, pip audit, cargo audit) after adding or updating any dependency.

    line 83

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “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 Assessment

What This Skill Enables

Agents with this skill can make disciplined decisions about third-party packages instead of reflexively running npm install or pip install at the first sign of complexity. Without it, agents accumulate dependencies that bloat bundles, introduce supply-chain risk, and create upgrade nightmares. A skilled agent treats every new dependency as a long-term commitment and evaluates it accordingly.

Core Competencies

1. Apply the "Do We Really Need This?" Checklist

Before adding any package, answer every question honestly:

QuestionGuidance
Does the standard library already cover this?Check built-ins first. fetch exists natively; you may not need axios.
Is the functionality fewer than ~50 lines to implement?A leftPad situation. Write it yourself.
Will this dependency be used in more than one place?A single call site rarely justifies a new dependency.
Does the project already have a similar package?Two date libraries in one project is a code smell.
Is this a direct dependency or only needed at build time?Dev dependencies carry less runtime risk but still need auditing.

If you answer "no need" to any of the first four questions, stop. Write the code inline or use what already exists.

2. Evaluate Package Health

Never install a package without checking its vital signs:

SignalHealthyWarningCritical
Last commitWithin 3 months3-12 months agoOver 1 year ago
Open issuesTriaged, responsive maintainersGrowing backlogHundreds unaddressed
Weekly downloadsStable or growingDeclining steadilyUnder 1,000
Bus factor3+ active contributors2 contributorsSingle maintainer
Release cadenceRegular semver releasesSporadicNo releases in 12+ months
Test suiteCI passing, good coverageCI present but flakyNo CI at all

Use npm info <pkg>, GitHub insights, or equivalent tooling to gather these signals. Do not guess.

3. Measure Bundle Size Impact

For frontend projects, size is a first-class concern:

# Check before installing
npx bundlephobia <package-name>

# After installing, compare
npx webpack-bundle-analyzer stats.json

Rule of thumb: if a utility package adds more than 10 KB minified+gzipped for a function you could write in 30 lines, write it yourself. For backend projects, size matters less but startup time and memory footprint still count.

4. Verify License Compatibility

Every dependency carries a license. Common compatibility:

Project LicenseCompatible Dependency LicensesIncompatible
MITMIT, BSD, ISC, Apache-2.0GPL, AGPL (viral)
Apache-2.0MIT, BSD, ISC, Apache-2.0GPL, AGPL
GPL-3.0MIT, BSD, ISC, Apache-2.0, GPLAGPL (depending on use)
ProprietaryMIT, BSD, ISC, Apache-2.0GPL, AGPL, SSPL

Run npx license-checker or pip-licenses and flag anything viral or unknown. Packages with no license declared are legally risky -- treat them as proprietary.

5. Decide: Install, Vendor, or Write Your Own

StrategyWhen to Use
Install normallyPackage is healthy, well-maintained, widely used, license-compatible, and provides substantial functionality.
Vendor (copy source into repo)Package is small, stable, and unlikely to change, but you want to avoid a network dependency or the package is archived. Pin the version and note the origin.
Write your ownThe needed functionality is small, the package is unhealthy, or you need tight control over behavior and performance.

Behavioral Rules

  1. Never add a dependency without explicitly evaluating the checklist in competency 1.
  2. Always verify the license is compatible with the project before installing.
  3. Always check for an existing package in the project that serves the same purpose before adding a new one.
  4. Run a security audit (npm audit, pip audit, cargo audit) after adding or updating any dependency.
  5. Pin dependency versions in lockfiles and commit the lockfile with the same PR that adds the dependency.

Failure Modes

FailureSymptomCorrection
Dependency hoardingpackage.json grows by one package per task.Apply the "do we need this?" checklist every time.
Abandoned dependencyBuild breaks months later because an unmaintained package conflicts.Check health signals before adopting; set calendar reminders to re-evaluate.
License violationLegal flags a GPL dependency in a proprietary product.Run license checks in CI; block incompatible licenses automatically.
Bundle bloatPage load time degrades after adding a "small" utility.Measure size impact before merging; set bundle budgets in CI.
Duplicate functionalityTwo packages that do the same thing coexist in the project.Audit existing dependencies before proposing a new one; consolidate.

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.