Bump Dependencies Skill
Update Node.js dependencies using taze CLI with smart prompting: auto-apply MINOR/PATCH updates, prompt for MAJOR updates individually, skip fixed-version packages.
When package names are provided as arguments (e.g.
/bump-deps react typescript
), scope all taze commands to only those packages using
.
Prerequisites
Before starting, verify taze is installed by running:
If exit code is 1, stop and inform the user that taze must be installed:
- Global install:
- One-time:
Update Workflow
Step 1: Scan for Updates
Run the taze script to discover available updates. The script auto-detects monorepo projects (
in package.json or
) and enables recursive mode automatically.
Step 2: Parse and Categorize Updates
From the taze output, categorize each package update:
| Category | Version Change | Action |
|---|
| Fixed | No or prefix (e.g., ) | Skip entirely |
| PATCH | → (e.g., → ) | Auto-apply |
| MINOR | → (e.g., → ) | Auto-apply |
| MAJOR | → (e.g., → ) | Prompt user |
If package arguments were provided, filter to only those packages.
Identifying fixed versions: In package.json, fixed versions have no range prefix:
- Fixed: → skip
- Ranged: → process
Step 3: Apply MINOR/PATCH Updates
Apply all non-major updates automatically without prompting:
bash
# All packages
taze minor --write
# Specific packages only (when args provided)
taze minor --write --include react,typescript
The script auto-detects monorepo mode, but when running taze directly, detect it yourself: check for
in package.json or
and add
if present.
Report the packages that were updated.
Step 4: Prompt for MAJOR Updates
Auto-skip packages: Never prompt for these packages—auto-apply their major updates:
- (icon library with frequent major bumps, backward-compatible in practice)
For each remaining package with a major update available, use
to ask the user individually:
Package: <package-name>
Current: <current-version>
Available: <new-version>
Update to major version?
Question format:
- header: Package name (max 12 chars, truncate if needed)
- options: "Yes, update" / "No, skip"
- multiSelect: false
Collect all approved major updates.
Step 5: Apply Approved MAJOR Updates
After collecting user approvals, apply the approved major updates:
bash
taze major --write --include <pkg1>,<pkg2>,<pkg3>
Add
if monorepo was detected.
Step 6: Update Bun Catalogs
After applying all updates, check the
root for Bun workspace catalogs. Bun monorepos can centralize dependency versions using
and
fields inside the
object:
json
{
"workspaces": {
"packages": ["packages/*"],
"catalog": {
"react": "^19.0.0"
},
"catalogs": {
"testing": {
"jest": "^30.0.0"
}
}
}
}
Workspace packages reference these with
(default catalog) or
"jest": "catalog:testing"
(named catalog).
Skip this step if neither
nor
exists in the root
.
For each package that was updated in Steps 3/5:
- Check if it appears in — if so, update the version there
- Check each named catalog in — if the package appears, update the version there
Preserve the existing range prefix (
,
, or none) from the catalog entry. For example, if the catalog has
and taze bumped react to
, update the catalog to
.
Use
to apply the version changes directly to the root
.
Step 7: Install Dependencies
After all updates are applied, remind the user to run their package manager's install command:
bash
npm install
# or
pnpm install
# or
bun install
# or
yarn install
Taze Output Interpretation
Taze displays updates grouped by type. Example output:
@types/node ^20.0.0 → ^22.0.0 (major)
typescript ^5.3.0 → ^5.4.0 (minor)
eslint ^8.56.0 → ^8.57.0 (patch)
The rightmost column indicates update type (major/minor/patch).
Packages shown with
that have no
or
are fixed versions—skip these entirely.
Script Reference
| Script | Purpose |
|---|
| Run taze in non-interactive mode, check installation |
Important Notes
- Fixed-version dependencies (no or ) indicate intentional pinning—never modify these
- MAJOR updates may contain breaking changes—always prompt the user
- MINOR/PATCH updates are backward-compatible by semver convention—safe to auto-apply
- The flag accepts comma-separated package names or regex patterns
- Monorepo detection is automatic—no flag needed
- Bun catalogs ( / ) are the source of truth for workspace packages using the protocol—always update catalog entries alongside regular deps