Skip to content

When to use it

Use it when…Use something else when…
You want broad test coverage with zero test codeYou need component-level unit tests — use Jest / Vitest
Your app is web-based and serves HTTPYou’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 repoYou want fully model-derived ad-hoc test plans on every run
You want every failure filed automatically as a GitHub / Jira / ADO defectYou don’t have an issue tracker connected and don’t want one
  1. Detect the framework (Next.js, Remix, SvelteKit, Angular, Vue, Vite+React, Blazor, Flutter web, plain HTML).
  2. Discover every route statically from the source tree, with auth/role/guard/HTTP-method metadata.
  3. 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.
  4. Author deep test tasks into QA-tests/tasks/ using an enforced template — happy path + validation matrix + modal coverage + button coverage + edge cases.
  5. 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.
  6. Run one task, a subset, or every task in parallel with /qa-catalog:run / /qa-catalog:run-all. Each spawn writes a date-stamped result.md with embedded screenshots, plus a top-level run summary and an append-only history index.

This plugin is project-agnostic — no app-specific assumptions.