Does it compile?
Green. The regression still ships.
Ghost records every agent turn, blames the exact prompt that introduced the regression, and rolls the file back in one click.
A pull request can be green on types and still leak memory, spin the CPU, or add 400ms to p95 latency. Existing tools each answer one question.
Ghost answers the one that matters after the fact.
Green. The regression still ships.
Red. You know something broke. The suite stops the merge.
The prompt, the diff, and the rollback. In one recording.
One tower flickers. That is the regression.
A shadow git commit per change burst. Runtime metrics sampled from /api/health. An HTTP probe for latency and errors.
Threshold check. Trend slope. A per-turn bisect. Ghost names the exact turn that introduced the regression.
Roll the blamed file back to the pre-regression commit. Re-measure. Watch the curve flatten.
Seven turns, one red line, one file to roll back. Every number comes from the app, not from what the agent says it did.
7 turns · 28 samples · blamed on turn 4
turn 4 · src/store/invoices.ts
Add a bounded LRU eviction (e.g. clear or shift when size exceeds a cap) to src/store/invoices.ts and re-run the memory regression check.
Agent-agnostic by design
TestSprite tells you the PR is red. Ghost tells you which prompt turned it red. Both belong in the loop.
23 backend tests + 1 integration flow. Every pull request. The deployed URL.
| Question | CI / types | TestSprite | Ghost |
|---|---|---|---|
| Does it compile? | Green | Not its job | Not the question |
| Does the PR break the app? | Unknown | Red or green | Red or green |
| Which turn broke it — and how do I undo it? | No | No | The prompt, the diff, the rollback |
No agent SDK. No lock-in. Ghost watches the filesystem and the process, so every tool produces the same recording.
See what the AI builds. Know when it breaks it. Then roll the file back and watch the curve flatten.
Built for TestSprite Season 4 · 24-test suite required check