← ClaudeAtlas

update-nuget-packageslisted

tight NuGet: updates .NET dependencies with dotnet outdated, validates restore/build/tests, synchronizes submodules, and chooses between fixing an authorized incompatibility or rolling back. Use when a .NET solution needs package updates or tests break after a package update. Don't use to migrate a test project to MTP without package updates (use update-mtp-tests), for code changes unrelated to dependencies, or for rollback without explicit confirmation.
dougcunha/TokenHound · ★ 3 · AI & Automation · score 79
Install: claude install-skill dougcunha/TokenHound
# Update NuGet packages Keep a **tight** NuGet update: one solution at a time, explicit restore, build without restore, and authorized incompatibilities. ## Invariants - Discover updates only with `dotnet outdated`. - Keep one solution in focus until restore, build, and tests finish. - Treat migration from VSTest to MTP as `update-mtp-tests` work; a solution already on MTP is updated and tested normally by this skill, using MTP test syntax. ## Steps ### 1. Plan 1. Resolve the supplied solution as an absolute or relative path and accept `.sln` and `.slnx`. 2. Without a supplied solution, list only `.sln` and `.slnx` directly at the repository root. If there is one, select it; if there are several, request a choice; if there are none, request the path. 3. Detect `_lib` as a submodule or Git directory and locate its solution. Use `_lib/CoLib.Library.sln` when it exists; otherwise record the solution found. 4. Record the order: `_lib` solution when applicable, then the main solution. 5. Inspect the working tree of planned repositories. Classify each pre-existing change by path and preserve it. 6. Run `git symbolic-ref --quiet --short HEAD` in each repository before its respective `git pull --ff-only`. Stop on detached HEAD or any pull failure. 7. Record current package versions, `global.json`, SDK, and workflows that run tests. 8. For each solution, locate the `global.json` closest to its directory and record whether it already contains MTP `test.runner`. A configuration in