Skill v1.0.0
Automated scanversion: "1.0.0" name: dependency-updater description: Smart dependency management for any language. Auto-detects project type, applies safe updates automatically, prompts for major versions, diagnoses and fixes dependency issues. license: MIT metadata: version: 1.0.0
Dependency Updater
Smart dependency management for any language with automatic detection and safe updates.
Quick Start
update my dependencies
The skill auto-detects your project type and handles the rest.
Triggers
| Trigger | Example | |
|---|---|---|
| Update dependencies | "update dependencies", "update deps" | |
| Check outdated | "check for outdated packages" | |
| Fix dependency issues | "fix my dependency problems" | |
| Security audit | "audit dependencies for vulnerabilities" | |
| Diagnose deps | "diagnose dependency issues" |
Supported Languages
| Language | Package File | Update Tool | Audit Tool | |
|---|---|---|---|---|
| Node.js | package.json | taze | npm audit | |
| Python | requirements.txt, pyproject.toml | pip-review | safety, pip-audit | |
| Go | go.mod | go get -u | govulncheck | |
| Rust | Cargo.toml | cargo update | cargo audit | |
| Ruby | Gemfile | bundle update | bundle audit | |
| Java | pom.xml, build.gradle | mvn versions:* | mvn dependency:* | |
| .NET | *.csproj | dotnet outdated | dotnet list package --vulnerable |
Quick Reference
| Update Type | Version Change | Action | |
|---|---|---|---|
| Fixed | No ^ or ~ | Skip (intentionally pinned) | |
| PATCH | x.y.z → x.y.Z | Auto-apply | |
| MINOR | x.y.z → x.Y.0 | Auto-apply | |
| MAJOR | x.y.z → X.0.0 | Prompt user individually |
Workflow
User Request│▼┌─────────────────────────────────────────────────────┐│ Step 1: DETECT PROJECT TYPE ││ • Scan for package files (package.json, go.mod...) ││ • Identify package manager │├─────────────────────────────────────────────────────┤│ Step 2: CHECK PREREQUISITES ││ • Verify required tools are installed ││ • Suggest installation if missing │├─────────────────────────────────────────────────────┤│ Step 3: SCAN FOR UPDATES ││ • Run language-specific outdated check ││ • Categorize: MAJOR / MINOR / PATCH / Fixed │├─────────────────────────────────────────────────────┤│ Step 4: AUTO-APPLY SAFE UPDATES ││ • Apply MINOR and PATCH automatically ││ • Report what was updated │├─────────────────────────────────────────────────────┤│ Step 5: PROMPT FOR MAJOR UPDATES ││ • AskUserQuestion for each MAJOR update ││ • Show current → new version │├─────────────────────────────────────────────────────┤│ Step 6: APPLY APPROVED MAJORS ││ • Update only approved packages │├─────────────────────────────────────────────────────┤│ Step 7: FINALIZE ││ • Run install command ││ • Run security audit │└─────────────────────────────────────────────────────┘
Commands by Language
Node.js (npm/yarn/pnpm)
# Check prerequisitesscripts/check-tool.sh taze "npm install -g taze"# Scan for updatestaze# Apply minor/patchtaze minor --write# Apply specific majorstaze major --write --include pkg1,pkg2# Monorepo supporttaze -r # recursive# Securitynpm auditnpm audit fix
Python
# Check outdatedpip list --outdated# Update all (careful!)pip-review --auto# Update specificpip install --upgrade package-name# Securitypip-auditsafety check
Go
# Check outdatedgo list -m -u all# Update allgo get -u ./...# Tidy upgo mod tidy# Securitygovulncheck ./...
Rust
# Check outdatedcargo outdated# Update within semvercargo update# Securitycargo audit
Ruby
# Check outdatedbundle outdated# Update allbundle update# Update specificbundle update --conservative gem-name# Securitybundle audit
Java (Maven)
# Check outdatedmvn versions:display-dependency-updates# Update to latestmvn versions:use-latest-releases# Securitymvn dependency:treemvn dependency-check:check
.NET
# Check outdateddotnet list package --outdated# Update specificdotnet add package PackageName# Securitydotnet list package --vulnerable
Diagnosis Mode
When dependencies are broken, run diagnosis:
Common Issues & Fixes
| Issue | Symptoms | Fix | |
|---|---|---|---|
| Version Conflict | "Cannot resolve dependency tree" | Clean install, use overrides/resolutions | |
| Peer Dependency | "Peer dependency not satisfied" | Install required peer version | |
| Security Vuln | npm audit shows issues | npm audit fix or manual update | |
| Unused Deps | Bloated bundle | Run depcheck (Node) or equivalent | |
| Duplicate Deps | Multiple versions installed | Run npm dedupe or equivalent |
Emergency Fixes
# Node.js - Nuclear resetrm -rf node_modules package-lock.jsonnpm cache clean --forcenpm install# Python - Clean virtualenvrm -rf venvpython -m venv venvsource venv/bin/activatepip install -r requirements.txt# Go - Reset modulesrm go.sumgo mod tidy
Security Audit
Run security checks for any project:
# Node.jsnpm auditnpm audit --json | jq '.metadata.vulnerabilities'# Pythonpip-auditsafety check# Gogovulncheck ./...# Rustcargo audit# Rubybundle audit# .NETdotnet list package --vulnerable
Severity Response
| Severity | Action | |
|---|---|---|
| Critical | Fix immediately | |
| High | Fix within 24h | |
| Moderate | Fix within 1 week | |
| Low | Fix in next release |
Anti-Patterns
| Avoid | Why | Instead | |
|---|---|---|---|
| Update fixed versions | Intentionally pinned | Skip them | |
| Auto-apply MAJOR | Breaking changes | Prompt user | |
| Batch MAJOR prompts | Loses context | Prompt individually | |
| Skip lock file | Irreproducible builds | Always commit lock files | |
| Ignore security alerts | Vulnerabilities | Address by severity |
Verification Checklist
After updates:
- [ ] Updates scanned without errors
- [ ] MINOR/PATCH auto-applied
- [ ] MAJOR updates prompted individually
- [ ] Fixed versions untouched
- [ ] Lock file updated
- [ ] Install command ran
- [ ] Security audit passed (or issues noted)
<details> <summary><strong>Deep Dive: Project Detection</strong></summary>
The skill auto-detects project type by scanning for package files:
| File Found | Language | Package Manager | |
|---|---|---|---|
package.json | Node.js | npm/yarn/pnpm | |
requirements.txt | Python | pip | |
pyproject.toml | Python | pip/poetry | |
Pipfile | Python | pipenv | |
go.mod | Go | go modules | |
Cargo.toml | Rust | cargo | |
Gemfile | Ruby | bundler | |
pom.xml | Java | Maven | |
build.gradle | Java/Kotlin | Gradle | |
*.csproj | .NET | dotnet |
Detection order matters for monorepos:
- Check current directory first
- Then check for workspace/monorepo patterns
- Offer to run recursively if applicable
</details>
<details> <summary><strong>Deep Dive: Node.js with taze</strong></summary>
Prerequisites
# Install taze globally (recommended)npm install -g taze# Or use npxnpx taze
Smart Update Flow
# 1. Scan all updatestaze# 2. Apply safe updates (minor + patch)taze minor --write# 3. For each major, prompt user:# "Update @types/node from ^20.0.0 to ^22.0.0?"# If yes, add to approved list# 4. Apply approved majorstaze major --write --include approved-pkg1,approved-pkg2# 5. Installnpm install # or pnpm install / yarn
Auto-Approve List
Some packages have frequent major bumps but are backward-compatible:
| Package | Reason | |
|---|---|---|
lucide-react | Icon library, majors are additive | |
@types/* | Type definitions, usually safe |
</details>
<details> <summary><strong>Deep Dive: Version Strategies</strong></summary>
Semantic Versioning
MAJOR.MINOR.PATCH (e.g., 2.3.1)MAJOR: Breaking changes - requires code changesMINOR: New features - backward compatiblePATCH: Bug fixes - backward compatible
Range Specifiers
| Specifier | Meaning | Example | |
|---|---|---|---|
^1.2.3 | Minor + Patch OK | >=1.2.3 <2.0.0 | |
~1.2.3 | Patch only | >=1.2.3 <1.3.0 | |
1.2.3 | Exact (fixed) | Only 1.2.3 | |
>=1.2.3 | At least | Any >=1.2.3 | |
* | Any | Latest (dangerous) |
Recommended Strategy
{"dependencies": {"critical-lib": "1.2.3", // Exact for critical"stable-lib": "~1.2.3", // Patch only for stable"modern-lib": "^1.2.3" // Minor OK for active}}
</details>
<details> <summary><strong>Deep Dive: Conflict Resolution</strong></summary>
Node.js Conflicts
Diagnosis:
npm ls package-name # See dependency treenpm explain package-name # Why installedyarn why package-name # Yarn equivalent
Resolution with overrides:
// package.json{"overrides": {"lodash": "^4.18.0"}}
Resolution with resolutions (Yarn):
{"resolutions": {"lodash": "^4.18.0"}}
Python Conflicts
Diagnosis:
pip checkpipdeptree -p package-name
Resolution:
# Use virtual environmentpython -m venv venvsource venv/bin/activatepip install -r requirements.txt# Or use constraintspip install -c constraints.txt -r requirements.txt
</details>
Script Reference
| Script | Purpose | |
|---|---|---|
scripts/check-tool.sh | Verify tool is installed | |
scripts/run-taze.sh | Run taze with proper flags |
Related Tools
| Tool | Language | Purpose | |
|---|---|---|---|
| taze | Node.js | Smart dependency updates | |
| npm-check-updates | Node.js | Alternative to taze | |
| pip-review | Python | Interactive pip updates | |
| cargo-edit | Rust | Cargo dependency management | |
| bundler-audit | Ruby | Security auditing |