Manual QA that knows your app, page by page.

QA Deck overlays a checklist on every page of your staging app — generated from specs in your own repo — and turns what testers find into structured, AI-consumable findings anchored to the exact element they picked.

How it works

Step 1
Embed one script tag
A framework-free widget on your dev and staging builds, gated by a single env var that is never set in production. No SDK, no dependencies, inert unless configured.
Step 2
Testers see what to test, per page
Checklists are generated from scenario specs in your repo and mapped to routes — every page shows its own scenarios, with an element picker that anchors findings to the exact UI element.
Step 3
Findings your agents can act on
Structured JSON with route, anchor, console tail and environment — consumable by AI triage, exportable, and filed to your issue tracker. Tester input is never overwritten.

What QA Deck needs from your repo

QA Deck works best when your repository is instrumented for it. The same investment — intent-level specs and stable element anchors — is exactly what AI agents need to generate end-to-end tests, so it pays for itself twice.

Scenario specs in your repo
Required
Markdown files where every #### heading is one testable scenario with intent-level Steps and Expected outcomes. A **Surface:** line pins a scenario to a route or sub-view. Your repo stays the single source of truth — QA Deck never invents test content.
Stable data-ref anchors
Required
A data-ref="area-element" attribute on interactive elements. The element picker anchors findings to them, and the same attributes double as robust selectors for AI-generated end-to-end tests.
A testable staging
Required
Seeded data and test accounts so deep, stateful flows are reachable; a console kept clean (every finding carries a console tail); CSP allowances for the widget origin on non-production only.
Checklist sync from CI
Recommended
Upload specs from project settings today; the qadeck-sync CLI (coming soon) runs in your CI on every merge, maps scenarios to routes using your code's import graph, and stamps checklists with the commit they describe.

Set it up with your AI coding agent

Everything above is a one-session job for an AI coding agent. We maintain a ready-made prompt that instruments your repo: it writes the spec scaffolding, authors initial scenarios for your core flows, adds data-ref anchors, and wires the env-gated embed and CI sync.