VBW 2: the AI no longer gets to say it's done
Ask an AI coding agent whether it finished and it will say yes. It says yes when it did. It says yes when it didn’t. The word costs the same either way.
VBW 2 is built around that problem.
The model proposes, the kernel disposes
Agents still do the work. But what counts as done is no longer up to them. It is decided by the kernel: a small program in bash, jq and git with no AI in it, which cannot be talked into anything.
Three things change
- The tests come first, and they must fail. Every requirement the spec marks as automatically checkable gets an acceptance check before any code is written. VBW runs it and confirms it fails today, for the right reason.
- You approve one contract, and it freezes. The spec, the plans and the checks are sealed with a SHA-256 hash. Change anything and your approval is withdrawn. Hooks write-protect the check files, so an agent cannot quietly “fix” the test instead of the code.
- Done is an exit code. The kernel runs the approved checks on a clean copy of
HEAD. If one fails, agents fix the code, never the checks. After three failed attempts, it comes to you.
| Claude Code on its own | Claude Code with the VBW kernel | |
|---|---|---|
| Who says it’s done | The model | The exit code of an approved check |
| Who can edit the tests | Anyone, including the agent being tested | Nobody, after approval |
| Where the state lives | The chat, until compaction eats it | A single validated record on disk |
What about tokens?
VBW 1 was about saving them, and we showed how we counted. VBW 2 is about trust. Savings become a side effect, partly because proofs reuse results for any check whose inputs have not changed. The receipts on the home page put all three side by side, stock, VBW 1 and VBW 2, with the method beside them.
Try it
Two lines install it, one command starts it. The VBW site walks through how it works, and the source is open.