upgrade-dependencies
Upgrades Ruby dependencies by analyzing release notes and verifying compatibility with the codebase.
Install
mkdir -p .claude/skills/upgrade-dependencies && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/12257" && unzip -o skill.zip -d .claude/skills/upgrade-dependencies && rm skill.zipInstalls to .claude/skills/upgrade-dependencies
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Upgrade all Ruby gem dependencies to their latest versions with release note review and codebase alignment checks. Use this skill whenever the user asks to update, upgrade, or bump dependencies, gems, or packages — even casually like 'update my gems' or 'are my deps up to date?'Key capabilities
- →Discover current Ruby gem dependencies and constraints.
- →Research latest gem versions and release notes.
- →Analyze breaking changes and their impact on the codebase.
- →Upgrade version constraints and install updated gems.
- →Verify upgrades with the full test suite.
- →Report a summary table with upgrade details.
How it works
The skill systematically upgrades Ruby gem dependencies by discovering current versions, researching release notes for breaking changes, analyzing codebase impact, updating constraints, and verifying with tests.
Inputs & outputs
When to use upgrade-dependencies
- →Upgrade Ruby gems safely
- →Check for breaking dependency changes
- →Bump gemspec constraints
About this skill
Dependency Upgrade Skill
Systematically upgrade Ruby gem dependencies by researching latest versions, reviewing release notes for breaking changes, updating version constraints, verifying with tests, and confirming codebase alignment.
The goal is a thoughtful upgrade — not blindly bumping versions, but understanding what changed and ensuring the codebase is compatible. This matters because a silent API change can introduce bugs that tests don't catch if the tests don't exercise the affected code path.
Process Overview
- Discover current dependencies and their constraints
- Research latest versions and release notes (in parallel)
- Analyze breaking changes and codebase impact
- Upgrade version constraints and install
- Verify with the full test suite
- Report a summary table with upgrade details
Step 1: Discover Current Dependencies
Read the gemspec and Gemfile to build a complete dependency inventory.
Read *.gemspec → runtime dependencies (add_dependency)
Read Gemfile → development dependencies (gem declarations)
Run: bundle outdated → current vs latest versions, which are constrained
Build a working list with these columns:
- Gem name
- Source (gemspec or Gemfile)
- Current constraint (e.g.,
~> 5.0) - Installed version (from
bundle outdatedorGemfile.lock) - Latest version (from
bundle outdated) - Constrained? (is the version constraint preventing upgrade?)
Step 2: Research Release Notes
For each gem that has a newer version available, research what changed. Launch these as parallel Agent subagents — one per gem — to avoid sequential delays.
Each research agent should:
- Run
gem search <name> --exact --versionsto confirm the latest version - Fetch the changelog or release notes from GitHub (check CHANGELOG.md, CHANGES, HISTORY.md, or GitHub Releases)
- Summarize changes between the installed version and latest version
- Flag any breaking changes, deprecations, or API changes
- Note if it's a major version bump (higher risk)
For transitive dependencies (not directly declared but showing in bundle outdated), research is optional — focus on direct dependencies. Transitive deps are upgraded automatically when their parent gem allows it.
What to look for in release notes
- Removed methods or classes the codebase might use
- Renamed options or changed defaults that could silently alter behavior
- New required arguments to methods we call
- Deprecated features we rely on (working now, but will break later)
- Changed return types or data structures
- Minimum Ruby version bumps that could affect CI or deployment
Step 3: Analyze Codebase Impact
For each gem with breaking changes or API modifications:
- Grep the codebase for usage of affected APIs
- Check test coverage — are the affected code paths tested?
- Determine if changes are needed before or after the upgrade
Classify each upgrade:
- Safe — no breaking changes, or breaking changes don't affect our usage
- Needs code changes — our code uses a deprecated or removed API
- Held back — a transitive dependency constraint prevents the upgrade (explain which parent gem and why)
If code changes are needed, make them before bumping the version constraint so the upgrade commit is clean.
Step 4: Upgrade Dependencies
Gemspec dependencies (runtime)
Update version constraints to target the latest version. Use ~> with the appropriate precision:
- For stable gems (1.0+):
~> X.Yallows patch updates (e.g.,~> 5.102allows 5.102.x) - For pre-1.0 gems:
~> 0.X, ">= 0.X.Y"to pin a minimum while allowing patches - For gems where a specific fix matters: add
">= X.Y.Z"as an additional constraint
Gemfile dependencies (development)
Same approach. If a major version bump is available (e.g., lefthook 1.x → 2.x), check the migration guide before bumping.
Install
bundle update
If bundle update fails due to dependency conflicts, resolve them. Common strategies:
- Relax an overly tight constraint
- Update the conflicting parent gem first
- Accept that a gem can't be upgraded yet and document why
Step 5: Verify with Tests
Run the full test suite:
bundle exec rspec
Also run the linter to catch any style issues:
bundle exec rake standard
If tests fail:
- Read the failure carefully — is it caused by the upgrade or pre-existing?
- If caused by the upgrade, fix the code to work with the new version
- If unfixable, revert that specific gem's upgrade and note it in the report
Step 6: Present Summary
Present a clear summary table of all changes:
| Gem | Old Version | New Version | Old Constraint | New Constraint | Notes |
|-----|------------|-------------|----------------|----------------|-------|
| sequel | 5.100.0 | 5.102.0 | ~> 5.0 | ~> 5.102 | No breaking changes |
| lefthook | 1.13.6 | 2.1.4 | ~> 1.6 | ~> 2.1 | Major version bump, reviewed migration guide |
Follow the table with:
- Breaking changes found — what changed and how the codebase was updated
- Gems held back — which gems couldn't be upgraded and why (e.g., "diff-lcs 2.0 held back by rspec's ~> 1.4 constraint")
- Notable new features — anything worth adopting from the new versions
- Test results — confirmation that all tests pass
Edge Cases
Gems with no GitHub repository
Fall back to gem info <name> and the RubyGems page for release history. Note reduced confidence in the review.
Yanked versions
If bundle update fails because a version was yanked, try the next most recent version.
Pre-release versions
Do not upgrade to pre-release or alpha versions unless the user explicitly asks. Stick to stable releases.
Monorepo gems
Some gems (like rails components) are versioned together. Upgrade them as a group.
When not to use it
- →When only a blind version bump is desired without review.
- →When the project is not using Ruby gems.
- →When only a specific gem needs updating without a full dependency review.
Limitations
- →Focuses on Ruby gem dependencies.
- →Research for transitive dependencies is optional.
- →Does not upgrade to pre-release or alpha versions unless explicitly asked.
How it compares
This skill provides a thoughtful, systematic process for upgrading Ruby gems, including impact analysis and test verification, which differs from simply running 'bundle update'.
Compared to similar skills
upgrade-dependencies side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| upgrade-dependencies (this skill) | 0 | 4mo | Review | Intermediate |
| skill-rails-upgrade | 1 | 3mo | Review | Intermediate |
| dependency-update | 1 | 2mo | Review | Intermediate |
| pre_commit | 0 | 5mo | Review | Beginner |
Try saying
Example prompts that trigger this skill in your AI assistant.
You might also like
skill-rails-upgrade
sickn33
Analyze Rails apps and provide upgrade assessments
dependency-update
dotnet
Guides dependency version updates by checking nuget.org for latest versions, triggering the dotnet-migrate-package Azure DevOps pipeline, and monitoring runs. Use this when asked to update external NuGet dependencies.
pre_commit
pums974
Standardized pre-commit workflow for linting, formatting, and local quality gates.
update-major-deps
makeup
Perform major dependency updates one logical group at a time, assessing breakage risk, then build, test, and create a signed commit per group
verifier
oleyna80
Pre-merge quality gate. Use to verify code is ready to ship: route contracts (status, Content-Type, body), TypeScript, tests, CSP/CSRF headers, schema alignment, secret leak scan. Issues structured READY or BLOCKED verdict with file:line evidence. Read-only. Для верификации, проверки перед мержем, и
verify
nishithdev
Validate the timesince integration for HA compatibility and HACS readiness before pushing. Checks deprecated APIs, metadata consistency, and translation files.