umbrella-npm-safe-upgrade
Analyze or apply NPM upgrades with exclusions, Node and peer compatibility, coordinated toolchain groups, reproducible lockfiles and build verification.
SKILL.md.ai-shared/skills/umbrella-npm-safe-upgrade/SKILL.md
GitHubSafely Upgrade NPM Packages
Contract and operating modes
Read .ai-shared/bundles/umbrella/frontend/contract.md and the optional repository umbrella-frontend.json. Apply only this skill's scope. Analyze reports without changing application files; Apply implements requested setup/repairs; Verify checks the result. An explicit setup/fix request authorizes Apply after inspecting existing changes; do not add a second approval step. Upgrades and source migrations are separate unless requested.
Report selected projects/profile, findings and exceptions, changed files, actual checks and unresolved validation. Missing tools/credentials mean incomplete verification, not success. Use the report vocabulary from the contract.
Workflow
- Read
upgradePolicyinumbrella-frontend.json, existing package-upgrade policy, lock ownership and uncommitted changes. Limit scope as requested. Preserve exact/range conventions and deliberate preview policy; otherwise exclude prereleases. - Query configured registries for versions, engines, peers and migration notes. Distinguish npm-outdated's updates-available status from authentication/network failure. Registry failures produce unknown candidates, never an up-to-date verdict. Do not print auth settings.
- Evaluate compatible groups: Webpack/CLI/loaders/plugins; TypeScript/ts-loader/types; Sass/gulp-sass/sass-loader; PostCSS/plugins; Bootstrap/shared helpers. Coordinated does not mean identical version numbers or latest versions.
- Analyze resolution in an isolated disposable copy preserving real workspace layout, lock and overrides. Do not rewrite the user's lock during Analyze. Respect the repository's lifecycle-script policy. Record candidate and resolved versions, constraints and required migrations.
- Apply accepted groups and regenerate the owning lock. Preserve exclusions, private packages, overrides and intentional differences. No implicit bundler migration, audit-force fix or baseline downgrade. Major/source migrations require the corresponding task scope.
- Verify
npm ci,npm ls --all, typecheck, development/release assets, scoped compilation and affected .NET builds. Compare graph failures to baseline. Revert only this operation's failed-group changes, preserving unrelated edits; verify lock/manifest agreement after reverting. Bound retries to inspected alternatives instead of forcing resolution repeatedly.
Output
Report successful, skipped, blocked and unknown groups, versions, actual checks and required follow-up. An install-only result is not a verified application upgrade. Registry failure must remain visible.
.NET analyzer compatibility
If the requested work includes C# or Razor changes, read .ai-shared\bundles\umbrella\analyzer-compatibility.md and verify affected projects with their installed analyzers. For read-only audits, use it only as review guidance. Pure NPM/JavaScript/SCSS edits do not require unrelated .NET source changes.