Skip to content
Open source, Apache-2.0

Turn a user-reported bug into a regression test.

Capture structural evidence, generate a Playwright reproduction, and verify the fix without recording screens, input values, or page text.

generated-repro.spec.tsReplayability B
test('StepStitch reproduction', async ({ page }) => {
  // TODO: authenticate as a synthetic test user if the flow requires it.

  // [NAVIGATION] /accounts/:id
  await page.goto('https://staging.example.test/accounts/1001');

  // [NAVIGATION] /accounts/:id/transfer
  await page.goto('https://staging.example.test/accounts/1001/transfer');

  // [CLICK] /accounts/:id/transfer
  await page.locator('[data-testid=payee-select]').click();

  // [CLICK] /accounts/:id/transfer
  await page.locator('[data-testid=amount-input]').click();

  // [CLICK] /accounts/:id/transfer
  const endpoint0 = new RegExp('/api/accounts/[^/]+/transfers$');
  const response0 = page.waitForResponse(
    (r) => endpoint0.test(new URL(r.url()).pathname) && r.request().method() === 'POST',
  );
  await page.locator('[data-testid=review-transfer]').click();
  // expected API failure: /api/accounts/:id/transfers (HTTP 500)
  const res0 = await response0;
  expect(res0.status(), 'no server error from /api/accounts/:id/transfers').toBeLessThan(500);

});
Real output from the committed synthetic trace.

In plain words

No jargon. Three steps from a customer’s bad moment to a fix that stays fixed.

01

A customer hits a problem

Something breaks while they are using your app, like a payment that will not go through.

02

StepStitch records the steps, not the screen

It records which control was used and what failed. It never captures screens, input values, or page text; free text is scrubbed server-side.

03

Your team reproduces it and proves the fix

In one click it becomes a test that fails on the bug and passes once it is fixed, so it stays fixed.

See exactly what your team gets

Follow a generated trace from structural timeline to replayability score, privacy posture, and runnable Playwright test. The panel always states its source.

stepstitch-repro.spec.ts
running

$ npx playwright test stepstitch-repro.spec.ts

Running StepStitch reproduction…

loading…

From one report to a verified fix

StepStitch perceives, scores, compiles, and drafts. It never plans or acts on its own. The autonomy stays in your stack.

Perceive

A user reports a bug. StepStitch stores a scrubbed, structural trace.

list_recent_traces

Score

A deterministic 0 to 1 score and an A to F grade say if it reproduces.

get_replayability_score

Reproduce

Fetch a deterministic Playwright test built from the trace. Text only.

generate_playwright_repro

Verify

Run it in your CI or sandbox. Red turns green once the fix lands.

get_verifications

Fix, human-gated

Draft a pull request with the regression test. A reviewer decides whether to merge.

github_bridge

Not session replay, not error tracking

Session replay and error tracking are useful for observation. StepStitch is built for a different output: a deterministic regression test backed by minimized structural evidence.

CapabilitySession replayFullStory, LogRocketOpenReplayOpen-source replayAPM and errorsSentry, DatadogStepStitchIssue-to-repro
Avoids screen, page text, and input capture
Replay is the product
Records DOM
Varies by signal
By architecture
Data-minimization posture
Requires configuration
DOM replay
Varies by signal
No screens, input values or page text; free text scrubbed server-side
Proves the bug is reproducible
No
No
No
0 to 1 score, A to F grade
Output is a regression test
A video
Exports a script
A stack trace
Asserting Playwright test
Self-hosted and auditable
SaaS only
Open source
SaaS only
Apache-2.0, self-host
Native to agent networks
No
No
No
MCP, 13 scoped tools

What these columns are based on

  • Session replay (FullStory, LogRocket): Session-replay tools reconstruct the user's session as a watchable recording; masking is a configuration applied on top. vendor documentation, checked 2026-08-04.
  • OpenReplay: OpenReplay is self-hosted and open source, and still produces a session recording as its primary artifact. vendor documentation, checked 2026-08-04.
  • APM and error tracking (Sentry, Datadog): Error and APM tools capture stack traces and breadcrumbs from the failure, and offer session replay as a separate product. vendor documentation, checked 2026-08-04.

Products change. These were read on 2026-08-04; if something here is out of date, tell us and we will correct it.

Private evidence, independently verified

The AI receives the structure of the failure without screens, input values, or page text. A fix is confirmed only after the same frozen test fails and then passes.

Provable minimization

The evidence pipeline is deny-by-default: a strict allowlist of structural fields, forbidden keys treated as leak signals, and a strict mode that refuses a payload outright rather than storing it.

  • A hand-rolled hostile POST cannot persist the values it carries: the server scrubs every ingestion before storage, independent of the SDK, and records what it stripped.
  • stepstitch policy verify runs your own hostile fixtures through the live scrub boundary and reports, per fixture, whether it was rejected, dropped or redacted.
Run the checks yourself

Independent verification

The test bytes and execution envelope are frozen, the red run is measured before any fix exists, and the rerun is measured by StepStitch. The proposing agent holds no credential that could record a verdict.

  • confirmed_fixed is derived from two measured runs: the same frozen test failing before the fix and passing after, never from a caller asserting it.
  • The credential handed to a coding agent cannot write a verdict: the verify scope sits outside the agent scope ladder, so the token that proposes a fix can never be the token that records it worked.
Verify an attestation

Book a pilot

Self-host the open-source core today, or talk to us about a managed pilot with white-glove integration and a compliance packet for your reviewers.