ln-822-nuget-upgrader
SKILL.md
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.
ln-822-nuget-upgrader
Type: L3 Worker Category: 8XX Optimization Parent: ln-820-dependency-optimization-coordinator
Upgrades .NET NuGet packages with automatic breaking change detection and migration.
Overview
| Aspect | Details |
|---|---|
| Input | Solution/project path |
| Output | Updated .csproj files, migration report |
| Supports | .NET 6, 7, 8, 9, 10 |
Workflow
Phases: Pre-flight → Find Projects → Security Audit → Check Outdated → Identify Breaking → Apply Upgrades → Restore & Build → Report
Phase 0: Pre-flight Checks
| Check | Required | Action if Missing |
|---|---|---|
| .csproj file(s) | Yes | Block upgrade |
| .sln file | No | Use csproj discovery instead |
| Git clean state | Yes | Block (need clean baseline for revert) |
Workers assume coordinator (ln-820) already verified git state and created backup.
Worktree & Branch Isolation
MANDATORY READ: Load shared/references/git_worktree_fallback.md — use ln-822 row.
Phase 1: Find Projects
Discovery Methods
| Method | Command |
|---|---|
| Find .csproj | Get-ChildItem -Recurse -Filter *.csproj |
| From solution | dotnet sln list |
Phase 2: Security Audit
Commands
| Check | Command |
|---|---|
| Vulnerable packages | dotnet list package --vulnerable |
| Outdated packages | dotnet list package --outdated |
Actions
| Severity | Action |
|---|---|
| Critical | Block upgrade, report |
| High | Warn, continue |
| Moderate/Low | Log only |
Phase 3: Check Outdated
Using dotnet-outdated
| Step | Command |
|---|---|
| Install tool | dotnet tool install --global dotnet-outdated-tool |
| Check | dotnet outdated --output json |
Phase 4: Identify Breaking Changes
Detection
- Compare current vs latest major versions
- Check breaking_changes_patterns.md
- Use MCP tools (see below) for migration guides
Common Breaking Changes
| Package | Breaking Version | Key Changes |
|---|---|---|
| Microsoft.EntityFrameworkCore | 8 → 9 | Query changes, migration format |
| Serilog.AspNetCore | 7 → 8 | Configuration format |
| Swashbuckle.AspNetCore | 6 → 7 | Minimal API support |
MCP Tools for Migration Search
Priority Order (Fallback Strategy)
| Priority | Tool | When to Use |
|---|---|---|
| 1 | mcp__context7__query-docs | First choice for library docs |
| 2 | mcp__Ref__ref_search_documentation | Official Microsoft docs |
| 3 | WebSearch | Latest info, community solutions |
Context7 Usage
| Step | Tool | Parameters |
|---|---|---|
| 1. Find library | mcp__context7__resolve-library-id | libraryName: "EntityFrameworkCore" |
| 2. Query docs | mcp__context7__query-docs | query: "EF Core 8 to 9 migration breaking changes" |
MCP Ref Usage
| Action | Tool | Query Example |
|---|---|---|
| Search | mcp__Ref__ref_search_documentation | "dotnet EntityFrameworkCore 9 migration guide" |
| Read | mcp__Ref__ref_read_url | URL from search results |
WebSearch Fallback
Use when Context7/Ref return no results:
"<package> .NET <version> breaking changes migration""<error code> <package> fix"
Phase 5: Apply Upgrades
Priority Order
| Priority | Package Type |
|---|---|
| 1 | SDK/Runtime (Microsoft.NET.Sdk) |
| 2 | Framework (Microsoft.AspNetCore.*) |
| 3 | EF Core (affects migrations) |
| 4 | Logging (Serilog.*) |
| 5 | Other packages |
Commands
| Action | Command |
|---|---|
| Update specific | dotnet add package <name> --version <ver> |
| Update all | dotnet outdated --upgrade |
Phase 6: Restore & Build
Commands
| Step | Command |
|---|---|
| Restore | dotnet restore |
| Build | dotnet build --configuration Release |
| Test | dotnet test |
On Failure
- Identify failing package from error
- Search Context7/Ref for migration guide
- If unresolved: rollback package, continue
Phase 7: Report Results
Report Schema
| Field | Description |
|---|---|
| solution | Solution path |
| projects[] | Updated projects |
| duration | Total time |
| upgrades[] | Applied upgrades |
| buildVerification | PASSED or FAILED |
| testResults | X passed, Y failed |
Configuration
Options:
# Upgrade scope
upgradeType: major # major | minor | patch
# Security
auditLevel: high
minimumReleaseAge: 14
# .NET specific
includePrerelease: false
targetFramework: net10.0
# Verification
runTests: true
runBuild: true
Error Handling
| Error | Cause | Solution |
|---|---|---|
| CS0246 | Missing type | Search for replacement API |
| NU1605 | Downgrade detected | Check package constraints |
| Build fail | Breaking change | Apply migration via Context7 |
References
Definition of Done
- All .csproj files discovered (via solution or recursive scan)
- Security audit completed (
dotnet list package --vulnerable) - Outdated packages identified via dotnet-outdated
- Breaking changes detected via breaking_changes_patterns.md and MCP tools
- Upgrades applied in priority order (SDK > Framework > EF Core > other)
dotnet restore,dotnet build,dotnet testall pass- Report returned with projects updated, upgrades applied, and build/test status
Version: 1.1.0 Last Updated: 2026-01-10
Weekly Installs
27
Repository
levnikolaevich/…e-skillsGitHub Stars
197
First Seen
5 days ago
Security Audits
Installed on
gemini-cli27
github-copilot27
codex27
kimi-cli27
amp27
cline27