ln-711-npm-upgrader
Type: L3 Worker
Category: 7XX Project Bootstrap
Parent: ln-710-dependency-upgrader
Upgrades Node.js dependencies using npm, yarn, or pnpm with automatic breaking change detection and migration.
Overview
| Aspect |
Details |
| Input |
Project path, package manager type |
| Output |
Updated package.json, lock file, migration report |
| Supports |
npm, yarn (classic & berry), pnpm |
Workflow
See diagram.html for visual workflow.
Phases: Pre-flight → Analyze → Security Audit → Check Outdated → Identify Breaking → Apply Upgrades → Apply Migrations → Verify Build → Report
Phase 0: Pre-flight Checks
| Check |
Required |
Action if Missing |
| Lock file (package-lock.json, yarn.lock, pnpm-lock.yaml) |
Yes |
Warn and run npm install first |
| package.json |
Yes |
Block upgrade |
Workers assume coordinator (ln-710) already verified git state and created backup.
Phase 1: Analyze Dependencies
Read package.json and categorize dependencies for upgrade priority.
Dependency Categories
| Category |
Examples |
Priority |
| framework |
react, vue, angular |
2 (after peer deps) |
| build |
vite, webpack, esbuild |
3 |
| ui |
@radix-ui/*, tailwindcss |
4 |
| state |
@tanstack/react-query, zustand |
5 |
| utils |
lodash, date-fns |
6 |
| dev |
eslint, prettier, typescript |
7 |
| peer |
@types/*, typescript |
1 (first) |
Phase 2: Security Audit
Commands
| Manager |
Command |
| npm |
npm audit --audit-level=high |
| yarn |
yarn audit --level high |
| pnpm |
pnpm audit --audit-level high |
Actions
| Severity |
Action |
| Critical |
Block upgrade, report |
| High |
Warn, continue |
| Moderate/Low |
Log only |
Phase 3: Check Outdated
Commands
| Manager |
Command |
| npm |
npm outdated --json |
| yarn |
yarn outdated --json |
| pnpm |
pnpm outdated --json |
Phase 4: Identify Breaking Changes
Detection
- Compare current vs latest major versions
- Check breaking_changes_patterns.md
- Query Context7/Ref for migration guides
Common Breaking Changes
MANDATORY READ: Load breaking_changes_patterns.md for full patterns.
| Package |
Breaking Version |
Key Changes |
| react |
18 → 19 |
JSX Transform, ref as prop |
| vite |
5 → 6 |
ESM only, Node 18+ |
| eslint |
8 → 9 |
Flat config required |
| tailwindcss |
3 → 4 |
CSS-based config |
| typescript |
5.4 → 5.5+ |
Stricter inference |
Phase 5: Apply Upgrades
Upgrade Order
- Peer dependencies (TypeScript, @types/*)
- Framework packages (React, Vue core)
- Build tools (Vite, webpack)
- UI libraries (after framework)
- Utilities (lodash, date-fns)
- Dev dependencies (testing, linting)
Commands
| Manager |
Command |
| npm |
npm install <package>@latest --save |
| yarn |
yarn add <package>@latest |
| pnpm |
pnpm add <package>@latest |
Peer Dependency Conflicts
| Situation |
Solution |
| ERESOLVE error |
npm install --legacy-peer-deps |
| Still fails |
npm install --force (last resort) |
MCP Tools for Migration Search
Priority Order (Fallback Strategy)
| Priority |
Tool |
When to Use |
| 1 |
mcp__context7__query-docs |
First choice for library docs |
| 2 |
mcp__Ref__ref_search_documentation |
Official docs and GitHub |
| 3 |
WebSearch |
Latest info, community solutions |
Context7 Usage
| Step |
Tool |
Parameters |
| 1. Find library |
mcp__context7__resolve-library-id |
libraryName: "react", query: "migration guide" |
| 2. Query docs |
mcp__context7__query-docs |
libraryId: "/facebook/react", query: "react 18 to 19 migration" |
MCP Ref Usage
| Action |
Tool |
Query Example |
| Search |
mcp__Ref__ref_search_documentation |
"react 19 migration guide breaking changes" |
| Read |
mcp__Ref__ref_read_url |
URL from search results |
WebSearch Fallback
Use when Context7/Ref return no results:
"<package> <version> breaking changes migration 2025"
"<package> <error message> fix stackoverflow"
Phase 6: Apply Migrations
Process
- Use MCP tools (see section above) to find migration guide
- Apply automated code transforms via Edit tool
- Log manual migration steps for user
Do NOT apply hardcoded migrations. Always fetch current guides via MCP tools.
Phase 7: Verify Build
Commands
| Check |
Command |
| TypeScript |
npm run check or npx tsc --noEmit |
| Build |
npm run build |
| Tests |
npm test (if available) |
On Failure
- Identify failing package from error
- Search Context7/Ref for fix
- If unresolved: rollback package, continue with others
Phase 8: Report Results
Report Schema
| Field |
Description |
| project |
Project path |
| packageManager |
npm, yarn, or pnpm |
| duration |
Total time |
| upgrades.major[] |
Breaking changes applied |
| upgrades.minor[] |
Feature updates |
| upgrades.patch[] |
Bug fixes |
| migrations[] |
Applied migrations |
| skipped[] |
Already latest |
| buildVerification |
PASSED or FAILED |
| warnings[] |
Non-blocking issues |
Configuration
Options:
# Upgrade scope
upgradeType: major # major | minor | patch
# Breaking changes
allowBreaking: true
autoMigrate: true
queryMigrationGuides: true # Use Context7/Ref
# Security
auditLevel: high # none | low | moderate | high | critical
minimumReleaseAge: 14 # days
# Peer dependencies
legacyPeerDeps: false
force: false
# Verification
runBuild: true
runTests: false
runTypeCheck: true
# Rollback
createBackup: true
rollbackOnFailure: true
Error Handling
| Error |
Cause |
Solution |
| ERESOLVE |
Peer dep conflict |
--legacy-peer-deps |
| ENOENT |
Missing lock file |
npm install first |
| Build fail |
Breaking change |
Apply migration via Context7 |
| Type errors |
Version mismatch |
Update @types/* |
Rollback
Restore package.json and lock file from git, then run clean install to restore previous state.
References
Version: 1.1.0
Last Updated: 2026-01-10
1---2name: ln-711-npm-upgrader-23description: Upgrades npm/yarn/pnpm dependencies with breaking change handling4---56# ln-711-npm-upgrader78**Type:** L3 Worker9**Category:** 7XX Project Bootstrap10**Parent:** ln-710-dependency-upgrader1112Upgrades Node.js dependencies using npm, yarn, or pnpm with automatic breaking change detection and migration.1314---1516## Overview1718| Aspect | Details |19|--------|---------|20| **Input** | Project path, package manager type |21| **Output** | Updated package.json, lock file, migration report |22| **Supports** | npm, yarn (classic & berry), pnpm |2324---2526## Workflow2728See [diagram.html](diagram.html) for visual workflow.2930**Phases:** Pre-flight → Analyze → Security Audit → Check Outdated → Identify Breaking → Apply Upgrades → Apply Migrations → Verify Build → Report3132---3334## Phase 0: Pre-flight Checks3536| Check | Required | Action if Missing |37|-------|----------|-------------------|38| Lock file (package-lock.json, yarn.lock, pnpm-lock.yaml) | Yes | Warn and run `npm install` first |39| package.json | Yes | Block upgrade |4041> Workers assume coordinator (ln-710) already verified git state and created backup.4243---4445## Phase 1: Analyze Dependencies4647Read package.json and categorize dependencies for upgrade priority.4849### Dependency Categories5051| Category | Examples | Priority |52|----------|----------|----------|53| framework | react, vue, angular | 2 (after peer deps) |54| build | vite, webpack, esbuild | 3 |55| ui | @radix-ui/*, tailwindcss | 4 |56| state | @tanstack/react-query, zustand | 5 |57| utils | lodash, date-fns | 6 |58| dev | eslint, prettier, typescript | 7 |59| peer | @types/*, typescript | 1 (first) |6061---6263## Phase 2: Security Audit6465### Commands6667| Manager | Command |68|---------|---------|69| npm | `npm audit --audit-level=high` |70| yarn | `yarn audit --level high` |71| pnpm | `pnpm audit --audit-level high` |7273### Actions7475| Severity | Action |76|----------|--------|77| Critical | Block upgrade, report |78| High | Warn, continue |79| Moderate/Low | Log only |8081---8283## Phase 3: Check Outdated8485### Commands8687| Manager | Command |88|---------|---------|89| npm | `npm outdated --json` |90| yarn | `yarn outdated --json` |91| pnpm | `pnpm outdated --json` |9293---9495## Phase 4: Identify Breaking Changes9697### Detection98991. Compare current vs latest major versions1002. Check [breaking_changes_patterns.md](../ln-710-dependency-upgrader/references/breaking_changes_patterns.md)1013. Query Context7/Ref for migration guides102103### Common Breaking Changes104105**MANDATORY READ:** Load [breaking_changes_patterns.md](../ln-710-dependency-upgrader/references/breaking_changes_patterns.md) for full patterns.106107| Package | Breaking Version | Key Changes |108|---------|------------------|-------------|109| react | 18 → 19 | JSX Transform, ref as prop |110| vite | 5 → 6 | ESM only, Node 18+ |111| eslint | 8 → 9 | Flat config required |112| tailwindcss | 3 → 4 | CSS-based config |113| typescript | 5.4 → 5.5+ | Stricter inference |114115---116117## Phase 5: Apply Upgrades118119### Upgrade Order1201211. **Peer dependencies** (TypeScript, @types/*)1222. **Framework packages** (React, Vue core)1233. **Build tools** (Vite, webpack)1244. **UI libraries** (after framework)1255. **Utilities** (lodash, date-fns)1266. **Dev dependencies** (testing, linting)127128### Commands129130| Manager | Command |131|---------|---------|132| npm | `npm install <package>@latest --save` |133| yarn | `yarn add <package>@latest` |134| pnpm | `pnpm add <package>@latest` |135136### Peer Dependency Conflicts137138| Situation | Solution |139|-----------|----------|140| ERESOLVE error | `npm install --legacy-peer-deps` |141| Still fails | `npm install --force` (last resort) |142143---144145## MCP Tools for Migration Search146147### Priority Order (Fallback Strategy)148149| Priority | Tool | When to Use |150|----------|------|-------------|151| 1 | mcp__context7__query-docs | First choice for library docs |152| 2 | mcp__Ref__ref_search_documentation | Official docs and GitHub |153| 3 | WebSearch | Latest info, community solutions |154155### Context7 Usage156157| Step | Tool | Parameters |158|------|------|------------|159| 1. Find library | mcp__context7__resolve-library-id | libraryName: "react", query: "migration guide" |160| 2. Query docs | mcp__context7__query-docs | libraryId: "/facebook/react", query: "react 18 to 19 migration" |161162### MCP Ref Usage163164| Action | Tool | Query Example |165|--------|------|---------------|166| Search | mcp__Ref__ref_search_documentation | "react 19 migration guide breaking changes" |167| Read | mcp__Ref__ref_read_url | URL from search results |168169### WebSearch Fallback170171Use when Context7/Ref return no results:172- `"<package> <version> breaking changes migration 2025"`173- `"<package> <error message> fix stackoverflow"`174175---176177## Phase 6: Apply Migrations178179### Process1801811. Use MCP tools (see section above) to find migration guide1822. Apply automated code transforms via Edit tool1833. Log manual migration steps for user184185> Do NOT apply hardcoded migrations. Always fetch current guides via MCP tools.186187---188189## Phase 7: Verify Build190191### Commands192193| Check | Command |194|-------|---------|195| TypeScript | `npm run check` or `npx tsc --noEmit` |196| Build | `npm run build` |197| Tests | `npm test` (if available) |198199### On Failure2002011. Identify failing package from error2022. Search Context7/Ref for fix2033. If unresolved: rollback package, continue with others204205---206207## Phase 8: Report Results208209### Report Schema210211| Field | Description |212|-------|-------------|213| project | Project path |214| packageManager | npm, yarn, or pnpm |215| duration | Total time |216| upgrades.major[] | Breaking changes applied |217| upgrades.minor[] | Feature updates |218| upgrades.patch[] | Bug fixes |219| migrations[] | Applied migrations |220| skipped[] | Already latest |221| buildVerification | PASSED or FAILED |222| warnings[] | Non-blocking issues |223224---225226## Configuration227228```yaml229Options:230 # Upgrade scope231 upgradeType: major # major | minor | patch232233 # Breaking changes234 allowBreaking: true235 autoMigrate: true236 queryMigrationGuides: true # Use Context7/Ref237238 # Security239 auditLevel: high # none | low | moderate | high | critical240 minimumReleaseAge: 14 # days241242 # Peer dependencies243 legacyPeerDeps: false244 force: false245246 # Verification247 runBuild: true248 runTests: false249 runTypeCheck: true250251 # Rollback252 createBackup: true253 rollbackOnFailure: true254```255256---257258## Error Handling259260| Error | Cause | Solution |261|-------|-------|----------|262| ERESOLVE | Peer dep conflict | --legacy-peer-deps |263| ENOENT | Missing lock file | npm install first |264| Build fail | Breaking change | Apply migration via Context7 |265| Type errors | Version mismatch | Update @types/* |266267### Rollback268269Restore package.json and lock file from git, then run clean install to restore previous state.270271---272273## References274275- [breaking_changes_patterns.md](../ln-710-dependency-upgrader/references/breaking_changes_patterns.md)276- [npm_peer_resolution.md](references/npm_peer_resolution.md)277278---279280**Version:** 1.1.0281**Last Updated:** 2026-01-10