Agent skill

Upgrade Packages

by platformplatform in platformplatform/PlatformPlatform

Upgrade all backend (.NET/NuGet), frontend (npm), and GitHub Actions dependencies to their latest versions, in that fixed order.

MITAuto-check passedDevOps & Cloud

Install Upgrade Packages

skills CLI
$ npx skills add platformplatform/PlatformPlatform --skill upgrade-packages -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install platformplatform/PlatformPlatform upgrade-packages --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/platformplatform/PlatformPlatform.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/upgrade-packages .claude/skills/upgrade-packages && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
upgrade-packages
GitHub stars
441
Token cost
~2.7k tokens
SKILL.md length
1,408 words
Files
1
Skills in repo
18
Repo updated
First seen
Licence
MIT

At a glance

Upgrade all backend (.NET/NuGet), frontend (npm), and GitHub Actions dependencies to their latest versions, in that fixed order.

  • Works in 7 steps: Use update-packages for every bump.… → The CLI must produce a correct outcome.… → Order is fixed and never reordered:… → …
  • Tasks that involve CI/CD
  • SKILL.md covers How To Drive The CLI, Permanent Exceptions, Principles and Fixing A Regression, plus 2 more sections
  • Calls dotnet, git and npm

What it does

Upgrade Packages is an agent skill from platformplatform/PlatformPlatform. Upgrade all backend (.NET/NuGet), frontend (npm), and GitHub Actions dependencies to their latest versions, in that fixed order. Drives the developer CLI's update-packages command, parses its quiet dry-run output to separate trivial bumps from majors, ships trivial bumps as one bulk commit per side, and gives every major (and any code/config change) its own clean commit. Detects required toolchain installs (e.g. a new .NET SDK that needs sudo) and asks the user to run them up front so the backend upgrades first…

Its SKILL.md is about 2.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in DevOps & Cloud, covering CI/CD. It works with .NET, npm and GitHub Actions. The repository describes itself as: A platform designed for building enterprise-grade, multi-tenant products using Azure, .NET, React, TypeScript, Infrastructure as Code, etc. The licence is MIT.

When your agent uses it

  • Tasks that involve CI/CD

Example prompts

  • “/upgrade-packages”

Requirements

  • Node.js
  • Docker

Workflow steps

7 steps, taken from the first numbered list in SKILL.md.

  1. Use update-packages for every bump. Never hand-edit package.json / Directory.Packages.props or run raw npm / dotnet to move a version.
  2. The CLI must produce a correct outcome. If it doesn't, fix the CLI in developer-cli/Commands/UpdatePackagesCommand.cs, and commit that fix…
  3. Order is fixed and never reordered: backend (.NET) first, then frontend, then GitHub Actions last. If the backend is blocked because a new…
  4. Atomic commits. Trivial bumps (patch + minor) go into one bulk commit per side. Every major — and anything needing a code change, config…
  5. Research majors online. Read the changelog, release notes, and GitHub issues for every major before applying it. If a new major exposes…
  6. Verify smartly, and gate each phase. build + lint per trivial commit; add e2e after majors that touch runtime, build tooling, or i18n; run…
  7. Push through. When an upgrade misbehaves, figure out why. Reverting is the last resort, only after evidence the version is genuinely…

What it can do on your machine

Read from SKILL.md and the folder at commit 269de1c. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • dotnet
    • git
    • npm
    • brew
    • winget

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git and npm, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Upgrade Packages loads about 2.7k tokens when it runs. Until then it costs about 147 tokens; SKILL.md has 1,408 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~147
When it runs · the whole SKILL.md, loaded when a task matches
~2.7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from platformplatform/PlatformPlatform at commit 269de1c, republished under its MIT licence (© platformplatform). 1,408 words, ~2,721 tokens.

Download SKILL.mdSave it as .claude/skills/upgrade-packages/SKILL.md (or your agent's skills folder).
name
upgrade-packages
description
Upgrade all backend (.NET/NuGet), frontend (npm), and GitHub Actions dependencies to their latest versions, in that fixed order. Drives the developer CLI's update-packages command, parses its quiet dry-run output to separate trivial bumps from majors, ships trivial bumps as one bulk commit per side, and gives every major (and any code/config change) its own clean commit. Detects required toolchain installs (e.g. a new .NET SDK that needs sudo) and asks the user to run them up front so the backend upgrades first. Fixes the CLI itself when it produces a wrong outcome.

Upgrade Packages

Bring all backend, frontend, and GitHub Actions dependencies to their latest versions. The project always runs the latest version of every package. Don't quit, give up, or recommend reverting just because something is non-trivial — research, debug, push through. The only acceptable reasons to skip an upgrade are the permanent exceptions below.

How To Drive The CLI

Every NuGet and npm bump goes through the developer CLI. Run it directly (the Bash hook allows dotnet run --project developer-cli, and the CLI runs its own dotnet/npm subprocesses without tripping the hook):

bash
dotnet run --project developer-cli -- update-packages [--backend|--frontend] [--dry-run] [--exclude <csv>] [--include-major-framework-updates] --quiet

Always pass --quiet. In quiet mode the command prints no tables or banners — only parseable plain-text lines:

<side> <patch|minor|major> <package> <current> -> <new> [<extra>]
<side> restricted <package> <current> (latest <X> is a new major, pinned)
<side> excluded <package> <current>
summary <side> patch=<n> minor=<n> major=<n> excluded=<n> uptodate=<n>

<side> is backend or frontend. restricted lines are the permanent exceptions (pinned to their current major by the CLI). Use a --dry-run --quiet run to plan; parse the major lines to get the package names that need their own commit.

Run the build, format, lint, test, and e2e skills for all verification (never raw dotnet/npm).

Permanent Exceptions

These never move to a new major. The CLI enforces them itself (RestrictedNuGetPackages in developer-cli/Commands/UpdatePackagesCommand.cs), so you do not pass --exclude for them — they show up as restricted lines in the dry-run and are pinned to the latest version within their current major:

  • MediatR, FluentAssertions — later majors changed licensing/APIs.
  • Microsoft.ApplicationInsights, Microsoft.ApplicationInsights.AspNetCore — the next major drops PageView tracking as part of moving to OpenTelemetry; the codebase uses PageView heavily and that migration is a separate effort.

Note: frontend @microsoft/applicationinsights-* packages are not restricted and upgrade normally. .NET, Node.js, and @types/node stay within their current major unless you pass --include-major-framework-updates; don't cross a framework major as part of a routine package upgrade.

Principles

  1. Use update-packages for every bump. Never hand-edit package.json / Directory.Packages.props or run raw npm / dotnet to move a version.
  2. The CLI must produce a correct outcome. If it doesn't, fix the CLI in developer-cli/Commands/UpdatePackagesCommand.cs, and commit that fix on its own. Working around a CLI bug by hand is unacceptable — the next person deserves the fix.
  3. Order is fixed and never reordered: backend (.NET) first, then frontend, then GitHub Actions last. If the backend is blocked because a new toolchain (a .NET SDK) isn't installed, that install needs sudo/admin — ask the user to run it up front (Workflow step 3) and wait. Never skip ahead to the frontend to "stay busy" while a backend toolchain install is pending.
  4. Atomic commits. Trivial bumps (patch + minor) go into one bulk commit per side. Every major — and anything needing a code change, config change, or API rename — gets its own commit with the change.
  5. Research majors online. Read the changelog, release notes, and GitHub issues for every major before applying it. If a new major exposes cheap, obvious improvements, adopt them in the same commit. If adoption is non-trivial, ship the upgrade and note the follow-up.
  6. Verify smartly, and gate each phase. build + lint per trivial commit; add e2e after majors that touch runtime, build tooling, or i18n; run format whenever code changes or after upgrading formatter/linter tooling. Run a full backend regression with e2e at the end of the backend phase, before the frontend, and a full regression for both sides at the very end. Fold any fix into the commit that caused it (see Fixing A Regression).
  7. Push through. When an upgrade misbehaves, figure out why. Reverting is the last resort, only after evidence the version is genuinely unusable.

Fixing A Regression

When a regression run fails, the bad change belongs in an earlier commit — fold the fix there, don't tack a loose fix on the end. The branch isn't pushed yet, so rewriting local history is safe. Two patterns by cause:

  • The upgrade is fine but code must adapt — make the code/config change, then fold it into the commit that introduced the breakage: git commit --fixup=<offending-commit> followed by git rebase --autosquash --interactive <base>.
  • One package in a bulk commit is the culprit — pull just that package out of the bulk so the bulk stays green (re-run the bulk with that package added to --exclude, or drop its version bump from the bulk commit via a fixup), then give it its own commit on top with the code change it needs — exactly like a major.

Either way, keep every commit independently green and bisectable, and never move to the next phase with a red suite — the fix-up happens in the phase that caused it.

Show full SKILL.md (698 more words)Show less

Workflow

  1. Verify clean baseline — git status clean; build, lint, test green (run e2e if anything looks risky). Fix or stop if the baseline is broken before you start.

  2. Dry-run — update-packages --dry-run --quiet (no side flag covers both). Read the output and split each side into:

    • Trivial = every patch and minor line.
    • Majors = every major line. Collect the package names; each becomes its own commit.
    • Toolchain = any (sdk) line (e.g. dotnet-sdk) and any ⚠️ … is NOT installed warning — these gate the backend and are handled first (step 3).
    • restricted lines are the permanent exceptions — ignore them.
  3. Toolchain prerequisites (sudo) — resolve before any upgrade — if the dry-run reports a dotnet-sdk (or other framework) bump whose target version is not installed locally, the backend update will abort: update-packages --backend exits when the required SDK is missing. You cannot install it yourself — it needs sudo/admin. Stop and ask the user to run the exact install command the dry-run printed (e.g. brew upgrade dotnet-sdk on macOS, winget upgrade Microsoft.DotNet.SDK.<major> on Windows), then wait for them to confirm. Re-run update-packages --dry-run --quiet and check that nothing is still flagged as not-installed before continuing. This keeps the backend first and unblocked — do not start the frontend while a backend toolchain install is pending.

  4. Backend bulk (trivial) — apply all backend patch/minor at once, excluding the majors so only safe bumps land:

    bash
    dotnet run --project developer-cli -- update-packages --backend --exclude <comma-separated backend majors> --quiet

    Then build --backend + lint --backend. When green, commit, e.g. Upgrade backend NuGet packages, dotnet tools, and SDK to latest minor and patch versions.

  5. Backend majors, one at a time — for each backend major package P (the only outstanding backend updates after the bulk are the majors, so exclude the other majors to move just P):

    bash
    dotnet run --project developer-cli -- update-packages --backend --exclude <every other backend major> --quiet

    Research P's changelog, make the required code changes, adopt cheap new features, run build/format/lint/test (+ e2e if it touches runtime), and commit P and its changes together, e.g. Upgrade <Package> to <version> and <what changed>.

  6. Backend regression gate — full suite with e2e, before the frontend — with every backend commit in place, run the full backend suite: build --backend, format --backend, lint --backend, test, and e2e. The backend must be fully green here, before any frontend work begins — that way a failure is unambiguously a backend regression and its fix lands in a backend commit. If it fails, fix it up now (see Fixing A Regression); never carry a red backend suite into the frontend phase.

  7. Frontend bulk (trivial) — same as step 4 with --frontend. The CLI runs npm install and npm audit fix for you. Then build --frontend + lint --frontend (+ format --frontend since the install may reformat). Commit, e.g. Upgrade frontend npm dependencies to latest minor and patch versions.

  8. Frontend majors, one at a time — same as step 5 with --frontend. Formatter/linter majors (oxfmt, oxlint) and i18n/build-tool majors warrant a format + e2e pass. One commit per major.

  9. GitHub Actions — the last upgrade — only after backend and frontend are fully done, bump the workflow dependencies in .github/workflows/*.yml (not covered by update-packages):

    • Each uses: <action>@vN to its latest major (e.g. actions/checkout, actions/setup-node, actions/setup-dotnet, actions/setup-java, actions/upload-artifact, actions/download-artifact, actions/github-script, azure/login, docker/setup-buildx-action).
    • runs-on: runners to the current Ubuntu LTS image (e.g. ubuntu-24.04).
    • Pinned tool versions inside with: (node-version, and any others) to match the project's runtime. Verify nothing else references an old version; commit, e.g. Upgrade GitHub Actions and runner images to latest versions.
  10. Final regression — close by running the full set for both sides: build, format, lint, test, e2e. If anything fails, fix it up in the commit that caused it (see Fixing A Regression) rather than tacking a fix on the end. Then summarise to the user: what moved, what was skipped (with reason), what was adopted, what's deferred.

Success

Every non-exception package on its latest version. Trivial bumps in one bulk commit per side; each major and each code/config change in its own clear commit; GitHub Actions current. The CLI is better than when you started — every bug you tripped over is fixed at the source and committed separately. build, format, lint, test, and e2e all green at HEAD.

© platformplatform, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/upgrade-packages of platformplatform/PlatformPlatform.

Open the folder on GitHubat commit 269de1c

Compare with similar skills

Upgrade Packages next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Upgrade Packages compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Upgrade Packages this skillplatformplatform/PlatformPlatform441—~2.7kAutomated safety check: PassMIT
Repo Hygiene Scan and FixQwenLM/qwen-code28k—~1.7kAutomated safety check: PassApache-2.0
CI Pipeline Synthesizerkajisho5/ffmpeg-skill1.9k1 repos~1.1kAutomated safety check: PassMIT
GitHub Actions Supply Chain Pinningasyncapi/generator1.1k—~1.9kAutomated safety check: PassApache-2.0
Releasechampionswimmer/pi-context-prune246—~907Automated safety check: PassNone
npm Release Via GitHub Actionsjmfederico/pi-web866—~2.9kAutomated safety check: PassMIT

Similar skills

  • Scheduled CI skill that scans a repository for small, certain docs, test and code hygiene issues and fixes them on one branch with a commit per finding.

    28k GitHub stars~1.7k tokensUpdated today
    DevOps & CloudAuto-check passed
  • CI Pipeline Synthesizer

    kajisho5/ffmpeg-skill

    Generate GitHub Actions CI/CD pipeline configurations for automated building and testing of library and package projects.

    1.9k GitHub starsUsed in 1 repo~1.1k tokens
    DevOps & CloudAuto-check passed
  • A skill your agent uses when editing, adding, or reviewing any file under .github/workflows/, or when a CI step installs a CLI tool (npm i -g, npx, pipx, uses: /setup-).

    1.1k GitHub stars~1.9k tokensUpdated 3 days ago
    DevOps & CloudAuto-check passed
  • Release

    championswimmer/pi-context-prune

    Creates a repository release for this Pi package. An agent skill from championswimmer/pi-context-prune.

    246 GitHub stars~907 tokensUpdated 7 days ago
    DevOps & CloudAuto-check passed
  • A skill your agent uses whenever the user asks for a new npm version, npm release, package release, new release, version bump, publishing to npm, cutting a GitHub release, tagging a release, or…

    866 GitHub stars~2.9k tokensUpdated yesterday
    DevOps & CloudAuto-check passed
  • Publish Release

    molefrog/moi

    Release moi-computer to npm — verify locally, hand off to the gated GitHub Actions workflow, then verify the published package.

    182 GitHub stars~2.5k tokensUpdated yesterday
    DevOps & CloudAuto-check passed

More from platformplatform/PlatformPlatform

All 18 skills in this repo
  • Create Prd

    platformplatform/PlatformPlatform

    Create a product requirement document (PRD) for a new feature.

    441 GitHub stars~3k tokensUpdated 14 days ago
    Auto-check passed
  • Rebuild Branch

    platformplatform/PlatformPlatform

    Rebuild a stale branch by cherry-picking each commit onto a fresh branch off main, using a ralph-loop to validate each commit (build, test, format, lint, optional e2e) before moving on.

    441 GitHub stars~2.1k tokensUpdated 14 days ago
    Auto-check: notes
  • Swc Plugin Compatibility

    platformplatform/PlatformPlatform

    Diagnose and fix Lingui SWC plugin compatibility errors with Next.js, Rspack, or other SWC runtimes.

    441 GitHub stars~873 tokensUpdated 14 days ago
    Auto-check passed
  • Aspire Restart

    platformplatform/PlatformPlatform

    Start or restart the .NET Aspire AppHost via the developer CLI.

    441 GitHub stars~415 tokensUpdated 14 days ago
    Auto-check passed
  • Commit

    platformplatform/PlatformPlatform

    Commit session changes to git. An agent skill from platformplatform/PlatformPlatform.

    441 GitHub stars~567 tokensUpdated 14 days ago
    Auto-check passed
  • E2E

    platformplatform/PlatformPlatform

    Run end-to-end Playwright tests via the developer CLI. An agent skill from platformplatform/PlatformPlatform.

    441 GitHub stars~542 tokensUpdated 14 days ago
    Auto-check passed

Categories

Questions about Upgrade Packages

What does Upgrade Packages do?

Upgrade all backend (.NET/NuGet), frontend (npm), and GitHub Actions dependencies to their latest versions, in that fixed order. Upgrade Packages is an agent skill from platformplatform/PlatformPlatform.NET/NuGet), frontend (npm), and GitHub Actions dependencies to their latest versions, in that fixed order.

When should I use Upgrade Packages?

Upgrade Packages fits situations like: tasks that involve CI/CD.

How do I install Upgrade Packages in Claude Code?

Run `npx skills add platformplatform/PlatformPlatform --skill upgrade-packages -a claude-code`. Or copy the skill folder (.claude/skills/upgrade-packages in platformplatform/PlatformPlatform) into .claude/skills/upgrade-packages in your project. Claude Code loads it when a task matches its description.

How do I install Upgrade Packages in Codex?

Run `npx skills add platformplatform/PlatformPlatform --skill upgrade-packages -a codex`. Or copy the skill folder (.claude/skills/upgrade-packages in platformplatform/PlatformPlatform) into .agents/skills/upgrade-packages in your project. Codex loads it when a task matches its description.

Can I use Upgrade Packages in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add platformplatform/PlatformPlatform --skill upgrade-packages -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/upgrade-packages, .gemini/skills/upgrade-packages, .github/skills/upgrade-packages and .opencode/skills/upgrade-packages in your project.

What does Upgrade Packages need to run?

Going by SKILL.md and its folder, Upgrade Packages needs the command-line tools its instructions call (dotnet, git, npm, brew and winget). Our summary lists: Node.js; Docker.

Does Upgrade Packages access the network?

SKILL.md contains no URLs. Its commands use git and npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Upgrade Packages safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Upgrade Packages use?

Upgrade Packages is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Upgrade Packages use?

About 2.7k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Upgrade Packages?

Skills that share tags, products or a category with Upgrade Packages: Repo Hygiene Scan and Fix (QwenLM/qwen-code, 28k stars), CI Pipeline Synthesizer (kajisho5/ffmpeg-skill, 1.9k stars), GitHub Actions Supply Chain Pinning (asyncapi/generator, 1.1k stars) and Release (championswimmer/pi-context-prune, 246 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Upgrade Packages?

platformplatform (a GitHub organization) maintains it in platformplatform/PlatformPlatform, which has 441 GitHub stars. The repository holds 18 skills in this directory. The repository was last updated on September 24, 2026.

Source: platformplatform/PlatformPlatform on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.