The AI says it’s fixed.
You still click through the whole app yourself. Just to be sure nothing else broke.
Lamps on every partOne board for your app: inside, outside, and the next feature.
You still click through the whole app yourself. Just to be sure nothing else broke.
Lamps on every partYour code didn’t change. A key expired, or the payment account ran out of something.
External servicesEvery new thing might quietly break an old one. So you stop building.
New featuresUnitBob draws your app as the things it does for people —
signing in, paying, sending a receipt — and puts a lamp on each.
A customer has a valid email address
Their payment completes successfully
A receipt is queued for that customer
Expected 1 receipt in the delivery queue. Found 0.
Payment still works; the hand-off to email doesn’t. Your agent takes this contract as its next fix and runs it again.
Payments, email, sign-in, storage, AI vendors: your app leans on services you don’t own. UnitBob checks each one against the real vendor and gives it a card.
Two lamps per service. Access: does the vendor still let your app in? Work: can your account do the job — money, limits, permissions?
A red card is not your code. It names the key or the vendor, so you know where to look.
Describe what you want in your own words. UnitBob agrees with you what “done” means, then checks the new feature — and every old one — before you finish.
Say it to your agent like you’d say it to a person.
Your agent asks only what it still needs to know and writes down what “done” means.
Each scenario becomes a contract. Your agent builds until the new ones pass.
Every old contract runs too. If the new feature broke something, you hear it now — not from a customer.
Once finished, the new contracts stay on the board and guard the feature from the next change.
No new editor, no tests to write.
Your coding agent does the work; you say what matters.
One line in Claude Code or Codex. Then start a new chat.
YOU GET UnitBob in your agentYour agent draws your app’s parts and writes their contracts. You check the map matches the app you meant to build.
YOU GET A board with a lamp on every partAfter any change. Red lamps come with a reason, and your agent can fix them one by one.
YOU GET What still works — and what to fixNo. Your coding agent writes the contracts. You agree, in your own words, what each part of your app should do.
The lamps light up every time your contracts run: when you ask your agent to run the checks, and when it finishes a feature. External services are checked against the real vendors when you ask. It is not an uptime monitor for your live site.
No. A green lamp means its contracts passed in that run. What no contract checks — other environments, security, heavy load — needs its own checks.
A local codebase in Ruby on Rails, JavaScript/TypeScript or Python; Claude Code or Codex with the UnitBob plugin; Node 18 or newer and Python 3.10 or newer.
The coding agent works with your local project, and the UnitBob command-line tool communicates with the UnitBob server. Your configured AI provider may process code supplied by the agent.
Start with one project. See its health, its services
and its next feature on one board.