Your tests pass. Your books don't.
Penny is a money auditor inside IBM Bob. She finds every cent your payment code loses, proves it with a failing test, and fixes it.
One simulated day at ShopLedger, a sample payments app, 500 orders
Missing from the books before Penny
Original tests passing while the books were off
Fee schedule rules enforced at audit
Findings, each proven with a failing test
An auditor's method, run inside your editor.
Every rule in your fee schedule, checked.
Penny reads your written money rules, turns each one into a check, and finds the exact file and line that breaks it. On our sample payments app, not one of the seven rules held.
Every fix starts with a failing test.
Penny never patches on a hunch. She writes a test that shows the money going wrong, runs it and lets it fail, makes the smallest fix, then runs the whole suite again. One finding, one proof, one fix.
Every dollar traced to its cause.
A total is not an explanation. Penny splits each account's gap into the bugs that caused it, and the parts add up to the cent. No plug figures, nothing left over.
The whole story, in one line.
Same simulated day, same 500 orders, same reconciliation script. The only thing that changed is the code Penny fixed.
Off across four accounts, with every original test passing.
Each one a failing test first, then the smallest change that makes it pass.
Filled in from Penny's final trial balance, not before.
Seven findings. Every one proven.
From Penny's audit of ShopLedger, a sample payments app with deliberately seeded bugs. Pick one to see its impact.
- P1Float money
- P2Rounding drift
- P3Retries charged twice
- P4Fee taken twice
- P5Fee cap missing
- P6Refunds over the charge
- P7Clearing never zero
A retried charge with the same idempotency key debited the customer a second time.
- Rule broken
- Rule 5
- Impact, one day
- $15,582.24
- Who loses
- Customers
- Graded by dollar impact, not by guesswork
- Each one proven by a failing test before the fix
- Cited to a rule, a file and a line
- Split per account, adding up to the cent
Built into IBM Bob, not bolted on.
Penny is not a script that calls Bob. She is Bob, shaped by a custom mode, her own rules and five skills, working in your repository.
A Bob mode with her own role, five phases, and tool access limited to reading, editing and running tests.
Active only in Penny mode. She may never edit the fee schedule, and every fix needs a failing test first.
One per phase: map the money, check the rules, hunt, prove and fix, trial balance.
Penny reads the written fee schedule and checks the code against every rule in it.
What Penny does not do yet.
Said plainly, so you can judge the rest of the page with it in mind.
ShopLedger's money bugs were planted on purpose to mirror common real failures. Penny has not yet been run against a production payments codebase.
The sample app keeps its ledger in memory. There is no database, no concurrency and no real payment provider in the loop.
Policy checks depend on a fee schedule document. Without one, Penny can still catch float and rounding bugs, but not broken business rules.
Penny's rules point at ShopLedger's file paths. Using her on another codebase today means editing those paths in the .bob folder.
Penny produces evidence for an engineer or finance lead to review. She does not sign off on anyone's books.
Our 40 Bobcoin budget ran out while Penny was writing the final regression test. The trial balance was then run from a script that pastes raw command output into the report, and says so at the top.
Questions a skeptic would ask.
Couldn't normal tests catch this?
They didn't. ShopLedger's five original tests all passed while the books were $43,627.98 off. Tests check what a developer thought to check. Penny checks the ledger against the written rules, then proves each gap with a new test.
Why not just ask Bob in Agent mode?
Agent mode will happily fix code. Penny's mode adds the discipline an audit needs: she cannot edit the fee schedule or the reconciliation script, she must show a failing test before any fix, and she stops after every phase so a person reviews the evidence.
Does Penny change my code without asking?
No. She works one phase at a time and waits for you to say continue. Fixes go one finding at a time, each with its own test and an entry in the fix log.
How do I know the numbers are real?
Everything on this page comes from files in the repository: the reconciliation script, Penny's reports and the test suite. Clone it, run npm test and npm run simulate, and you get the same numbers.