Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Check a package's health before you depend on it — npm and PyPI registry APIs via keyless curl: downloads, release recency, maintenance signals, and the dependency-decision read. Use when asked is this npm package maintained, check this PyPI library before we adopt it, compare these two packages, or is this dependency abandoned. Produces the health read with the signals interpreted (not just listed), the numbers with their commands, and the adopt/avoid/vendor recommendation framing.
.claude/skills/mohitagw15856-package-health/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 64% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 26% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 61% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 39% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 46% | 0% |
Adding a dependency is hiring code you'll never interview — and the registries publish the résumé keylessly: last release date, download trajectory, version cadence, maintainer count. This skill pulls the signals for npm and PyPI over plain curl and does the part the raw numbers don't: interpretation. A package with no release in three years is abandoned or finished — and which one it is depends on what the package does. The output is a read, not a dashboard.
Ask for these if not provided:
curl -s "https://registry.npmjs.org/express/latest" (version, dependencies, deprecation notices) · full metadata: curl -s "https://registry.npmjs.org/express" (time object = the whole release history — cadence lives here; maintainers) · downloads: curl -s "https://api.npmjs.org/downloads/point/last-month/express".curl -s "https://pypi.org/pypi/requests/json" — info (version, requires_python, project_urls, yanked flags), releases (the dated history). Downloads for PyPI live at https://pypistats.org/api/packages/<name>/recent (keyless).The read: maintained / stable-and-done / drifting / abandoned] — two sentences of reasoning].
| Signal | Value | Read | |---|---|---| Version + date · release cadence · downloads/month · maintainers · deprecation/yank flags]
Comparison mode: candidates × signals, same table, verdict per role]
Recommendation frame: adopt / monitor / vendor / avoid — with the stakes reasoning] Source: registry] APIs · as of date] · rerun: [the curls] Registry signals, not a security audit — that's a separate discipline.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 10,381 | 12,563 | +21% | 1 | 1 | 0% | 2,096 | 3,441 | +64% | 0 | 0 | — |
case-02 | fail→pass | 13,569 | 11,303 | -17% | 1 | 1 | 0% | 2,756 | 3,481 | +26% | 0 | 0 | — |
case-03 | fail→pass | 9,768 | 10,485 | +7% | 1 | 1 | 0% | 1,930 | 3,103 | +61% | 0 | 0 | — |
case-04 | fail→pass | 9,289 | 6,685 | -28% | 1 | 1 | 0% | 1,698 | 2,366 | +39% | 0 | 0 | — |
case-05 | pass→pass | 11,309 | 11,815 | +4% | 1 | 1 | 0% | 1,914 | 2,850 | +49% | 0 | 0 | — |
case-06 | pass→pass | 12,694 | 8,191 | -35% | 1 | 1 | 0% | 1,951 | 2,417 | +24% | 0 | 0 | — |
case-07 | pass→pass | 6,241 | 6,900 | +11% | 1 | 1 | 0% | 1,178 | 2,295 | +95% | 0 | 0 | — |
case-08 | pass→pass | 4,567 | 3,399 | -26% | 1 | 1 | 0% | 881 | 1,685 | +91% | 0 | 0 | — |
case-09 | pass→pass | 9,968 | 8,429 | -15% | 1 | 1 | 0% | 1,685 | 2,332 | +38% | 0 | 0 | — |
case-10 | pass→pass | 13,178 | 11,998 | -9% | 1 | 1 | 0% | 2,269 | 3,070 | +35% | 0 | 0 | — |
case-11 | pass→pass | 11,147 | 9,703 | -13% | 1 | 1 | 0% | 1,855 | 2,801 | +51% | 0 | 0 | — |
case-12 | fail→pass | 11,494 | 10,278 | -11% | 1 | 1 | 0% | 1,921 | 2,802 | +46% | 0 | 0 | — |
case-13 | pass→pass | 10,683 | 4,457 | -58% | 1 | 1 | 0% | 1,682 | 1,812 | +8% | 0 | 0 | — |
case-14 | pass→pass | 10,903 | 7,568 | -31% | 1 | 1 | 0% | 1,933 | 2,385 | +23% | 0 | 0 | — |
case-15 | fail→fail | 12,245 | 11,102 | -9% | 1 | 1 | 0% | 1,205 | 2,175 | +80% | 0 | 0 | — |
case-16 | pass→pass | 2,988 | 2,526 | -15% | 1 | 1 | 0% | 544 | 1,560 | +187% | 0 | 0 | — |
case-17 | fail→pass | 8,754 | 6,479 | -26% | 1 | 1 | 0% | 1,468 | 2,149 | +46% | 0 | 0 | — |
case-18 | fail→fail | 4,485 | 9,431 | +110% | 1 | 1 | 0% | 794 | 2,856 | +260% | 0 | 0 | — |
case-19 | pass→pass | 37,430 | 18,196 | -51% | 1 | 1 | 0% | 1,132 | 2,463 | +118% | 0 | 0 | — |
case-20 | pass→pass | 10,157 | 8,645 | -15% | 1 | 1 | 0% | 1,710 | 2,546 | +49% | 0 | 0 | — |
case-21 | pass→pass | 3,434 | 3,959 | +15% | 1 | 1 | 0% | 615 | 1,733 | +182% | 0 | 0 | — |
case-22 | pass→pass | 7,611 | 5,142 | -32% | 1 | 1 | 0% | 1,403 | 2,084 | +49% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +27 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.