Reference
Local test inventory, route↔test map, and coverage gaps.
What this means for your team: Test Coverage Review shows where the live site is ahead of your automated tests — so QA and engineering know what to write next. Technically, we compare your paid crawl to a local checkout on three axes: pages/routes (browser suites), buttons and forms (Application Map vs test locators), and unit/component files. No GitHub OAuth — inventory stays on your machine until you POST it with `bundle`.
| Step | Command | API token? |
|---|---|---|
| Inventory only | qa-audit repo-scan --path . [--json] | No — detects package manager, test runners, frameworks, unit/component file matches |
| Compare to job | qa-audit bundle --job-id <id> --path . | Yes — writes ./qa-audit/ (see bundle-artifacts) |
| Download map | qa-audit bundle download --job-id <id> --path . | Yes — refresh markdown in ./qa-audit/ |
Pages/routes (coverage.csv / tests/gaps.md) — for developers:
| Match | Meaning |
|---|---|
| path_selector | goto/visit/href or path-like locator matched the crawl path — observed/detected |
| test_filename | Spec name suggests the route (about.spec ↔ /about) — inferred |
| route_list | Static route list in repo aligned with crawl path |
| sitemap_loop | Test iterates sitemap or route manifest entries |
| none / gap | No inventory evidence — add a smoke or e2e visit |
Buttons and forms: when the audit includes an Application Map, we match controls on crawled pages to locators in your test files. Gaps land in tests/controls.md.
Unit/component files: we match source files to nearby `*.test` / `*.spec` files by name — that is not the same as a browser suite visiting the URL. See tests/unit.md.
Declared app routes compared to the crawl: framework route lists (for example Next.js app router) checked against crawled paths — tests/app-routes.md.
qa-audit init # optional qa-audit.yml for testDirs, fileCap, exclude
qa-audit repo-scan --path . --json --out inventory.json
qa-audit bundle --job-id JOB_ID --path .
# → ./qa-audit/report.md, coverage.csv, per-page.md, tests/*.md
scans:
- coverage
tier: teamWithout --path inventory, the bundle never marks routes as covered. Application Map control gaps need Essential+ on the job. Engineering adds draft titles/snippets for route and control gaps — not generated Playwright files in your repo.