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.
- BobFix Investigator
-
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.
-
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.
- BobFix Fixer
-
Fix the smallest thing
Bob writes a regression test, changes only what the evidence points at, and commits.
-
Let a script decide
scripts/verify.mjsruns 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
-
Download bobfix-skill.zip and unzip it at the root of your repository. You get
.bob/,.agents/andscripts/verify.mjs. -
Tell the fixer where your tests run. In
.bob/skills/bobfix-fix/SKILL.md, change the--appvalue:--app packages/apiverify.mjs reads Vitest results. Another runner? Add
--cmd "your test command"and it judges by exit code. -
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 setupSetup 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