StoryProof

Your AI wrote code. Did it prove anything?

Independent verification for AI-generated code changes.
Finds real bugs. Catches misleading tests. Proves what's actually covered.

$ curl -fsSL https://storyproof.dev/install.sh | sh

Works with Claude Code

01 — What it catches

Real findings. Not hypotheticals.

These are actual defects StoryProof found in a Spring PetClinic PR. Every one was invisible to existing tests.

01

The silent 500

Your API should return 404 for a missing resource. Instead, @ModelAttribute throws an exception before your handler runs. Users get HTTP 500. Your test expects 404. The test is wrong — and passing.

02

The lying test

A test named visitsStayWithPet sounds like it checks visit history after transfer. It doesn't. It only checks the pet moved. Visits could silently disappear and this test would still pass.

03

The dark path

The most important UI flow — submitting the transfer form and landing on the target owner's page — has no test at any layer. Unit, integration, E2E. Nothing. The happy path is completely dark.

02 — How it works

Three commands. Full confidence.

storyproof check

Reads your code and tests. Finds gaps, defects, and misleading coverage. No tests written yet — just analysis.

~$0.50, 4 min

storyproof prove

Writes and runs real tests. Confirms blockers. Resolves gaps. Evidence you can read and verify.

~$1.00, 8 min

fix → prove → ship

Fix the defects. Re-run prove. Tests stay in your repo. Ship with confidence.

03 — Real output

This is what you actually see.

Not a mock-up. This is terminal output from a real storyproof check run.

Terminal — storyproof
StoryProof CheckDO NOT SHIP ## Likely defects — code analysis suggests these are broken [AC003] @ModelAttribute throws IAE → HTTP 500, not 404 Expected: API returns 404 when source owner does not exist Prove will: Run integration test and confirm [AC008] parseInt without try-catch → HTTP 500, not 400 Expected: API returns 400 for non-numeric input Prove will: Run integration test and confirm ## Needs proof — no test covers these behaviors [AC012] UI transfer happy path — no test at any layer [AC009] Visit history — test doesn't actually check visits Already covered by existing tests: 10 behaviors Next: storyproof prove — settle all 5 unresolved behaviors

04 — Get started

Running in 30 seconds.

$ curl -fsSL https://storyproof.dev/install.sh | sh
$ cd your-repo
$ storyproof check --spec "your feature description"

Requires Claude Code CLI. ~$0.50 per check, ~$1.00 per prove.