A "two day" feature becomes two weeks because of something nobody knew was in the code. Before your team commits to a date, Settle has IBM Bob check the risky parts against your real code, and shows you what will get in the way.
The problems are only found by building, so they are found after the date is promised.
A manager asks for a feature. Engineers read the code and guess: "about two days."
Days in, something in the code gets in the way that nobody knew was there.
The date moves, and the team trusts its next estimate a little less.
A spike your team would spend days on, done against your real code in about four minutes.
The thing you are about to estimate, like "let customers delete their account", on the repo you have open.
Bob reads the code the feature touches and lists what must be true for it to be as easy as it looks.
One Bob per item, each in its own copy of your repo, writes a real test against today's code.
Every test is rerun by Settle, never taken on Bob's word. Tests may only add files, never change yours.
What is safe, what will get in the way and why, and a plan with the problems first.
Real recorded runs of Settle on a small demo online store. Pick what a manager just asked for and see what would have gone wrong.
Settle runs next to your code with your IBM Bob. Nothing is merged; every test stays on its own branch.
The Settle Prove mode writes prove.yml for the app you have open, asks before it spends anything, runs the proof on your code, and tells you the blockers in plain words. It can only ever write prove.yml.
# in Bob IDE, mode: Settle Prove
You: Before I estimate it, check "let customers
delete their account" in this repo.
Bob: Wrote prove.yml. Run the proof? About four
minutes and three Bobcoins.
You: Yes.
Bob: 3 blockers. Deleting a customer with orders
is refused by the database...
Or from the terminal and CI:
Node 24, git, and IBM Bob Shell with an API key.
git clone https://github.com/jenzylove/settle
cd settle && npm install && npm link
export BOB_API_KEY=... # Bob Shell, Inference scopeA prove.yml in the app you are estimating.
request: Let customers delete their account.
context: Customers want a "delete my account" button.
experiment:
command: node --import tsx --test {file}About four minutes later you get the results page and the plan.
settle prove # runs/prove-.../index.html results page # runs/prove-.../proof.json for your tools
An example GitHub Actions job that proves a feature when a ticket is labelled estimate.
on:
issues: { types: [labeled] }
jobs:
prove:
if: github.event.label.name == 'estimate'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# install IBM Bob Shell per bob.ibm.com/docs/shell
- run: git clone https://github.com/jenzylove/settle ../settle && npm --prefix ../settle ci
- run: echo "request: ${{ github.event.issue.title }}" > prove.yml && node ../settle/bin/settle.mjs prove
env: { BOB_API_KEY: ${{ secrets.BOB_API_KEY }} }An AI can tell you what might go wrong. Settle shows you what does, in your code, today.
"Deleting accounts might affect existing orders."
Maybe. How, and how badly? Nobody knows until someone builds it.
FK violation raised while deleting customer 1 who has 33 orders: update or delete on table "customers" violates foreign key constraint "orders_customer_id_fk…
A real test against real code, rerun by Settle, on a branch you can open.
No. You name a feature and Settle runs experiments on your code. What you get back is tests that passed or failed, the exact errors, and a plan written from them.
No, and that is on purpose: Settle has to run next to your code, with your Bob. The Try it page replays real runs on our demo store so you can see exactly what you would get.
You don't have to. Settle reruns every test itself. A test that crashed before testing, never imported your app, or changed an existing file is marked unsure, never a blocker. Each finding shows the rerun output, Bob's own read, and the test code.
Add your own. List them under checks: in prove.yml and Settle tests them alongside Bob's, the same way.
No. Experiments run in separate git worktrees and may only add files. Nothing is merged.
About four minutes and about three Bobcoins per feature: one Bob session to find the risks, one per risk, and one to write the plan.
Pick a feature request and watch Settle find what would have gone wrong.