brainstorming
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or planning anything new, in software or out of it (a talk, a business, a renovation).
updating-npm-packageSafely update an npm package by checking npmjs.com for the latest version, reading release notes, and handling minor vs major upgrades differently. For minor updates, just do it. For major updates, find the upgrade guide, validate breaking changes, and produce a detailed migration report.
Independent GitHub snapshot · Automated classification · Original documentation governs
Use this skill when the user asks to update, upgrade, or bump a specific npm dependency.
Check the current version — read package.json to find the installed version:
npm ls <package-name>
Find the latest version on npm — fetch the package info:
npm view <package-name> versions --json
npm view <package-name> dist-tags --json
This gives you the latest tag and all published versions.
Determine the update type — compare current version to latest:
For patch or minor updates — just do it:
npm install <package-name>@latest
Run the build and tests to make sure nothing broke:
npm run build && npm test
If everything passes, commit and report what changed.
For major updates — do a thorough investigation first:
a. Fetch the changelog and release notes — check the package's GitHub repo for CHANGELOG.md, MIGRATION.md, or release notes. Use the web to find the official upgrade guide:
Search: "<package-name> v<major> migration guide" OR "<package-name> v<major> upgrade guide"
b. Read the breaking changes — identify every breaking change between the current and target version. Common things to check:
c. Scan the codebase for impact — search for every usage of the package:
# Find all imports
grep -r "from ['\"]<package-name>" src/
grep -r "require(['\"]<package-name>" src/
For each usage, check if it's affected by a breaking change.
d. Apply the update:
npm install <package-name>@latest
e. Fix breaking changes — update each affected usage based on the migration guide. Apply changes file by file.
f. Verify — run the full suite:
npm run lint && npx tsc --noEmit && npm test && npm run build
g. Produce a migration report — summarize:
## Package Update: <package-name> v<old> → v<new> (Major)
### Breaking Changes Applied
- `oldFunction()` renamed to `newFunction()` — updated in 3 files
- Config format changed from `.js` to `.config.ts` — migrated
- Dropped support for Node 16 — verified we're on Node 20
### Files Modified
- src/lib/client.ts — updated import and function call
- src/config/settings.ts — migrated config format
- package.json — bumped version
### Validation
- ✅ Lint passes
- ✅ TypeScript compiles
- ✅ All 47 tests pass
- ✅ Build succeeds
npm install will warn about mismatches.npx @next/codemod), use it instead of manual migration.package-lock.json) changes are expected — commit them with the update.