fairchild/dotclaude · Archived

update-dependencies

Smart dependency updates across ecosystems (npm/bun/pnpm, uv/poetry, cargo). Use when upgrading dependencies, fixing vulnerabilities, or performing proactive maintenance. Supports intelligent batching, risk assessment, and outcome tracking for continuous improvement.

Installation

$ npx skills add fairchild/dotclaude --skill update-dependencies

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from fairchild/dotclaude · top by installs.

npx skills add fairchild/dotclaude

Browse all from fairchild/dotclaude

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 2
License LICENSE
Default branch main
Open issues 7
Status Archived

Skill metadata

Parsed from SKILL.md frontmatter.

LicenseApache-2.0

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 4,244 B
  • docs SUMMARY.md 294 B

History

  1. First recorded snapshot · 17 installs

SKILL.md

Dependency Updater

Smart dependency management with security-first prioritization, intelligent batching, and learning from outcomes.

Ecosystem Detection

First, detect the project's ecosystem:

# Check for lockfiles (in priority order)
ls bun.lock bun.lockb pnpm-lock.yaml package-lock.json uv.lock poetry.lock Cargo.lock 2>/dev/null | head -1
Lockfile Ecosystem Reference
bun.lock / bun.lockb npm (bun) [npm.md](references/ecosystems/npm.md)
pnpm-lock.yaml npm (pnpm) [npm.md](references/ecosystems/npm.md)
package-lock.json npm [npm.md](references/ecosystems/npm.md)
uv.lock Python (uv) [python.md](references/ecosystems/python.md)
poetry.lock Python (poetry) [python.md](references/ecosystems/python.md)
Cargo.lock Rust [cargo.md](references/ecosystems/cargo.md)

Load the appropriate ecosystem reference for detailed commands.


Workflow

Phase 1: Security Audit

Run security check first. Security issues always take priority.

See ecosystem reference for specific audit command.

Categorize by severity:

  • Critical/High: Fix immediately, own PR
  • Moderate/Low: Batch with related updates

Phase 2: Outdated Analysis

Check for outdated dependencies.

Categorize by update type:

  • Patch (x.y.Z): Usually safe, batch together
  • Minor (x.Y.z): Review changelog, usually safe
  • Major (X.y.z): Individual review required

Phase 3: Check History

Before major updates, check if we've updated this package before. Paths below are relative to this skill's base directory:

grep "<package-name>" data/outcomes.jsonl

Learn from past outcomes:

  • Did it require migration?
  • Any gotchas noted?

Phase 4: Risk Assessment

For packages with major bumps or unknown risk, fetch changelogs.

Score each update 1-5. See [risk-assessment.md](references/risk-assessment.md) for guidelines.

Phase 5: Smart Grouping

Group related packages together. See [grouping-strategies.md](references/grouping-strategies.md) for patterns.

Priority order:

  1. Security fixes (own group, merge first)
  2. Ecosystem batches (related packages together)
  3. Low-risk patches (all together)
  4. Individual major updates

Phase 6: Execute Updates

For each group:

  1. Create branch: deps/<group-name>-$(date +%Y%m%d)
  2. Apply updates (see ecosystem reference)
  3. Run tests
  4. If tests fail: identify problematic package, exclude, continue

Phase 7: Create PR

Use format from [pr-format.md](references/pr-format.md).

git add <lockfile> <manifest>
git commit -m "deps: <type> update <group-name>"
git push -u origin HEAD
gh pr create --title "deps: <type> update <group-name>" --body-file -

Phase 8: Log Outcome

After PR is merged (or if update fails), log the outcome:

bun scripts/log-outcome.ts

The script will:

  1. Pre-fill: date, project, ecosystem, packages, versions
  2. Prompt for: outcome (success/failed/required_migration) and notes
  3. Append to data/outcomes.jsonl

Command Options

When invoked via /update-dependencies:

Option Effect
security only Only fix security vulnerabilities
plan Enter plan mode - analyze and design update strategy for approval
major Include major version updates
group <name> Update specific ecosystem group
--check-history Show past outcomes for packages being updated

Quick Start

# Run the analyzer first
bun scripts/analyze.ts

# Or invoke the skill
/update-dependencies plan    # Analyze and plan
/update-dependencies         # Full execution

Error Recovery

If update fails partway:

  • If commit succeeded but push failed → git push -u origin HEAD
  • If tests fail → identify problematic package, exclude, retry
  • If PR creation failed → gh pr create ...