e2e-reviewerlisted
Install: claude install-skill voidmatcha/e2e-skills
# E2E Test Scenario Quality Review
Systematic checklist for reviewing E2E **spec files AND Page Object Model (POM) files**. Covers Playwright and Cypress with full grep + LLM analysis. General principles (name-assertion alignment, missing Then, YAGNI) apply to any framework, but automated grep patterns are Playwright/Cypress-specific.
**Reference:**
- Playwright best practices: https://playwright.dev/docs/best-practices
- Cypress best practices: https://docs.cypress.io/app/core-concepts/best-practices
## Phase 0: Framework Detection
Before running checks, determine the framework by grepping for **actual import statements** in `.ts`/`.js` files:
- `@playwright/test` → Playwright
- `cypress` (as a module import or `cy.` call) → Cypress
**Do NOT use these as signals:**
- `nx.json` `"e2eTestRunner"` field — a generator-default, often left in place after Cypress/Playwright was removed (observed in OSS trial: repo had `"e2eTestRunner": "cypress"` but Cypress infra was deleted 17 days prior in a merged PR; only `.spec.ts` files were Jest unit tests)
- `package-lock.json` cached transitive deps — Cypress can appear in lockfile long after removal
- `.spec.ts` filename alone — could be Jest/Vitest unit tests, not Playwright/Cypress E2E
When `.spec.ts` files exist without `@playwright/test` or `cy.` imports, inspect 1-2 of them: presence of `TestBed`/`describe()` + `it()` without `page.goto`/`cy.visit` indicates Jest unit tests → **out of e2e-reviewer scope**.
**Skip framework-ir