← ClaudeAtlas

e2e-reviewerlisted

Use for Playwright/Cypress E2E spec/POM static review, not runtime failure debugging. Triggers: review tests, audit quality, weak/flaky tests, anti-patterns, coverage gaps, tests pass but miss bugs. Reviews 24 anti-patterns. P0 must-fix (silent always-pass): name-assertion mismatch, missing Then, error swallowing, Cypress uncaught:exception suppression, always-passing assertions, bypass patterns, focused test leak, missing assertions, missing auth setup, missing await on expect, missing await on action. P1 should-fix (poor diagnostics): raw DOM queries, hard-coded sleeps, flaky test patterns, inconsistent POM usage, hardcoded credentials, direct page action API, expect.soft overuse, module-level mutable state in test utilities, unmocked real-backend writes, optimistic UI without call proof. P2 nice-to-fix (maintenance): YAGNI + zombie specs, manually-captured session-file dependency, fixture ignores render guards.
voidmatcha/e2e-skills · ★ 2 · Testing & QA · score 71
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