Skip to content

PROOFTRACE

An AI tester that proves every promise a feature makes.

Give it a user story. It opens your app in a real browser, does what the story describes, checks each acceptance criterion, and hands back tests you can rerun, with a screenshot of every step.

$ prooftrace run --story stories/create-project.md

passed: 8 of 8 criteria · 29.7 s · $0.028

THE GAP

Acceptance criteria are still checked by hand.

01

Clicked through

Someone opens the app and checks each criterion by eye, feature after feature.

02

Written by hand

Someone else turns those checks into automated tests, one selector at a time.

03

Out of date

The app moves on, the tests drift, and a red build stops meaning anything.

Prooftrace does the checking and the writing in one run, and keeps the evidence.

HOW IT WORKS

Seven stages, one run.

  1. 1

    Read

    loads the story from a Markdown file or a GitHub issue.

  2. 2

    Extract

    pulls out each acceptance criterion.

  3. 3

    Plan

    matches a saved recipe, or decides to explore.

  4. 4

    Sign in

    logs in; the AI never sees the password.

  5. 5

    Execute

    drives a real browser, a screenshot per step.

  6. 6

    Emit

    writes a Gherkin feature and a Playwright test.

  7. 7

    Verify

    runs the tests and marks each criterion proven or not.

WHO ACTS ON A STEP

  • Seeda saved recipe step, no AI
  • Fallbackthe AI finds an element that moved
  • Validatethe AI checks each section
  • Exploreno recipe, the AI drives

A REAL RUN

Watch a real run. Click any step.

The interactive replay loads here

Recorded with OpenAI's gpt-4.1 against a sample app. Every screenshot, click and check is real. Press Replay in the console to watch the run again.

TRUST BY DESIGN

No proof, no pass.

A criterion passes only when an assertion linked to it passes in the generated test. Actions alone prove nothing, and a run with an unproven criterion is a failed run.

Attacked in review: nine issues, nine guards

01

A page asks the AI to type the password somewhere else

✓ The password fills only password fields, on the app's own site.

02

The AI is steered to another website

✓ Navigation stays on the app's own site.

03

Page text poses as instructions

✓ Everything on the page is treated as data.

04

A story title smuggles code into generated tests

✓ Every text is encoded; locators are parsed, never pasted.

05

Generated tests try to read your API keys

✓ The test process gets an allowlisted environment.

06

A website rebinds its domain to your local server

✓ The server answers only to its own addresses.

07

A website opens a WebSocket to your local server

✓ Connections from any other site are refused.

08

A project's settings file swaps the browser program

✓ It may only supply the settings the config names.

09

A GitHub reference tries to climb out of its path

✓ It is rejected before any request is made.

NUMBERS

What a run costs.

Create a project: 43 steps, 8 of 8 proven, $0.028

Sign in with no recipe: the AI explored, 3 of 3 proven, $0.017

The same recipe with the AI switched off: 16.3 s, 8 of 8 tests pass, no evidence review

OpenAI gpt-4.1 against the sample app, September 2026.

ARCHITECTURE

One engine, one protocol, adapters for the rest.

Download the architecture deck (PDF)

HOW IT WAS BUILT

Designed and built by Abhijeet Solanki.

Built with help from Claude Opus and OpenAI.

  1. 01

    The idea

    Acceptance criteria should prove themselves, not wait for someone to click through them.

  2. 02

    The engine

    Seven stages, a typed event stream, and adapters for everything outside it.

  3. 03

    Real models, real lessons

    Live runs changed the design: the AI learned to read page text, to assert evidence, and to fail honestly.

  4. 04

    Attacked in review

    Nine security issues found by probing the code, each fixed and probed again.

  5. 05

    Launch

    Recorded runs you can click through, and code access on request.

18

tasks shipped

320+

automated tests

9

security issues fixed

Like what you see?

CODE ACCESS

Want to read the code?

The source is private. Tell me who you are and I'll send you read-only access on GitHub for [7] days.

Used only to grant access, and deleted after 30 days.

Every criterion proven. Every step on record.