Upgrade project dependencies with breaking change research for major version updates. Use when the user asks to \"update dependencies\", \"upgrade packages\", \"upgrade dependencies\", \"update deps\", \"upgrade deps\", \"update npm deps\", \"update Swift packages\", \"cargo update\", \"go get updates\", \"bundle update\", or \"pip upgrade\".
npx skills add https://github.com/tobihagemann/turbo --skill update-dependencies
Upgrade project dependencies, researching breaking changes for major version updates.
Optional filter: $ARGUMENTS (e.g., react, Alamofire, serde tokio)
Run the /review-dependencies skill to detect package managers and discover available updates. If no updates are available, stop.
Present a summary showing:
Use AskUserQuestion for upgrade strategy:
Header: "Strategy"
Options:
For each package with a major version update:
Identify all major versions between current and target. For example:
react: 17.0.2 → 19.0.0 → research v18 AND v19 breaking changesAlamofire: 4.9.1 → 6.0.0 → research v5 AND v6 breaking changesSearch for migration documentation:
WebSearch: "[package-name] v[X] migration guide"
WebSearch: "[package-name] v[X] breaking changes"
Common sources: GitHub releases page, official docs, changelog files.
Identify: API changes (renamed/removed functions), configuration changes, peer/transitive dependency requirements, behavioral changes, deprecated features now removed.
Use Grep to find usage of deprecated or changed APIs. Document which files are affected and what changes are needed.
For each major update, present:
Use AskUserQuestion to confirm:
Header: "Confirm"
Options:
If "Show details" selected, display full migration research, then ask again.
First upgrade minor and patch only using the package manager's semver-respecting update command, then run tests. If tests fail, stop before proceeding with major upgrades.
Update the manifest file (version constraint) and run the install/resolve command. For package managers with a dedicated upgrade command, use it. For others (Swift PM, Maven, Gradle), edit the manifest directly.
Some ecosystems provide automated migration tools:
| Ecosystem | Migration tools |
|---|---|
| React | npx react-codemod [transform] |
| Next.js | npx @next/codemod [transform] |
| Jest | npx jest-codemods |
| Angular | npx ng update |
| Rust | cargo fix for edition migrations |
| Python | pyupgrade, python-modernize |
For changes requiring manual intervention:
If configuration format changed, read current config, transform to new format, write updated config.
Some packages pin their version outside the manifest, beyond the package manager's reach, so a green local run hides the drift. For every upgraded package (major, minor, or patch), search CI and container configs for the old version string with the Grep tool (across .github/, Dockerfile*, docker-compose*, and .devcontainer/) and bump it in lockstep:
@playwright/test version.Dockerfile, .devcontainer/, and docker-compose.yml.actions/setup-node node-version, setup-python, toolchain files).Run the project's test, build, and lint commands. Detect which commands are available from the project's config files and scripts. Use project-level task runners when present (Makefile, Taskfile, justfile, npm scripts, etc.).
Summarize: packages upgraded (count), breaking changes addressed (count), files modified (count), test results, remaining manual tasks.
If any migrations could not be automated:
If the discovery tool is not installed, /review-dependencies will note it. Fall back to manual version checking via WebSearch.
If WebSearch/WebFetch fails: retry with alternative search terms, provide manual research links, proceed with caution warning that migration research may be incomplete.
If official migration docs are not found: check the package's repository for issues and discussions, note as "migration research incomplete — proceed with caution."
Comprehensive toolkit for creating, analyzing, and visualizing complex networks and graphs in Python. Use when working with network/graph data structures, analyzing relationships between entities, computing graph algorithms (shortest paths, centrality, clustering), detecting communities, generating synthetic networks, or visualizing network topologies. Applicable to social networks, biological networks, transportation systems, citation networks, and any domain involving pairwise relationships.
Interact with Zotero reference management libraries using the pyzotero Python client. Retrieve, create, update, and delete items, collections, tags, and attachments via the Zotero Web API v3. Use this skill when working with Zotero libraries programmatically, managing bibliographic references, exporting citations, searching library contents, uploading PDF attachments, or building research automation workflows that integrate with Zotero.
Comprehensive toolkit for creating, analyzing, and visualizing complex networks and graphs in Python. Use when working with network/graph data structures, analyzing relationships between entities, computing graph algorithms (shortest paths, centrality, clustering), detecting communities, generating synthetic networks, or visualizing network topologies. Applicable to social networks, biological networks, transportation systems, citation networks, and any domain involving pairwise relationships.
Create, analyze, and visualize complex networks and graphs in Python with NetworkX. Use when working with network/graph data structures, computing graph algorithms (shortest paths, centrality, clustering), detecting communities, generating synthetic networks (random, scale-free, small-world), reading/writing graph file formats, or drawing network topologies. Common applications include social, biological, transportation, and citation networks.
Use NeuroKit2 to build or audit reproducible research workflows for physiological time-series preprocessing, event/interval analysis, multimodal alignment, variability, and complexity. Trigger when code imports neurokit2 or needs its current APIs, schemas, and method-aware validation—not for diagnosis or device validation.
Interact with Zotero reference management libraries using the pyzotero Python client. Retrieve, create, update, and delete items, collections, tags, and attachments via the Zotero Web API v3. Use this skill when working with Zotero libraries programmatically, managing bibliographic references, exporting citations, searching library contents, uploading PDF attachments, or building research automation workflows that integrate with Zotero.
Comprehensive toolkit for creating, analyzing, and visualizing complex networks and graphs in Python. Use when working with network/graph data structures, analyzing relationships between entities, computing graph algorithms (shortest paths, centrality, clustering), detecting communities, generating synthetic networks, or visualizing network topologies. Applicable to social networks, biological networks, transportation systems, citation networks, and any domain involving pairwise relationships.
A practical, jargon-free guide to fp-ts functional programming - the 80/20 approach that gets results without the academic overhead. Use when writing TypeScript with fp-ts library.
Take tobihagemann/update-dependencies from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.
The instructions reference npx.
Without those the skill loads but fails at the first command.