Detect · Rehearse · Repair · Verify

Rehearse dependency changes before they break your code.

UpgradeGuard installs the new version in an isolated copy of your project, runs your real tests against it, and tells you exactly what will break and why — before you ever touch your main branch.

See how it works
REHEARSAL LOG — express
version4.18.2 → 5.2.1
before10/10 passing
after upgrade0/10 — crashed
causebare '*' wildcard rejected
fix appliedverified
after fix10/10 passing
VERDICT: READY AFTER MIGRATION PATCH

Four steps, most of them free

Detection and rehearsal run instantly with no AI involved. Only the repair step calls on Bob — and only for dependencies that actually need it.

01

Detect

Reads your manifest and lockfile, checks the npm registry and audit data, and flags every outdated, deprecated, or vulnerable dependency.

02

Rehearse

Creates an isolated git worktree per dependency, installs the target version for real, and runs your actual test suite against it.

03

Repair

For anything that broke, Bob finds where it's used, explains the real breaking change, and writes a fix — inside its own branch only.

04

Verify

The fix is re-tested against your real suite before it's ever marked safe. Nothing is called "fixed" without a rerun proving it.

What actually runs where

The expensive, deterministic work never touches an AI model. Bob is only called in for the one thing scripts can't do: understanding why something broke.

Runs free, instantly

No Bobcoins, no network dependency beyond the public npm registry

  • scan.js Dependency + advisory scan via the npm registry and audit APIs
  • rehearse.js Real install + real test run per dependency, in an isolated git worktree
  • merge-reports.js Deterministic assembly of the final risk report
  • git worktree Isolation so parallel rehearsals never collide on disk

Added by Bob, only when needed

Only for dependencies rehearse.js already flagged risky

  • Usage Analyst Explore subagent — finds real call sites in your code
  • Breaking-Change Analyst Reads the actual changelog, cites the real cause
  • Fix Agent Writes and applies the patch inside its own worktree branch
  • IBM Bob 2.0 Agent mode + parallel subagents, isolated per dependency

Live demo

These buttons run the real scripts against this project right now — not a simulation.