psis
ResourcesPricingDocs
Start here
OverviewQuickstart — end to end
Before you ship
Pre-deploy Checks (MCP)Security Scan (MCP)
After you deploy
PostHog IntegrationScans & Retention
Reference
Playwright ProofPrivacy & Redaction
OverviewQuickstart — end to endPre-deploy Checks (MCP)Security Scan (MCP)PostHog IntegrationScans & RetentionPlaywright ProofPrivacy & Redaction

Loading docs

Move fast.
Don’t break your users.

HomepagePrivacy PolicyResourcesTerms of ServicePricingDocsSample reportData ProcessingStatus
𝕏in

© 2026 Opsis — made for builders who ship fast

Real users in.
Proven fixes out.

Start free

Playwright Proof Engine

Playwright is Opsis's proof engine. Findings from replay analysis stay suspected until Playwright successfully reproduces them in a real browser — only then do they become verified.

What happens when you click “Run verification”

  1. Opsis takes the verification plan from the finding (created by AI from session evidence, or synthesized from signals).
  2. Headless Chromium runs against your app's URL, replaying the user's steps: open the route, fill the form (with synthetic test data), click the problematic element.
  3. During the run, Opsis records video, a trace, console messages, page errors, failed responses (≥400), and request failures.
  4. The bug counts as proven when the expected console error or failed request pattern shows up again.

Verification runs interact with your app at its configured app URL — point it at a staging environment if you don't want synthetic interactions on production.

Artifacts

storage/artifacts/<project-id>/<run-id>/
  video.webm        # screen recording
  trace.zip         # open with: npx playwright show-trace trace.zip
  screenshot.png    # final page state
  console.json      # console + page errors (redacted)
  network.json      # failed requests (redacted)
  test.spec.ts      # Playwright test you can run yourself
  result.json       # structured result

Artifacts are private: they are served only through an authenticated gateway that checks your organization membership. Artifacts expire automatically after the retention window (30 days by default).

Run statuses

  • passed — the bug was reproduced; evidence is stored; the finding becomes verified.
  • failed — the flow ran normally and nothing reproduced. If it wasn't a fix re-run, the finding becomes not_reproducible; a re-run of an already-verified or fixed finding becomes fixed; a re-run after a proposed fix becomes fixed_candidate until you confirm production.
  • inconclusive — errors were observed during the run, but none could be attributed to the suspected bug. The finding's status is left unchanged and the captured video and trace are kept for human review.
  • error — the runner itself failed; no conclusion about the bug.

Re-running the test in your repo

# download test.spec.ts from the run page, then:
npm i -D @playwright/test
npx playwright install chromium
npx playwright test test.spec.ts --headed

Retention & expired evidence

  • Artifacts are kept for 30 days by default, then removed by an automatic retention sweep.
  • Fix-evidence grace: the artifacts of the latest run of a finding that is currently verified or fixed survive past retention — the live proof of an open bug (or of a fix that worked) is never swept while the finding still depends on it.
  • Expired runs show an honest “evidence has expired” notice instead of broken links; the finding and run records themselves are kept. Re-run verification to regenerate fresh proof against your app's current state.

More on scan cadence and retention: Scans & Retention.