
Deps Update
Bump outdated Hex deps, inventory, snapshot changelogs, update, fix breaks, split...
Install
npx skills add oliver-kriska/claude-elixir-phoenix --skill deps-update -g -a claude-code -y- Repository
- oliver-kriska/claude-elixir-phoenix572
- Category
- Engineering
- Updated
- 5d ago
- License
- MIT
- Context cost
- Lightabout 1,248 tokens
- Runs scripts
- No, instructions only
What it does
Bump outdated Hex deps, inventory, snapshot changelogs, update, fix breaks, split reviewable PRs (patches bundled, majors solo). Use to upgrade/bump Elixir dependencies or when versions fall behind. NOT for deps.get failures (/phx:investigate).
Dependency Update (Freshness)
Inventory → update → fix breaks → grouped PRs. This is the only MUTATING
deps skill: it edits mix.exs, mix.lock, and source. Security scanning
stays in /phx:deps-audit; the vet ledger stays in /phx:deps-vet.
Usage
/phx:deps-update # inventory + interactive scope pick
/phx:deps-update --scope patch # bundle all patch bumps, one PR
/phx:deps-update --pkg phoenix_live_view # one package (+ coupled group)
/phx:deps-update --dry-run # inventory only, no changes
Iron Laws
- NEVER cross a major version without an explicit
mix.exsedit,mix deps.updatestays within requirements. Edit the constraint first; addoverride: trueonly whenmix hex.outdated <pkg>shows a transitive consumer blocking. One major per PR - ALWAYS snapshot the changelog delta BEFORE updating, capture
deps/<pkg>/CHANGELOG.md, then delta viamix hex.package diff. Never update blind - NEVER claim an update is safe without verification, run
/phx:verify(compile --warnings-as-errors + test). "Compiles" ≠ "works" - ALWAYS move coupled packages together, Phoenix core, Ecto, Ash,
Oban, telemetry families update in the SAME step/commit (see
${CLAUDE_SKILL_DIR}/references/coupled-groups.md) - NEVER commit a partial bump,
mix.lock+mix.exsedits + (for Phoenix-family)assets/package-lock.jsonin ONE commit - HAND OFF security to
/phx:deps-audit, run it on the lock diff before any PR; don't reimplement audit rules hex.outdatedexit 1 is normal, it means "deps are outdated", not failure. Capture with|| true
Workflow
Phase 0: Discover
Read mix.exs: deps list, umbrella (apps_path:), git/path deps, private
orgs (organization:/repo: in tuples), Phoenix/Ash presence. Create
scratch dir .claude/deps-update/{YYYY-MM-DD}/.
