Claude-code-skills ln-822-nuget-upgrader

Upgrades .NET NuGet packages with breaking change handling. Use when updating .NET dependencies.

install
source · Clone the upstream repo
git clone https://github.com/levnikolaevich/claude-code-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/levnikolaevich/claude-code-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills-catalog/ln-822-nuget-upgrader" ~/.claude/skills/levnikolaevich-claude-code-skills-ln-822-nuget-upgrader && rm -rf "$T"
manifest: skills-catalog/ln-822-nuget-upgrader/SKILL.md
source content

Paths: File paths (

shared/
,
references/
,
../ln-*
) are relative to skills repo root. If not found at CWD, locate this SKILL.md directory and go up one level for repo root. If
shared/
is missing, fetch files via WebFetch from
https://raw.githubusercontent.com/levnikolaevich/claude-code-skills/master/skills/{path}
.

ln-822-nuget-upgrader

Type: L3 Worker Category: 8XX Optimization

Upgrades .NET NuGet packages with automatic breaking change detection and migration.


Overview

AspectDetails
InputSolution or project path plus upgrade policy
OutputUpdated
.csproj
files and a machine-readable dependency upgrade summary
Supports.NET 6, 7, 8, 9, 10

Workflow

Phases: Pre-flight -> Find Projects -> Security Audit -> Check Outdated -> Identify Breaking -> Apply Upgrades -> Restore and Build -> Report


Phase 0: Pre-flight Checks

CheckRequiredAction if Missing
.csproj
file(s)
YesBlock upgrade
.sln
file
NoFall back to recursive project discovery
dotnet
CLI
YesBlock upgrade
Workspace baseline safeYesIn managed runs coordinator already prepared it; in standalone runs protect rollback locally

Runtime Coordination

Managed runs receive deterministic

runId
and exact
summaryArtifactPath
from
ln-820
. Standalone runs remain supported; if runtime arguments are omitted, generate a standalone run-scoped artifact before returning.


Phase 1: Find Projects

MethodCommand
Find
.csproj
files
Get-ChildItem -Recurse -Filter *.csproj
Read solution members
dotnet sln list

Phase 2: Security Audit

CheckCommand
Vulnerable packages
dotnet list package --vulnerable
Outdated packages
dotnet list package --outdated

Actions:

SeverityAction
CriticalBlock and report
HighWarn and continue
Moderate/LowLog only

Phase 3: Check Outdated

StepCommand
Install helper
dotnet tool install --global dotnet-outdated-tool
Detect outdated packages
dotnet outdated --output json

Phase 4: Identify Breaking Changes

Detection flow:

  1. Compare current vs latest major versions.
  2. Check breaking_changes_patterns.md.
  3. Use MCP tools for migration guides before changing code.

Common examples:

PackageBreaking VersionKey Changes
Microsoft.EntityFrameworkCore8 -> 9Query and migration changes
Serilog.AspNetCore7 -> 8Configuration updates
Swashbuckle.AspNetCore6 -> 7Minimal API integration changes

MCP Tools for Migration Search

PriorityToolWhen to Use
1
mcp__context7__query-docs
First choice for library docs
2
mcp__Ref__ref_search_documentation
Official Microsoft docs
3WebSearchLatest info and community fixes

Use the tool chain to confirm migrations before applying them.


Phase 5: Apply Upgrades

Priority order:

  1. SDK or runtime packages
  2. framework packages
  3. EF Core
  4. logging packages
  5. everything else
ActionCommand
Update one package
dotnet add package <name> --version <ver>
Update many packages
dotnet outdated --upgrade

Phase 6: Restore and Build

StepCommand
Restore
dotnet restore
Build
dotnet build --configuration Release
Test
dotnet test

On failure:

  1. Identify the failing package.
  2. Search Context7 or Ref for the migration guide.
  3. If unresolved, rollback that package and continue.

Phase 7: Report Results

FieldDescription
solution
Solution path
projects[]
Updated projects
duration
Total time
upgrades[]
Applied upgrades
verification
Restore/build/test verdict
warnings[]
Non-blocking issues
artifact_path
Durable worker report path, if written

Configuration

Options:
  upgradeType: major          # major | minor | patch
  auditLevel: high
  minimumReleaseAge: 14
  includePrerelease: false
  targetFramework: net10.0
  runTests: true
  runBuild: true

Error Handling

ErrorCauseSolution
CS0246Missing typeSearch for replacement API
NU1605Downgrade detectedCheck package constraints
Build failBreaking changeApply migration guide or rollback offending package

References


Runtime Summary Artifact

MANDATORY READ: Load

shared/references/coordinator_summary_contract.md

Emit a

dependency-worker
summary envelope.

Managed mode:

  • ln-820
    passes deterministic
    runId
    and exact
    summaryArtifactPath
  • write the summary to the provided
    summaryArtifactPath

Standalone mode:

  • omit
    runId
    and
    summaryArtifactPath
  • write
    .hex-skills/runtime-artifacts/runs/{run_id}/dependency-worker/ln-822--{identifier}.json

Monitor (2.1.98+): For restore/build/test commands expected >30s, use

Monitor
. Fallback:
Bash(run_in_background=true)
.

Definition of Done

  • All target
    .csproj
    files discovered
  • Security audit completed for NuGet dependencies
  • Outdated packages identified
  • Breaking changes checked via patterns plus current docs
  • Upgrades applied in a safe order with rollback on failure
  • dotnet restore
    ,
    dotnet build
    , and required tests succeed
  • dependency-worker
    summary artifact written to the managed or standalone path

Version: 1.1.0 Last Updated: 2026-01-10