Legacy Bridge

IBM Bob modernizes legacy Java. Bob's own tests decide what ships.

Results from real Bob runs

BLOCKED in 2 of 2 runs
Base64 · Apache 2005
Ticket: "reimplement on top of java.util.Base64". Bob's version changed behaviour; 8 of Bob's own tests failed. In run 1 even Bob's repair missed a 57-byte edge case and was refused.
Run 1 report · Run 2 report
VERIFIED
Metaphone · Apache 2005
A ~300-line refactor. 117 Bob tests pass (Bob hardened its suite from 4/5 to 5/5 traps); an independent check found 0 of 136,800 outputs changed.
Report
BLOCKED → repaired
Invoice · teaching example
Ticket: "simplify the branching logic". Bob changed > 10 to >= 10: 10 widgets would cost $23.75, not $25.00.
Report

How it works

  1. Bob writes characterization tests that pin down what the legacy code does today; they must pass on the untouched code (Bob fixes its own wrong ones).
  2. Mutation check: the code is broken on purpose, one real behaviour at a time; if a break slips through, Bob hardens its suite.
  3. Bob modernizes the class from a normal ticket.
  4. The gate re-runs Bob's tests: all pass → VERIFIED and applied; any fail → BLOCKED, nothing applied, failures go back to Bob to repair, and the repair must pass the same gate.

Evidence

19 real IBM Bob calls, 2.54 Bob coins, each with prompt, answer, raw output, cost and Bob Task ID: bob_sessions/. Replay the whole pipeline without a Bob account: see the README. Slides: PDF.