Bob fixes the bug.
Then proves it.

BobFix is a pair of skills for IBM Bob. It reproduces your bug with a test nobody can edit, finds the cause with two focused subagents, and only says VERIFIED when a script agrees.

Two Bob modes, their skills and verify.mjs · 26 KB zip · MIT licence

Two tabs reload at the same time

Tab A

    Tab B

      Two modes.
      One proof.

      BobFix adds two custom modes to IBM Bob. The investigator can read and run code but cannot touch your product code. The fixer can edit, but it cannot claim success on its own.

      1. BobFix Investigator
      2. Reproduce first

        From the bug report alone, Bob writes one test that replays what the user did and checks what the user sees. It runs it, watches it fail, and seals it with a SHA-256 hash.

      3. Trace it from both ends

        Two subagents run in parallel. One follows the request from the client to the response the user gets. The other follows the state: tokens, rows, timing. Their evidence merges into one causal chain.

      4. BobFix Fixer
      5. Fix the smallest thing

        Bob writes a regression test, changes only what the evidence points at, and commits.

      6. Let a script decide

        scripts/verify.mjs runs the test on the buggy commit in a clean git worktree, then on the fix, then the whole suite. No model is involved in the verdict.

      Install

      Add it to your repository

      1. Download bobfix-skill.zip and unzip it at the root of your repository. You get .bob/, .agents/ and scripts/verify.mjs.

      2. Tell the fixer where your tests run. In .bob/skills/bobfix-fix/SKILL.md, change the --app value:

        --app packages/api

        verify.mjs reads Vitest results. Another runner? Add --cmd "your test command" and it judges by exit code.

      3. Open the repository in IBM Bob. BobFix Investigator and BobFix Fixer appear in the mode picker.

      Or try it on the demo app first

      The repository ships Shoply, a small shop with the refresh-token bug from the panel above.

      git clone https://github.com/ouzejop/BobFix.git
      cd BobFix
      npm run setup

      Setup checks Node and Git, installs without native builds and runs a smoke test. Windows, Linux and macOS. Node 22 recommended.

      Use it

      Mode · BobFix Investigator

      Users get logged out randomly when they refresh the page.

      Mode · BobFix Fixer

      Apply and verify the fix.

      That is the whole interface. Bob keeps the chat short and writes the details to disk, so you can read the evidence instead of scrolling past it.

      What each run leaves behind

      .bobfix/runs/<run-id>/
      bug.json
      the report and the sealed repro test hash
      evidence-trigger.json
      what the request path showed
      evidence-state.json
      what the state path showed
      root-cause.json
      causal chain and fix direction
      before.txt · after.txt
      the failing assertion, in plain text
      fix.diff
      exactly what changed
      verification.json
      the only place VERIFIED comes from

      What VERIFIED means

      • The test fails on the buggy commit.
      • It passes on the fixed commit.
      • The full suite still passes.
      • The sealed repro test is byte-for-byte untouched.

      Bob is never allowed to edit verification.json, change the sealed test, or weaken an existing test to get a green run.

      $ node scripts/verify.mjs --base c06fdc6 \
          --test demo-app/api/tests/concurrent-refresh.test.ts
      ✓ Bug reproduced before fix   (1/2 failing)
      ✓ Regression test after fix   (2/2 passing)
      ✓ Full suite                  (20/20 passing)
      ✓ Build (skipped)
      
      STATUS: VERIFIED