//codebase-doctor

IBM Bob 2.0 skill + MCP server lablab.ai IBM Bob 2.0 Hackathon

An IBM Bob skill that upgrades a dependency across your codebase, and proves it works before you merge.

The Codebase Doctor migration report at the end of a React 17 to 18.3.1 upgrade: all eight stages done, pull request open, 11 files use react, 9 need attention, 8 breaking changes apply, verification passed.
11
files use react
4
high-risk files, ranked
10
steps, one commit each
#2
check passed; #1 failed first

One recorded run · react ^17.0.2 → 18.3.1 · real tool output

01The problem

Major upgrades get put off.

A bot can open the version bump. Finding what breaks, fixing it and proving it still works is left to people.

Swipe to see the whole sketch →

02The solution

One approval. Proof before merge.

Codebase Doctor maps every usage, plans the change, waits for your “approved”, and opens a pull request only when your own checks pass.

Swipe to see the whole sketch →

03Demo

Two minutes, start to finish.

04You stay in charge

Nothing changes until you say “approved”.

The server enforces it, not a prompt. Branch, patch and pull request refuse to run until you approve this exact plan, and no pull request opens until your checks pass.

checkout_branchrefused
Migration plan b3b654d66018 has not been approved. Present the plan to the user; after they type "approved", call approve_migration_plan with { sessionId, planId: "b3b654d66018", confirmation: "approved" }.

The server’s reply in the recorded run, word for word.

05Built on IBM Bob

It runs inside IBM Bob.

The migration-doctor skill drives 12 MCP tools. Plan mode waits for your approval, and Bob shows the report as an artifact.

Swipe to see the whole sketch →

IBM Bob in Agent mode after a development session: all tasks completed, 61 of 61 tests passing, and a table of the end-to-end pipeline it tested.
Building it. Bob Agent mode wrote and tested the server; this session ended with 61 of 61 tests passing.
IBM Bob running a migration session with an earlier version: a todo list of plan steps, commands it ran, and tools waiting for the user's approval.
Running it. A migration session in Bob with an earlier version: plan steps as a todo list, tools waiting for approval.

06Proof

One real run, failure included.

Verification history: run 1 failed on lint and one test, run 2 passed; installed versions, lint, test and build all pass.
Checked twice. Run #1 caught a deprecated call and a test React 18 batches differently. After the fixes, run #2 passed.
Sandbox pull request page: chore(deps): upgrade react ^17.0.2 → 18.3.1, with the commits pushed, one per migration step.
Then the pull request. One commit per step, with the report as its description. Open it ↗

Recorded on 26 Sep 2026 with a real npm install and real ESLint, Jest and esbuild runs. A script typed “approved” and made the manual edits in place of a person, and the pull request went to a local GitHub sandbox, not github.com.

07Get started

Runs locally, inside Bob.

terminal
$ git clone https://github.com/FayazNoor/Codebase-Doctor
$ cd Codebase-Doctor
$ npm install && npm run build
$ cp .bob/mcp.example.json .bob/mcp.json   # point it at backend/dist/index.js

then, in BobUpgrade react from 17 to 18.3.1 in https://github.com/<owner>/<repo>

Limits today PRs tested against a local sandbox React 17 → 18 is the golden path Single-package repositories Runs your repo’s own scripts

Try it on your next upgrade.