Update deps
Local-first security scanner and policy gate for Agent Skills
npx -y skills add stella/skillguard --skill update-depsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
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.
SKILL.md
6.7 KB, as published. Nobody here has run 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 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.tomlminimum 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.jsoncatalog,catalogs, andresolutions - workspace
package.jsonfiles bun.lockCargo.tomlandCargo.lock.github/dependabot.ymlfor grouping expectations.github/workflows/*.ymlfor GitHub Action pins- Dockerfiles and base image digests
- root
-
Inventory outdated candidates:
- run
bun outdated --filter="*"for Bun workspace packages - run
cargo outdated --root-deps-onlyfor Cargo crates. Ifcargo-outdatedis missing, prefercargo binstall cargo-outdatedwhen available (prebuilt binary, seconds) overcargo install cargo-outdated(compiles from source, several minutes). As a fallback, usecargo update --dry-runplus targetedcargo search/cargo infochecks - inspect open dependency PRs if the request is about triage rather than local edits
- include GitHub Actions only when the request covers them
- run
-
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.xminor: 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
- search current usage with
-
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, orpreparescripts - 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 untrustedUse 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, orresolutionsupdates 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; editCargo.tomlonly when bumping past the range - after each batch passes validation, commit that batch before moving to the next one
- prefer root
-
Review the lockfile delta:
- use
bun update, or edit manifests and runbun install - for Cargo, run
cargo updateand read theCargo.lockdiff the same way (unexpected transitive additions or replacements) - read the
bun.lockdiff 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
- use
-
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 checkandcargo testwhen 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