Update dependencies
Update every dependency to its latest version, recursively across the workspace, then prove the project still works.
1. See what's outdated
pnpm outdated / npm outdated / yarn outdated. Cover every workspace package, not just
the root.
2. Read the changelog before you bump
Validate every major and minor change. Never rely on training data for what a version did.
gh api repos/<org>/<repo>/releases- fastest source of real release notesctx7CLI for migration guides and current API docs- web search as fallback
Then grep the codebase for what actually changed. A removed field nobody uses is not a breaking change.
3. Hold back what the framework pins
If a framework caps a dependency through its peers or transitive deps (Next.js on ESLint, say), skip that upgrade. Never force it with overrides or resolutions - report it instead.
4. Apply and verify
Run the upgrade, then run typecheck, tests, lint, and build etc. depending on project.
5. Fix
- Easy fix → just do it.
- Large breaking change → stop and ask before rewriting.
- Something broke → check whether the old version broke too before blaming the update. Pre-existing breakage is a separate report, not a fix.
6. Report
Short and concise, no jargon, no changelog dumps. Only:
- What was upgraded - majors and anything notable
- What you fixed and why
- What is blocked, held back, or needs a decision
- New features worth adopting: what it does and how this project would use it