SkillLow riskUnclaimed

Playwright Pro

Production-grade Playwright testing toolkit. Use when the user mentions Playwright tests, end-to-end testing, browser automation, fixing flaky tests, test migration, CI/CD testing, or test suites. Generate tests, fix flaky failures, migrate from Cypress/Selenium, sync with TestRail, run on BrowserStack. 55 templates, 3 agents, smart reporting.

alirezarezvanialirezarezvani/playwright-pro★ 28kUpdated Aug 26, 2026

Description

Production-grade Playwright testing toolkit for AI coding agents.

Available Commands

When installed as a Claude Code plugin, these are available as /pw: commands:

Command What it does
/pw:pw-init Set up Playwright — detects framework, generates config, CI, first test
/pw:generate <spec> Generate tests from user story, URL, or component
/pw:pw-review Review tests for anti-patterns and coverage gaps
/pw:fix <test> Diagnose and fix failing or flaky tests
/pw:migrate Migrate from Cypress or Selenium to Playwright
/pw:coverage Analyze what's tested vs. what's missing
/pw:testrail Sync with TestRail — read cases, push results
/pw:browserstack Run on BrowserStack, pull cross-browser reports
/pw:report Generate test report in your preferred format

Quick Start Workflow

The recommended sequence for most projects:

1. /pw:pw-init          → scaffolds config, CI pipeline, and a first smoke test
2. /pw:generate      → generates tests from your spec or URL
3. /pw:pw-review        → validates quality and flags anti-patterns      ← always run after generate
4. /pw:fix <test>    → diagnoses and repairs any failing/flaky tests  ← run when CI turns red

Validation checkpoints:

  • After /pw:generate — always run /pw:pw-review before committing; it catches locator anti-patterns and missing assertions automatically.
  • After /pw:fix — re-run the full suite locally (npx playwright test) to confirm the fix doesn't introduce regressions.
  • After /pw:migrate — run /pw:coverage to confirm parity with the old suite before decommissioning Cypress/Selenium tests.

Example: Generate → Review → Fix

# 1. Generate tests from a user story
/pw:generate "As a user I can log in with email and password"

# Generated: tests/auth/login.spec.ts
# → Playwright Pro creates the file using the auth template.

# 2. Review the generated tests
/pw:pw-review tests/auth/login.spec.ts

# → Flags: one test used page.locator('input[type=password]') — suggests getByLabel('Password')
# → Fix applied automatically.

# 3. Run locally to confirm
npx playwright test tests/auth/login.spec.ts --headed

# 4. If a test is flaky in CI, diagnose it
/pw:fix tests/auth/login.spec.ts
# → Identifies missing web-first assertion; replaces waitForTimeout(2000) with expect(locator).toBeVisible()

Golden Rules

  1. getByRole() over CSS/XPath — resilient to markup changes
  2. Never page.waitForTimeout() — use web-first assertions
  3. expect(locator) auto-retries; expect(await locator.textContent()) does not
  4. Isolate every test — no shared state between tests
  5. baseURL in config — zero hardcoded URLs
  6. Retries: 2 in CI, 0 locally
  7. Traces: 'on-first-retry' — rich debugging without slowdown
  8. Fixtures over globals — test.extend() for shared state
  9. One behavior per test — multiple related assertions are fine
  10. Mock external services only — never mock your own app

Locator Priority

1. getByRole()        — buttons, links, headings, form elements
2. getByLabel()       — form fields with labels
3. getByText()        — non-interactive text
4. getByPlaceholder() — inputs with placeholder
5. getByTestId()      — when no semantic option exists
6. page.locator()     — CSS/XPath as last resort

What's Included

  • 9 skills with detailed step-by-step instructions
  • 3 specialized agents: test-architect, test-debugger, migration-planner
  • 55 test templates: auth, CRUD, checkout, search, forms, dashboard, settings, onboarding, notifications, API, accessibility
  • 2 MCP servers (TypeScript): TestRail and BrowserStack integrations (optional — not auto-registered; see Integration Setup)
  • Smart hooks: auto-validate test quality, auto-detect Playwright projects
  • 6 reference docs: golden rules, locators, assertions, fixtures, pitfalls, flaky tests
  • Migration guides: Cypress and Selenium mapping tables

Integration Setup

Not auto-registered (issue #978). The TestRail and BrowserStack MCP servers are no longer declared in the plugin's .mcp.json (they failed to connect for every user — no bundled node_modules). Exporting the env vars below is not enough: /pw:testrail / /pw:browserstack fail with "tool not found" until you enable the server manually (cd integrations/<name>-mcp && npm install, then register it in your own user/project MCP config). See CLAUDE.md → Integrations.

TestRail (Optional)

export TESTRAIL_URL="https://your-instance.testrail.io"
export TESTRAIL_USER="your@email.com"
export TESTRAIL_API_KEY="your-api-key"

BrowserStack (Optional)

export BROWSERSTACK_USERNAME="your-username"
export BROWSERSTACK_ACCESS_KEY="your-access-key"

Quick Reference

See reference/ directory for:

  • golden-rules.md — The 10 non-negotiable rules
  • locators.md — Complete locator priority with cheat sheet
  • assertions.md — Web-first assertions reference
  • fixtures.md — Custom fixtures and storageState patterns
  • common-pitfalls.md — Top 10 mistakes and fixes
  • flaky-tests.md — Diagnosis commands and quick fixes

See templates/README.md for the full template index.

Permissions

DeclaredDetected
Runs code—None
Installs—npmnpx
Runs install scripts—None
Network—your-instance.testrail.io
Needs credentials—API_TOKEN
Outside the workspace—None
Agent tools—None

Checks

Low risk · Nothing worth a warning was found.

Not reviewed by a person · Checked by rules; the model review is not switched on yet.

2 minor marks: common commands and the like, noted but not a concern
  • Rule · command_injectiontemplates/api/rest-crud.md:79
  • Rule · command_injectiontemplates/api/rest-crud.md:80

Files63 files · 303.3 KB

  • SKILL.md5.6 KB
reference/6
  • assertions.md2.2 KB
  • common-pitfalls.md3.1 KB
  • fixtures.md3.1 KB
  • flaky-tests.md1.5 KB
  • golden-rules.md906 B
  • locators.md2.1 KB
templates/1
  • README.md4.8 KB
templates/accessibility/3
  • color-contrast.md5.5 KB
  • keyboard-navigation.md5.2 KB
  • screen-reader.md5.6 KB
templates/api/5
  • auth-headers.md4.7 KB
  • error-responses.md5.4 KB
  • graphql.md5.9 KB
  • rate-limiting.md5.5 KB
  • rest-crud.md5.0 KB
templates/auth/8
  • login.md4.6 KB
  • logout.md4.1 KB
  • mfa.md5.1 KB
  • password-reset.md5.7 KB
  • rbac.md4.7 KB
  • remember-me.md5.6 KB
  • session-timeout.md4.3 KB
  • sso.md4.5 KB
templates/checkout/6
  • add-to-cart.md4.1 KB
  • apply-coupon.md5.0 KB
  • order-confirm.md4.1 KB
  • order-history.md4.6 KB
  • payment.md5.4 KB
  • update-quantity.md4.8 KB
templates/crud/6
  • bulk-operations.md5.2 KB
  • create.md4.7 KB
  • delete.md5.1 KB
  • read.md4.6 KB
  • soft-delete.md4.7 KB
  • update.md5.6 KB
templates/dashboard/5
  • chart-rendering.md4.9 KB
  • data-loading.md4.9 KB
  • date-range-filter.md5.5 KB
  • export.md5.7 KB
  • realtime-updates.md5.1 KB
templates/forms/6
  • autosave.md5.3 KB
  • conditional-fields.md5.6 KB
  • file-upload.md5.2 KB
  • multi-step.md5.5 KB
  • single-step.md4.8 KB
  • validation.md5.8 KB
templates/notifications/3
  • in-app.md4.8 KB
  • notification-center.md4.7 KB
  • toast-messages.md5.2 KB
templates/onboarding/4
  • email-verification.md5.0 KB
  • first-time-setup.md5.3 KB
  • registration.md5.7 KB
  • welcome-tour.md4.8 KB
templates/search/5
  • basic-search.md4.4 KB
  • empty-state.md4.5 KB
  • filters.md5.1 KB
  • pagination.md4.4 KB
  • sorting.md5.1 KB
templates/settings/4
  • account-delete.md5.7 KB
  • notification-prefs.md5.2 KB
  • password-change.md6.9 KB
  • profile-update.md5.2 KB

Versions

  1. #1—latestOct 7, 2026