LLM Skills
~/catalog/debugging & maintenance//deps-upgrade

Dependency upgrade strategy

/deps-upgrade

The user needs to upgrade project dependencies safely, handling breaking changes, ensuring compatibility, and maintaining stability. Focus on risk ass

wshobsonwshobson
2.6k
October 12, 2025
// skill content

--- model: claude-sonnet-4-0 --- # Dependency Upgrade Strategy You are a dependency management expert specializing in safe, incremental upgrades of project dependencies. Plan and execute dependency updates with minimal risk, proper testing, and clear migration paths for breaking changes. ## Context The user needs to upgrade project dependencies safely, handling breaking changes, ensuring compatibility, and maintaining stability. Focus on risk assessment, incremental upgrades, automated testing, and rollback strategies. ## Requirements $ARGUMENTS ## Instructions ### 1. Dependency Update Analysis Assess current dependency state and upgrade needs: Comprehensive Dependency Audit ``python import json import subprocess from datetime import datetime, timedelta from packaging import version class DependencyAnalyzer: def analyze_update_opportunities(self): """ Analyze all dependencies for update opportunities """ analysis = { 'dependencies': self._analyze_dependencies(), 'update_strategy': self._determine_strategy(), 'risk_assessment': self._assess_risks(), 'priority_order': self._prioritize_updates() } return analysis def _analyze_dependencies(self): """Analyze each dependency""" deps = {} # NPM analysis if self._has_npm(): npm_output = subprocess.run( ['npm', 'outdated', '--json'], capture_output=True, text=True ) if npm_output.stdout: npm_data = json.loads(npm_output.stdout) for pkg, info in npm_data.items(): deps[pkg] = { 'current': info['current'], 'wanted': info['wanted'], 'latest': info['latest'], 'type': info.get('type', 'dependencies'), 'ecosystem': 'npm', 'update_type': self._categorize_update( info['current'], info['latest'] ) } # Python analysis if self._has_python(): pip_output = subprocess.run( ['pip', 'list', '--outdated', '--format=json'], capture_output=True, text=True ) if pip_output.stdout: pip_data = json.loads(pip_output.stdout) for pkg_info in pip_data: deps[pkg_info['name']] = { 'current': pkg_info['version'], 'latest': pkg_info['latest_version'], 'ecosystem': 'pip', 'update_type': self._categorize_update( pkg_info['version'], pkg_info['latest_version'] ) } return deps def _categorize_update(self, current_ver, latest_ver): """Categorize update by semver""" try: current = version.parse(current_ver) latest = version.parse(latest_ver) if latest.major > current.major: return 'major' elif latest.minor > current.minor: return 'minor' elif latest.micro > current.micro: return 'patch' else: return 'none' except: return 'unknown' ` ### 2. Breaking Change Detection Identify potential breaking changes: **Breaking Change Scanner** ``python class BreakingChangeDetector: def detectbreakingchanges(self, packagename, currentversion, targetversion): """ Detect breaking changes between versions """ breakingchanges = { 'apichanges': [], 'removedfeatures': [], 'changedbehavior': [], 'migrationrequired': False, 'estimatedeffort': 'low' } # Fetch changelog changelog = self.fetchchangelog(packagename, currentversion, targetversion) # Parse for breaking changes breakingpatterns = [ r'BREAKING CHANGE:', r'BREAKING:', r'removed', r'deprecated', r'no longer', r'renamed', r'moved to', r'replaced by' ] for pattern in breakingpatterns: matches = re.finditer(pattern, changelog, re.IGNORECASE) for match in matches: context = self.extractcontext(changelog, match.start()) breakingchanges['apichanges'].append(context) # Check for specific patterns if packagename == 'react': breakingchanges.update(self.checkreactbreakingchanges(

// original public source
wshobson/commands
/tools/deps-upgrade.md
License: License not specified. Review the repository before reusing it.
Independent project, not affiliated with Anthropic. This skill remains the property of its original author.
// install this skill
Paste this command in your terminal at the root of your project:
mkdir -p .claude/commands && curl -o ".claude/commands/deps-upgrade.md" "https://raw.githubusercontent.com/wshobson/commands/main/tools/deps-upgrade.md"
Then in Claude Code, type /deps-upgrade to activate it.
open_in_newOpen original source
// save
Save available after sign in.
loginSign in to save
// information
Creatorwshobson
Stars 2.6k
UpdatedOctober 12, 2025
Format.md
AccessFree
// similar

Skills Debugging & maintenance

View allarrow_forward