Generate a dependency upgrade report for outdated packages. Detects the project's package managers (uv/Python and npm/Node), checks for outdated direct dependencies, fetches changelogs from the internet, and produces a skimmable markdown report with breaking change warnings. Use when the user asks to "check for outdated dependencies", "dependency upgrade report", "what needs updating", "review dependency updates", "monthly dependency audit", or any variation of checking/reporting on outdated packages.
Generate comprehensive, skimmable markdown reports for outdated direct dependencies. Supports Python (uv) and Node (npm) projects. Produces separate report files per package manager.
Check the project root for configuration files:
pyproject.toml exists AND uv is available on PATHpackage.json exists AND npm is available on PATHRun for whichever managers are detected. If neither is found, inform the user.
Run: uv tree --outdated --all-groups --depth 2
This shows the full dependency tree with outdated markers. Parse the output to identify packages with version mismatches.
Run: npm outdated --json
This returns a JSON object keyed by package name with current, wanted, and latest versions.
Only report on dependencies that are directly declared by the project:
pyproject.toml and extract package names from [project.dependencies], [project.optional-dependencies.*], and all [dependency-groups.*] sections. Map these to the dependency groups they belong to (e.g., "main", "dev", "test").package.json and extract package names from dependencies, devDependencies, peerDependencies, and optionalDependencies. Map these to their respective groups.Discard any outdated transitive dependencies not directly declared.
For each outdated direct dependency, use web search to find the changelog or release notes. Typical sources:
Extract the relevant entries between the current version and the latest version. Summarize concisely but include enough detail to skim. If a changelog cannot be found, note it as "Changelog not found" with a link to the package's homepage.
Scan the changelog entries for:
For each breaking change found, assess whether it could affect the current project by:
Output separate reports per package manager:
tmp/DEPS_UPGRADE_REPORT_PYTHON.mdtmp/DEPS_UPGRADE_REPORT_NODE.mdIf only one package manager is detected, still use the suffixed filename for consistency.
Create the tmp/ directory if it doesn't exist.
Use the report template in references/report-template.md for the exact output format.
<details> blocks for long changelog excerpts (more than ~30 lines)