.claude/skills/dep-upgrade/SKILL.md
Safe systematic dependency upgrade with vulnerability scanning and rollback capability. Detects project ecosystem, audits outdated and vulnerable packages, presents a prioritized upgrade plan, and executes upgrades one at a time with test verification after each. Use when updating dependencies, fixing vulnerability alerts, or performing periodic dependency maintenance.
npx skillsauth add dirien/yet-another-agent-harness dep-upgradeInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Systematically upgrade dependencies with zero breakage. Detects the project ecosystem, audits for outdated and vulnerable packages, presents a prioritized plan for approval, then executes upgrades one at a time with test verification after each.
Core principle: One upgrade at a time. Test after each. Roll back on failure. Never auto-commit.
Detect the project ecosystem by scanning for package manager files:
ls go.mod package.json pyproject.toml Cargo.toml *.csproj 2>/dev/null
If no package manager file is found, report to the user and stop. Mixed projects (e.g., Go backend + Node frontend) are supported — audit and upgrade each ecosystem separately.
List outdated packages and run vulnerability scanners for each detected ecosystem.
Go:
go list -u -m all 2>/dev/null | grep '\['
govulncheck ./... 2>/dev/null
Node.js:
npm outdated 2>/dev/null
npm audit 2>/dev/null
Python:
pip list --outdated 2>/dev/null
pip-audit 2>/dev/null
Rust:
cargo outdated 2>/dev/null
cargo audit 2>/dev/null
.NET:
dotnet list package --outdated 2>/dev/null
dotnet list package --vulnerable 2>/dev/null
For detailed commands per ecosystem, see
references/upgrade-commands.md.
If a vulnerability scanner is not installed, note it in the report but continue with the outdated package list.
For each outdated package, assign a priority:
For detailed priority signals and breaking change assessment, see
references/priority-matrix.md.
Present the prioritized list to the user before any upgrades. Use
the plan format in references/report-template.md.
Dependency Upgrade Plan
Ecosystem: Go
Outdated: 5 packages
Vulnerable: 1 package
| # | Package | Current | Target | Priority |
|---|-------------------|---------|--------|----------|
| 1 | example/vuln-pkg | v1.2.0 | v1.2.5 | CRITICAL |
| 2 | example/old-pkg | v2.0.0 | v4.1.0 | HIGH |
| 3 | example/minor-pkg | v3.1.0 | v3.4.0 | MEDIUM |
Proceed with upgrades?
Wait for user approval before proceeding. The user may choose to upgrade all, select specific packages, or skip.
For each approved package, in priority order:
go mod tidy, npm install, etc.# Rollback: restore dependency files from git
git checkout -- <dependency-file> <lockfile>
Report the failure (package, target version, test error) and continue with the remaining packages.
For ecosystem-specific upgrade and rollback commands, see
references/upgrade-commands.md.
After all upgrades are complete, verify lockfile integrity:
# Go
go mod verify
# Node
npm ci --dry-run
# Rust
cargo build --dry-run
Confirm that lockfiles are updated and consistent with the dependency manifest.
Present the upgrade results using the template in
references/report-template.md. Include:
Do not commit the changes. The user decides when and how to commit. Suggest a commit message:
deps: upgrade X packages (Y security fixes)
tools
Implements advanced TypeScript type systems, creates custom type guards, utility types, and branded types, and configures tRPC for end-to-end type safety. Use when building TypeScript applications requiring advanced generics, conditional or mapped types, discriminated unions, monorepo setup, or full-stack type safety with tRPC.
development
Use when challenging ideas, plans, decisions, or proposals using structured critical reasoning. Invoke to play devil's advocate, run a pre-mortem, red team, or audit evidence and assumptions.
development
Systematic technical debt analysis across architecture, testing, documentation, and infrastructure. Investigates the codebase, scores findings by impact and effort, and generates a prioritized TECH_DEBT.md remediation plan. Delegates to specialized skills for code quality (scout) and linting (lint-fix). Use when assessing overall project health, planning cleanup sprints, or onboarding to an unfamiliar codebase.
testing
Install and configure Tailscale across platforms. Detects OS, distro, and environment (including WSL2 and containers). Verifies existing installations, performs platform-appropriate install, and guides initial connection. Use when setting up Tailscale on a new machine, onboarding a server to a tailnet, or verifying an existing install.