Skip to content
Back to skills

Update Deps

ASecurity

Review and update third-party dependencies. Use this when asked to upgrade packages, survey new minor or major releases for useful features, assess whether Stella can adopt them, or validate whether a release looks suspicious before bumping it.

  • 257 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added May 27, 2026
documentationrustgobashdockergitapi

Works with

  • cli
  • api

Security analysis

A100/100

Scanned May 27, 2026

npx -y skills add stella/stella --skill update-deps --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Update Deps?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Update Deps
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/stella-update-deps/badge)](https://www.skillsdirectory.com/skills/stella-update-deps)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: update-deps
description: "Review and update third-party dependencies. Use this when asked to upgrade packages, survey new minor or major releases for useful features, assess whether Stella can adopt them, or validate whether a release looks suspicious before bumping it."
---

# Update Dependencies

Review and update third-party dependencies. Use this when asked
to upgrade packages, survey new minor or major releases for
useful features, assess whether Stella can adopt them, or
validate whether a release looks suspicious before bumping it.

## Scope

Default to Bun packages, Rust crates, and Docker base images.
Expand to GitHub Actions when the request mentions them or the
affected files live in `.github/`.

Stella already has automated controls:

- `bunfig.toml` enforces a 5-day minimum release age for
  packages.
- `dependency-review.yml` blocks incompatible licenses and
  high-severity CVEs.
- `sbom.yml` regenerates `sbom.cdx.json` and
  `THIRD-PARTY-NOTICES.txt`.

Do not duplicate those checks manually unless the user asks for
an audit or the automation looks stale or broken.

## Arguments

`$ARGUMENTS` should describe the dependency scope, desired risk
level, and whether to actually apply changes or only prepare a
recommendation.

Helpful extras when available:

- package names, ecosystem, or files
- patch-only, minor, major, or mixed
- whether to optimize for new features, risk reduction, or
  vulnerability remediation

If the request is vague, default to:

1. all outdated dependencies in scope
2. coherent ecosystem-sized batches
3. one commit per validated batch

## Instructions

1. **Establish the version source of truth**:
   - root `package.json` `catalog`, `catalogs`, and `resolutions`
   - workspace `package.json` files
   - `bun.lock`
   - Rust workspace or crate manifests, usually `Cargo.toml`
   - Rust lockfiles, usually `Cargo.lock`
   - Rust toolchain pins, usually `rust-toolchain.toml`
   - `.github/dependabot.yml` for grouping expectations
   - `.github/workflows/*.yml` for GitHub Action pins
   - `apps/api/Dockerfile` for the base image digest

2. **Inventory outdated candidates**:
   - run `bun outdated --recursive` for Bun packages
   - run `cargo outdated` for Rust crates when available
   - if `cargo outdated` is unavailable, use `cargo update
     --dry-run` plus targeted `cargo search` or `cargo info`
     checks for direct dependencies
   - inspect open dependency PRs if the request is about
     triage rather than local edits
   - include GitHub Actions only when the request covers them

3. **Plan the full sweep, then batch it**:
   - cover all outdated dependencies in the requested scope,
     not just the first safe batch
   - split the work into coherent ecosystem or library-family
     batches
   - follow existing Dependabot grouping where possible
   - avoid mixing high-risk majors with routine minors in the
     same commit
   - use one commit per validated batch so rollback stays easy

4. **Classify upgrade risk before touching code**:
   - patch: usually lowest risk
   - minor: check new features and silent behavior changes
   - major: assume migration work
   - `0.x` minor: treat as potentially breaking

5. **Read official upgrade sources**:
   - changelog or release notes
   - migration guide
   - breaking changes
   - peer dependency, engine, runtime, and module-format
     changes
   - for Rust crates, read crate docs, repository releases,
     and RustSec advisories when relevant

   Prefer official docs, releases, and package metadata over
   blog posts or third-party summaries.

6. **Scan the codebase for adoption opportunities**:
   - search current usage with `rg`
   - look for deprecated APIs, local workarounds,
     compatibility shims, TODOs, or comments the new release
     could remove
   - if a new version unlocks a better pattern, identify the
     concrete files that could adopt it now

7. **Check suspicious-release signals before adopting a fresh version**:
   - start with cheap metadata checks first
   - release age relative to Stella's 5-day quarantine
   - publisher, maintainer, repository, or homepage change
   - missing or unusual git tag or release notes
   - new `preinstall`, `install`, `postinstall`, or
     `prepare` scripts
   - new native binaries or bundled blobs

   Only escalate to tarball and file-tree inspection when the
   metadata looks odd, the package is high risk, or the user
   explicitly wants a supply-chain review. That deeper pass can
   cover:
   - sudden tarball size or file-tree jump
   - obfuscated files
   - package contents that differ materially from prior
     releases without explanation

   For broad sweeps, if subagents are available, delegate the
   deep suspicious-release pass to a smaller background agent
   while the main agent handles changelogs, adoption scan, and
   code changes.

   Good defaults:

   ```bash
   bun info <pkg>@<version> --json
   npm view <pkg>@<version>
   bun pm untrusted
   cargo info <crate>@<version>
   cargo audit
   ```

   Use tarball inspection when the metadata looks odd or the
   release is high risk.

8. **Apply the change at the real source of truth**:
   - prefer root `catalog`, `catalogs`, or `resolutions`
     updates over per-workspace drift
   - prefer `Cargo.toml` updates for intentional direct Rust
     dependency range changes, and `cargo update` for compatible
     lockfile refreshes
   - update GitHub Actions by commit SHA, not floating tags
   - keep Docker images pinned by digest
   - after each batch passes validation, commit that batch
     before moving to the next one

9. **Review the lockfile delta**:
   - use `bun update`, or edit manifests and run `bun install`
   - use `cargo update`, or edit manifests and run `cargo
     update -p <crate>` for targeted Rust updates
   - read the `bun.lock` diff for unexpected transitive
     additions, dependency replacement, or new script-bearing
     packages
   - read the `Cargo.lock` diff for unexpected crate additions,
     major-version jumps, duplicated crate versions, new native
     build dependencies, or git/path source changes
   - if the new tree introduces untrusted packages with
     scripts, inspect them before trusting anything

10. **Validate in layers**:
    - run the smallest focused checks for the affected
      ecosystem first
    - then run repo checks relevant to the touched surfaces
    - for Bun package updates, default to `bun run lint`,
      `bun run typecheck`, and the relevant tests
    - for Rust updates, default to `cargo check`, then targeted
      `cargo test` or `cargo clippy` when the changed crates
      affect compiled paths or lint-sensitive code
    - verify generated artifacts or migrations explicitly when
      the upgraded dependency affects them

11. **Prefer removal and consolidation over passive growth**:
    - if the upgrade makes a local helper, polyfill, or
      wrapper obsolete, remove it
    - if several packages now overlap, prefer the one already
      aligned with the codebase

12. **Report back with**:
    - the full batch plan
    - current and target versions
    - risk level
    - why the upgrade is worth taking now
    - concrete adoption opportunities found in the codebase
    - suspicious-release assessment
    - validation run
    - commit created for each completed batch
    - follow-up work for deferred or blocked majors

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.