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 a repository can adopt them, or
validate whether a release looks suspicious before bumping it.
Scope
Default to Bun packages, Cargo crates, and Docker base images.
Expand to GitHub Actions when the request mentions them or the
affected files live in .github/.
Stella repositories may already have automated controls such as:
bunfig.toml minimum release age rules
- dependency review workflows for license and vulnerability checks
- SBOM or provenance workflows that regenerate dependency artifacts
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:
- all outdated dependencies in scope
- coherent ecosystem-sized batches
- one commit per validated batch
Instructions
Establish the version source of truth:
- root
package.json catalog, catalogs, and resolutions
- workspace
package.json files
bun.lock
Cargo.toml and Cargo.lock
.github/dependabot.yml for grouping expectations
.github/workflows/*.yml for GitHub Action pins
- Dockerfiles and base image digests
Inventory outdated candidates:
- run
bun outdated --filter="*" for Bun workspace packages
- run
cargo outdated --root-deps-only for Cargo crates. If
cargo-outdated is missing, prefer cargo binstall cargo-outdated when available (prebuilt binary, seconds)
over cargo install cargo-outdated (compiles from source,
several minutes). As a fallback, use cargo update --dry-run
plus targeted cargo search / cargo info checks
- inspect open dependency PRs if the request is about triage
rather than local edits
- include GitHub Actions only when the request covers them
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
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
Read official upgrade sources:
- changelog or release notes
- migration guide
- breaking changes
- peer dependency, engine, runtime, and module-format changes
Prefer official docs, releases, and package metadata over blog
posts or third-party summaries.
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
Check suspicious-release signals before adopting a fresh version:
- start with cheap metadata checks first
- release age relative to repository quarantine rules
- 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
Good defaults:
npm view <pkg>@<version> --json
bun pm untrusted
Use tarball inspection when the metadata looks odd or the
release is high risk.
Apply the change at the real source of truth:
- prefer root
catalog, catalogs, or resolutions updates
over per-workspace drift
- update GitHub Actions by commit SHA, not floating tags
- keep Docker images pinned by digest
- for Cargo, prefer
cargo update -p <crate> when the
existing semver range already covers the new version; edit
Cargo.toml only when bumping past the range
- after each batch passes validation, commit that batch before
moving to the next one
Review the lockfile delta:
- use
bun update, or edit manifests and run bun install
- for Cargo, run
cargo update and read the Cargo.lock diff
the same way (unexpected transitive additions or replacements)
- read the
bun.lock diff for unexpected transitive additions,
dependency replacement, or new script-bearing packages
- if the new tree introduces untrusted packages with scripts,
inspect them before trusting anything
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 Cargo updates, run
cargo check and cargo test when
crates touch logic, not just deps
- verify generated artifacts explicitly when the upgraded
dependency affects them
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
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
1---2name: update-deps3description: Review and update third-party dependencies. Use this when asked to upgrade packages, survey new minor or major releases for useful features, assess whether a repository can adopt them, or validate whether a release looks suspicious before bumping it.4---56# Update Dependencies78Review and update third-party dependencies. Use this when asked9to upgrade packages, survey new minor or major releases for10useful features, assess whether a repository can adopt them, or11validate whether a release looks suspicious before bumping it.1213## Scope1415Default to Bun packages, Cargo crates, and Docker base images.16Expand to GitHub Actions when the request mentions them or the17affected files live in `.github/`.1819Stella repositories may already have automated controls such as:2021- `bunfig.toml` minimum release age rules22- dependency review workflows for license and vulnerability checks23- SBOM or provenance workflows that regenerate dependency artifacts2425Do not duplicate those checks manually unless the user asks for26an audit or the automation looks stale or broken.2728## Arguments2930`$ARGUMENTS` should describe the dependency scope, desired risk31level, and whether to actually apply changes or only prepare a32recommendation.3334Helpful extras when available:3536- package names, ecosystem, or files37- patch-only, minor, major, or mixed38- whether to optimize for new features, risk reduction, or39 vulnerability remediation4041If the request is vague, default to:42431. all outdated dependencies in scope442. coherent ecosystem-sized batches453. one commit per validated batch4647## Instructions48491. **Establish the version source of truth**:50 - root `package.json` `catalog`, `catalogs`, and `resolutions`51 - workspace `package.json` files52 - `bun.lock`53 - `Cargo.toml` and `Cargo.lock`54 - `.github/dependabot.yml` for grouping expectations55 - `.github/workflows/*.yml` for GitHub Action pins56 - Dockerfiles and base image digests57582. **Inventory outdated candidates**:59 - run `bun outdated --filter="*"` for Bun workspace packages60 - run `cargo outdated --root-deps-only` for Cargo crates. If61 `cargo-outdated` is missing, prefer `cargo binstall62 cargo-outdated` when available (prebuilt binary, seconds)63 over `cargo install cargo-outdated` (compiles from source,64 several minutes). As a fallback, use `cargo update --dry-run`65 plus targeted `cargo search` / `cargo info` checks66 - inspect open dependency PRs if the request is about triage67 rather than local edits68 - include GitHub Actions only when the request covers them69703. **Plan the full sweep, then batch it**:71 - cover all outdated dependencies in the requested scope, not72 just the first safe batch73 - split the work into coherent ecosystem or library-family74 batches75 - follow existing Dependabot grouping where possible76 - avoid mixing high-risk majors with routine minors in the77 same commit78 - use one commit per validated batch so rollback stays easy79804. **Classify upgrade risk before touching code**:81 - patch: usually lowest risk82 - minor: check new features and silent behavior changes83 - major: assume migration work84 - `0.x` minor: treat as potentially breaking85865. **Read official upgrade sources**:87 - changelog or release notes88 - migration guide89 - breaking changes90 - peer dependency, engine, runtime, and module-format changes9192 Prefer official docs, releases, and package metadata over blog93 posts or third-party summaries.94956. **Scan the codebase for adoption opportunities**:96 - search current usage with `rg`97 - look for deprecated APIs, local workarounds, compatibility98 shims, TODOs, or comments the new release could remove99 - if a new version unlocks a better pattern, identify the100 concrete files that could adopt it now1011027. **Check suspicious-release signals before adopting a fresh version**:103 - start with cheap metadata checks first104 - release age relative to repository quarantine rules105 - publisher, maintainer, repository, or homepage change106 - missing or unusual git tag or release notes107 - new `preinstall`, `install`, `postinstall`, or `prepare`108 scripts109 - new native binaries or bundled blobs110111 Only escalate to tarball and file-tree inspection when the112 metadata looks odd, the package is high risk, or the user113 explicitly wants a supply-chain review. That deeper pass can114 cover:115 - sudden tarball size or file-tree jump116 - obfuscated files117 - package contents that differ materially from prior releases118 without explanation119120 Good defaults:121122 ```bash123 npm view <pkg>@<version> --json124 bun pm untrusted125 ```126127 Use tarball inspection when the metadata looks odd or the128 release is high risk.1291308. **Apply the change at the real source of truth**:131 - prefer root `catalog`, `catalogs`, or `resolutions` updates132 over per-workspace drift133 - update GitHub Actions by commit SHA, not floating tags134 - keep Docker images pinned by digest135 - for Cargo, prefer `cargo update -p <crate>` when the136 existing semver range already covers the new version; edit137 `Cargo.toml` only when bumping past the range138 - after each batch passes validation, commit that batch before139 moving to the next one1401419. **Review the lockfile delta**:142 - use `bun update`, or edit manifests and run `bun install`143 - for Cargo, run `cargo update` and read the `Cargo.lock` diff144 the same way (unexpected transitive additions or replacements)145 - read the `bun.lock` diff for unexpected transitive additions,146 dependency replacement, or new script-bearing packages147 - if the new tree introduces untrusted packages with scripts,148 inspect them before trusting anything14915010. **Validate in layers**:151 - run the smallest focused checks for the affected ecosystem152 first153 - then run repo checks relevant to the touched surfaces154 - for Bun package updates, default to `bun run lint`, `bun run155 typecheck`, and the relevant tests156 - for Cargo updates, run `cargo check` and `cargo test` when157 crates touch logic, not just deps158 - verify generated artifacts explicitly when the upgraded159 dependency affects them16016111. **Prefer removal and consolidation over passive growth**:162 - if the upgrade makes a local helper, polyfill, or wrapper163 obsolete, remove it164 - if several packages now overlap, prefer the one already165 aligned with the codebase16616712. **Report back with**:168 - the full batch plan169 - current and target versions170 - risk level171 - why the upgrade is worth taking now172 - concrete adoption opportunities found in the codebase173 - suspicious-release assessment174 - validation run175 - commit created for each completed batch176 - follow-up work for deferred or blocked majors