When to use it
| Use it when… | Use something else when… |
|---|---|
| You want broad test coverage with zero test code | You need component-level unit tests — use Jest / Vitest |
| Your app is web-based and serves HTTP | You’re testing a native binary, a CLI, or a mobile app |
| You want PR-reviewable regression diffs (same input → same plan → same outputs) | You need one-shot smoke checks with no persistence — use a Playwright recorder directly |
| You want a deterministic catalog committed to your repo | You want fully model-derived ad-hoc test plans on every run |
| You want every failure filed automatically as a GitHub / Jira / ADO defect | You don’t have an issue tracker connected and don’t want one |
What this plugin does
Section titled “What this plugin does”- Detect the framework (Next.js, Remix, SvelteKit, Angular, Vue, Vite+React, Blazor, Flutter web, plain HTML).
- Discover every route statically from the source tree, with auth/role/guard/HTTP-method metadata.
- Open each page in a real browser via the configured browser engine (Playwright by default) and inventory every form field, validator, button, modal, dialog, tab, and table.
- Author deep test tasks into
QA-tests/tasks/using an enforced template — happy path + validation matrix + modal coverage + button coverage + edge cases. - Watch the codebase via SessionStart + PostToolUse hooks and a Git pre-commit hook. When a route’s source drifts from the catalog, you’re nudged (or commits are blocked) until you run
/qa-catalog:sync. - Run one task, a subset, or every task in parallel with
/qa-catalog:run//qa-catalog:run-all. Each spawn writes a date-stampedresult.mdwith embedded screenshots, plus a top-level run summary and an append-only history index.
This plugin is project-agnostic — no app-specific assumptions.