npm-research

Automated skill for researching npm packages to identify changelogs, security advisories, breaking changes, and compatibility impacts.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "npm-research" with this command: npx skills add equinor/fusion-framework/equinor-fusion-framework-npm-research

NPM Research Skill

Automated skill for researching npm packages to identify changelogs, security advisories, breaking changes, and compatibility impacts.

Use Cases

  • Evaluate a dependency upgrade before applying it

  • Find security vulnerabilities affecting a package

  • Understand breaking changes between versions

  • Generate research summaries for dependency reviews

  • Validate compatibility with current codebase

  • Check release history and maintenance status

Core Research Methods

  1. Retrieve Package Metadata

Get comprehensive package information from npm registry:

npm view PACKAGE --json > package-meta.json

Extracts:

  • Current version and tags (latest, next, alpha, beta)

  • All published versions and release dates

  • Maintainers and repository information

  • Dependencies and peer dependencies

  • Keywords and homepage

  • Download statistics

Parse to find specific versions:

npm view PACKAGE@VERSION --json

Get only the latest version info (compact):

npm view PACKAGE version npm view PACKAGE versions --json | jq '.[-1]'

  1. Changelog Research

From npm registry (if published in README or description)

npm view PACKAGE readme | grep -A 50 -i "changelog|release|history" | head -100

From GitHub releases (if package has repo link)

Extract repository URL from package metadata

REPO_URL=$(npm view PACKAGE repository.url | sed 's/git+//g' | sed 's/.git$//g' | sed 's|https://github.com/||g')

Fetch releases using GitHub CLI

gh api repos/${REPO_URL}/releases --paginate
| jq -r '.[] | "(.tag_name): (.name)\n(.body)\n---"'
| head -200

From npm package release notes

Query npm registry for release timeline

npm view PACKAGE time --json
| jq 'to_entries[] | select(.key | test("VERSION_PATTERN")) | "(.key): (.value)"'

Manual inspection approach

  • Visit https://www.npmjs.com/package/PACKAGE

  • Navigate to Versions tab → select target version

  • Check README and Changelog links in sidebar

  • Read linked GitHub repository releases section

  1. Security Vulnerability Research

NPM audit data (local or remote)

Check local project vulnerabilities for a specific package

npm audit --package-lock-only | grep -A 5 "PACKAGE"

Query npm registry for package vulnerabilities

curl -s https://api.github.com/repos/npm/npm-audit-db/contents/data | jq '.'

NPM security advisories database

Use npm CLI (requires npm v6+)

npm audit --audit-level=moderate

Check specific package audit

npm audit --package-lock-only | jq '.vulnerabilities.PACKAGE'

Third-party security resources

Manual security check

  • Visit https://www.npmjs.com/package/PACKAGE

  • Check Security tab (if available)

  • Review recent issues on GitHub repository (/issues or /security )

  • Check for SECURITY.md file in repo root

  1. Breaking Changes Research

From package.json semver bumps

Compare two versions to estimate breaking changes

npm view PACKAGE versions --json | jq -r '.[] | select(test("VERSION_REGEX"))' | tail -20

Identify major version bumps (likely breaking changes)

npm view PACKAGE versions --json | jq -r '.[] | select(startswith("2.") or startswith("3."))'

From GitHub releases and tags

Extract repository from package metadata

REPO=$(npm view PACKAGE repository.url | sed 's/git+//g' | sed 's/.git$//g' | sed 's|https://github.com/||g')

Get tags using GitHub CLI

gh api repos/${REPO}/tags --paginate | jq -r '.[] | "(.name): (.commit.message)"'

Compare commits between two tags

gh api repos/${REPO}/compare/VERSION1...VERSION2
| jq -r '.commits[] | .commit.message'
| grep -i "breaking|BREAKING CHANGE|⚠️"

From CHANGELOG files

Extract repository from package

REPO=$(npm view PACKAGE repository.url | sed 's/git+//g' | sed 's/.git$//g' | sed 's|https://github.com/||g')

View file directly

gh api repos/${REPO}/contents/CHANGELOG.md --jq .content | base64 -d
| sed -n '/## [VERSION_FROM]/,/## [VERSION_TO]/p'

Or clone repo and extract changelog

gh repo clone ${REPO} /tmp/repo-temp -- --depth=1 cat /tmp/repo-temp/CHANGELOG.md | sed -n '/## [VERSION_FROM]/,/## [VERSION_TO]/p'

Patterns to search for breaking changes:

  • BREAKING CHANGE: or breaking change

  • ⚠️ (warning emoji)

  • Major version bumps (1.0.0 → 2.0.0)

  • API changes in function signatures

  • Removed exports or modules

  • Changed configuration options

  • Dependency removals or upgrades with semver constraints

Manual inspection

  • Visit package repository (link in https://www.npmjs.com/package/PACKAGE )

  • Check CHANGELOG.md, HISTORY.md, or RELEASES.md in repo root

  • Navigate to GitHub Releases section → filter by versions of interest

  • Search commit history for "BREAKING CHANGE" commits between versions

  • Check repository Wiki or Discussions for migration guides

  1. Dependency Impact Analysis

Check what new or updated dependencies come with the package:

Install in temporary directory and check dependencies

npm install PACKAGE@VERSION --no-save --prefix /tmp/research-PACKAGE

List dependency tree

npm ls --prefix /tmp/research-PACKAGE

Find new deps vs current version

diff <(npm ls PACKAGE@OLD_VERSION --json --prefix /tmp/old | jq '.dependencies | keys')
<(npm ls PACKAGE@NEW_VERSION --json --prefix /tmp/new | jq '.dependencies | keys')

  1. Pull Request Research (when needed)

When a release mentions specific PRs or you need to understand code-level changes:

List recent PRs in package repository

Extract repository from package

REPO=$(npm view PACKAGE repository.url | sed 's/git+//g' | sed 's/.git$//g' | sed 's|https://github.com/||g')

List PRs merged between two tags/versions

gh pr list --repo ${REPO} --state merged --search "merged:>=VERSION_DATE" --json number,title,mergedAt,labels

List PRs by milestone (if package uses milestones for releases)

gh pr list --repo ${REPO} --state merged --search "milestone:VERSION" --json number,title,url

View specific PR details and code changes

Get PR details (title, body, labels, review status)

gh pr view PR_NUMBER --repo ${REPO} --json title,body,state,labels,reviews

View PR diff (changed files summary)

gh pr diff PR_NUMBER --repo ${REPO}

View specific file changes in PR

gh pr diff PR_NUMBER --repo ${REPO} -- path/to/file.ts

Get list of changed files

gh pr view PR_NUMBER --repo ${REPO} --json files | jq -r '.files[].path'

Research breaking changes from PR content

Search PR titles/bodies for breaking change keywords

gh pr list --repo ${REPO} --state merged --search "BREAKING in:title,body" --json number,title,url

View PR conversation and review comments (identify concerns/warnings)

gh pr view PR_NUMBER --repo ${REPO} --comments

Check if PR has breaking change label

gh pr view PR_NUMBER --repo ${REPO} --json labels | jq -r '.labels[] | select(.name | test("breaking"; "i")) | .name'

Find PRs between two releases

Get commit range between versions

COMMITS=$(gh api repos/${REPO}/compare/v${OLD_VERSION}...v${NEW_VERSION} --jq '.commits[].sha')

Find PRs associated with those commits

for commit in $COMMITS; do gh api "repos/${REPO}/commits/${commit}/pulls" --jq '.[].number' done | sort -u | while read pr; do gh pr view $pr --repo ${REPO} --json number,title,url done

When to research PRs

  • Release notes reference specific PR numbers → View those PRs for detailed context

  • Breaking changes mentioned without details → Search for related PRs

  • Major refactors or API changes → Review code changes to understand impact

  • Security fixes → Verify the fix and check if it affects your usage patterns

  • Undocumented changes → Find PRs between versions to discover unlisted changes

  • Migration guidance needed → Look for migration-related PRs or discussions

  1. Peer Dependency Warnings

Identify peer dependency requirements:

npm view PACKAGE@VERSION peerDependencies --json

Check if current project satisfies peer deps

npm ls --depth=0 REQUIRED_PEER_DEP

Structured Research Template

Use this checklist for comprehensive research:

NPM Research: PACKAGE (OLD_VERSION → NEW_VERSION)

Release Information

  • Current stable version: X.Y.Z
  • Target version: X.Y.Z
  • Release date: YYYY-MM-DD
  • Maintenance status: (active/inactive/deprecated)

Changelog Summary

  • Key features added: ...
  • Bug fixes: ...
  • Performance improvements: ...
  • Deprecated features: ...

Breaking Changes

  • Major version bump: Yes / No
  • Critical breaking changes:
    • ...
  • Migration guide: Link to docs or GitHub discussion
  • Related PRs reviewed: #123, #456 (if applicable)

Security Advisories

  • Known vulnerabilities in current version: None / CVE-LIST
  • Known vulnerabilities in target version: None / CVE-LIST
  • Security advisory links: ...
  • Security fix PRs: (if applicable)

Dependency Changes

  • New dependencies: (list major ones)
  • Removed dependencies: (list major ones)
  • Updated dependency versions: (check for conflicts)
  • Peer dependency requirements: (verify compatibility)

Pull Requests Reviewed (if needed)

  • PR #XXX: Brief summary of changes and impact
  • PR #YYY: Brief summary of changes and impact
  • Code changes affecting us: (specific files/functions if relevant)

Codebase Impact

  • Need code changes: Yes / No
    • Details: ...
  • Need configuration changes: Yes / No
    • Details: ...
  • Estimated risk level: Low / Medium / High
  • Recommendation: Safe to upgrade / Review carefully / Wait

References

Quick Commands Reference

Task Command

Get latest version npm view PACKAGE version

List all versions npm view PACKAGE versions --json | jq '.[]'

Get package info npm view PACKAGE --json

Check vulnerabilities npm audit --audit-level=moderate

Read changelog npm view PACKAGE readme | grep -i changelog

Get repo URL npm view PACKAGE repository.url

Test install npm install PACKAGE@VERSION --dry-run

Check peer deps npm view PACKAGE@VERSION peerDependencies

List merged PRs gh pr list --repo OWNER/REPO --state merged

View PR details gh pr view PR_NUMBER --repo OWNER/REPO

View PR diff gh pr diff PR_NUMBER --repo OWNER/REPO

Search PRs gh pr list --repo OWNER/REPO --search "QUERY"

Integration with Fusion Framework

When used in Dependabot PR handler

The npm-research skill feeds into dependabot-pr-handler Step 4 (Research Dependencies) to provide:

  • Changelog summary for research comment

  • Security advisories for risk assessment

  • Breaking changes for code impact analysis

  • Dependency blast radius combined with pnpm-dependency-analysis

  • PR-level code changes when release notes lack details or breaking changes need investigation

Recommended workflow

  • Run npm-research to gather data (changelog, security, versions)

  • If needed: Use gh CLI to research specific PRs mentioned in release notes

  • If needed: View code-level changes from critical PRs (breaking changes, security fixes)

  • Feed findings to pnpm-dependency-analysis for workspace impact

  • Use results to populate research comment template

  • Inform decision on whether code changes are needed

  • Gate merge approval on security and breaking change assessment

Guardrails

  • Always check date: Release dates reveal maintenance activity and urgency

  • Cross-reference sources: Compare npm.js info, GitHub, and CVE databases

  • Test locally first: Use --dry-run or test in isolated environment before full upgrade

  • Document findings: Always provide research summary for team review

  • Check peer dependencies: Ensure compatibility with entire dependency tree

  • Verify deprecation status: Don't upgrade to deprecated versions without reason

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Research

pnpm-dependency-analysis

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

dependabot-pr-handler

No summary provided by upstream source.

Repository SourceNeeds Review
General

make-skill-template

No summary provided by upstream source.

Repository SourceNeeds Review
General

rebase

No summary provided by upstream source.

Repository SourceNeeds Review