ShiftOps

Codebase-wide change, run as a campaign

Define the change once.Ship it everywhere.

ShiftOps plans, coordinates, and verifies code migrations across every repository from one place. Find every affected repository, plan the order, hand the work to Devin with your approval, and accept a change only when its own checks pass.

ShiftOps · Campaigns · Node 22 rollout

Campaign

Upgrade Node.js 18 to Node.js 22

2 verified1 repairing1 review

Wave 1

  • shared-config

    verified
  • auth-sdk

    verified

Wave 2

  • orders-api

    verifying
  • billing-api

    repair 1 of 2

Wave 3

  • web-storefront

    awaiting approval
  • legacy-admin

    needs review

billing-api · latest verification

  • pnpm install passed
  • pnpm run lint passed
  • pnpm run test exit 1
Illustrative mockup of the desktop app. Repository names and statuses are examples.

The problem

One upgrade.
Forty repositories.

Organisation-wide changes stall in spreadsheets: nobody knows which repositories are affected, which order is safe, or whether an automated change actually works.

Without ShiftOps

  • Grepping checkouts by hand to guess what is affected.
  • Upgrading consumers before the libraries they depend on.
  • Agent pull requests merged on the strength of a summary.
  • No record of who approved what, or why.

With ShiftOps

  • Every repository scanned, with evidence down to the file and line.
  • Dependency-ordered waves, with risk and blockers called out.
  • Devin work only after you approve the exact task.
  • A change accepted only when ShiftOps reruns the checks and they pass.

How a campaign runs

Six steps, one place.

Each step stores what it saw and what it decided, so the campaign can be audited after the fact.

  1. 01

    Discover

    Open a checkout, search a folder, or import from GitHub: metadata only, a clone into an approved workspace, or a link to a clone you already have.

  2. 02

    Scan

    A read-only scanner records runtimes, package managers, frameworks, scripts, Docker and CI, each with the file and line it came from.

  3. 03

    Plan

    A deterministic planner classifies every repository against the goal, scores risk with cited evidence and orders dependency-first waves.

  4. 04

    Delegate

    Each repository gets a generated Devin task. You approve its exact text; dispatch runs in Devin's sandbox, only for trusted, clean checkouts.

  5. 05

    Verify

    ShiftOps runs the repository's own checks itself and records real exit codes. A finished agent session never counts as verified on its own.

  6. 06

    Repair

    Repairable failures become a bounded repair task, at most two per repository. The same approved checks re-run afterwards, only if unchanged.

Use cases

Built for the changes nobody wants to coordinate.

Runtime upgrades

Move every service from Node.js 18 to 22 with engines, .nvmrc, Docker images and CI matrices found for you.

Verified end to end for Node.js

Dependency rollouts

See which repositories declare a package, at which range, and which internal packages depend on each other.

Planning and delegation

CI and container changes

Find every workflow and Dockerfile that needs the same edit, and track the change repository by repository.

Planning and delegation

Independent verification

Trust the checks,
not the summary.

ShiftOps reads the plan from the repository's own package.json and lockfile, shows you every command and script body, and runs them only after you confirm. The plan is hashed: if a script changes, nothing runs until you review it again.

Trusted repositories only

Checked in the native core, not just the interface.

Real exit codes

Every check stores its exit code, duration and redacted output.

Bounded repairs

At most two repair tasks per repository. No infinite loops.

Nothing auto-verified

Only a passing run marks a repository verified.

Safety by construction

Your code, your machine, your approval.

Local first

State lives in SQLite on your machine. Repositories are read with your own Git.

Keychain only

Tokens stay in the OS keychain and never reach the interface, logs or database.

Exact commands

Every process runs from an allow-listed argument vector, never a shell string.

One mutating Git command

An initial HTTPS clone into a workspace you approved. No hooks, no submodules, no tokens in URLs.

Read the full security model.

Desktop app

Run your first campaign today.

Unsigned pre-release installers for macOS, Windows and Linux are on GitHub Releases, or build ShiftOps from source in a few commands.