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

$43,627.98

Missing from the books before Penny

5 of 5

Original tests passing while the books were off

0 of 7

Fee schedule rules enforced at audit

7

Findings, each proven with a failing test

How it works

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 audit

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.

Before Penny $43,627.98

Off across four accounts, with every original test passing.

Seven proven fixes 7

Each one a failing test first, then the smallest change that makes it pass.

After Penny Pending

Filled in from Penny's final trial balance, not before.

Findings

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.

Explore
  • P1Float money
  • P2Rounding drift
  • P3Retries charged twice
  • P4Fee taken twice
  • P5Fee cap missing
  • P6Refunds over the charge
  • P7Clearing never zero
P3Retries charged twiceCritical

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.

Explore
Custom mode

A Bob mode with her own role, five phases, and tool access limited to reading, editing and running tests.

Mode rules

Active only in Penny mode. She may never edit the fee schedule, and every fix needs a failing test first.

Five skills

One per phase: map the money, check the rules, hunt, prove and fix, trial balance.

Reads documents

Penny reads the written fee schedule and checks the code against every rule in it.

Limits

What Penny does not do yet.

Said plainly, so you can judge the rest of the page with it in mind.

The bugs were seeded

ShopLedger's money bugs were planted on purpose to mirror common real failures. Penny has not yet been run against a production payments codebase.

A simple ledger

The sample app keeps its ledger in memory. There is no database, no concurrency and no real payment provider in the loop.

It needs written rules

Policy checks depend on a fee schedule document. Without one, Penny can still catch float and rounding bugs, but not broken business rules.

Wired to this repo

Penny's rules point at ShopLedger's file paths. Using her on another codebase today means editing those paths in the .bob folder.

Not a human auditor

Penny produces evidence for an engineer or finance lead to review. She does not sign off on anyone's books.

Last phase ran outside Bob

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.