dep-quality

Score open-source package health across crates.io, npm, and PyPI using registry and GitHub data.

2|Updated May 13, 2026
One-click install
npx skills add https://github.com/curtisgalloway/public-skills --skill dep-quality-curtisgalloway
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: dep-quality
Source: https://github.com/curtisgalloway/public-skills/tree/main/plugins/dev-tools/skills/dep-quality
Command: npx skills add https://github.com/curtisgalloway/public-skills --skill dep-quality-curtisgalloway

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) components.

What problem does it solve? Choosing between dependency alternatives is often driven by popularity or habit rather than evidence of project health. This Skill computes a 0-10 Dependency Fitness Score (DFS) for open-source packages so you can compare alternatives on maintenance, adoption, bus factor, security hygiene, and release discipline before pinning anything in a manifest. ## Core Features & Use Cases - Gate-based rejection: Automatically rejects packages with disallowed licenses, archived repositories, deprecation flags, or unpatched critical advisories before scoring. - Five-component health score: Weighted geometric mean of responsiveness (external issue handling), adoption (reverse dependencies, not stars), bus factor (human stewards only, bots excluded), security hygiene (advisory fix latency plus OpenSSF Scorecard), and release discipline (registry-based cadence). - Manifest auditing: Score every direct dependency in a Cargo.toml, package.json, requirements.txt, or pyproject.toml in one run, with path and workspace-internal dependencies skipped safely. - Use Case: You are deciding between two HTTP client libraries for a Rust project. Run the scoring script on both crates, compare their DFS values and reason codes, and reject the one with a single maintainer and stale releases despite its higher star count. ## Quick Start Ask the agent to score and compare the health of specific packages, for example by running the depscore script on cargo:serde and npm:express with a GITHUB_TOKEN set in the environment.

Frequently Asked Questions about dep-quality

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I check if an open-source package is actively maintained?▼

Run the depscore script with the package specifier, such as cargo:serde or pypi:requests. It reports a 0-10 Dependency Fitness Score covering responsiveness, adoption, bus factor, security hygiene, and release discipline, with per-component reason codes explaining the evidence.

How do I compare two dependency alternatives like library X vs Y?▼

Pass both packages to the script in one invocation and compare their DFS values and reason codes. Treat differences under 1.0 point as a tie and decide on API fit and documentation; investigate any component scoring 2 or below before adopting.

Can I audit all dependencies in a Cargo.toml or package.json at once?▼

Yes, use the --manifest flag with a Cargo.toml, package.json, requirements.txt, or pyproject.toml file. The script scores every direct dependency, skipping path and workspace-internal entries with a notice on stderr.

Does the dependency scoring work without a GitHub token?▼

It runs but is severely limited, since unauthenticated GitHub API access allows only 60 requests per hour and the script spends roughly 5 per package. Set a fine-grained read-only GITHUB_TOKEN environment variable for practical use.

What causes a package to be rejected outright by the health check?▼

Three gate failures cause rejection regardless of score: a license outside the allowlist, an archived or deprecated repository, or an unpatched critical security advisory. Licenses reported as NOASSERTION pass but are flagged for manual verification.

What are the limitations of automated dependency health scoring?▼

Registry dependent counts miss private and vendored consumers, non-GitHub hosting like GitLab or sourcehut only gets registry-side scoring, and git-pinned dependencies skip registry data entirely. Low confidence scores below 0.6 should be treated as hints, not verdicts.