New: Earn 20% as an AgentAlley affiliate. Share your link and earn on every sale you refer. Join now New: Earn 20% as an affiliate. Join now

Production-grade Playwright testing toolkit

Playwright Pro

by alirezarezvani · MIT license · ★ 26,349 on GitHub · updated Aug 30

Playwright Pro cover

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.

---
name: "playwright-pro"
description: "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."
---

# Playwright Pro

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 |

Overview

Production-grade Playwright testing toolkit for AI coding agents.

Manual install (npx, ZIP)
Claude Codenpx skills add alirezarezvani/claude-skills --skill playwright-pro -g -a claude-code
Claude Code (manual)mkdir -p ~/.claude/skills && curl -sL https://codeload.github.com/alirezarezvani/claude-skills/tar.gz/19392f7a0826 \ | tar -xz -C ~/.claude/skills --strip-components=4 claude-skills-19392f7a0826/engineering-team/playwright-pro/skills/pw
Windows (PowerShell)New-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/35f6ec1bf56b2e86632d/pw.zip" -OutFile "$env:TEMP\pw.zip"; Expand-Archive "$env:TEMP\pw.zip" -DestinationPath "$HOME\.claude\skills" -Force
Claude.ai / desktopDownload the ZIP and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md5.6 KB
  • reference/6 files · 12.9 KB
  • templates/56 files · 284.8 KB
Read the files here
alirezarezvani/19392f763 files
Shared references2SKILL.md reads these from elsewhere in the repo. Not in the ZIP.Get them on GitHub ↗
SKILL.md
Show the full text132 lines

Playwright Pro

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="[email protected]"
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.

1---
2name: "playwright-pro"
3description: "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."
4---
5 
6# Playwright Pro
7 
8Production-grade Playwright testing toolkit for AI coding agents.
9 
10## Available Commands
11 
12When installed as a Claude Code plugin, these are available as `/pw:` commands:
13 
14| Command | What it does |
15|---|---|
16| `/pw:pw-init` | Set up Playwright — detects framework, generates config, CI, first test |
17| `/pw:generate <spec>` | Generate tests from user story, URL, or component |
18| `/pw:pw-review` | Review tests for anti-patterns and coverage gaps |
19| `/pw:fix <test>` | Diagnose and fix failing or flaky tests |
20| `/pw:migrate` | Migrate from Cypress or Selenium to Playwright |
21| `/pw:coverage` | Analyze what's tested vs. what's missing |
22| `/pw:testrail` | Sync with TestRail — read cases, push results |
23| `/pw:browserstack` | Run on BrowserStack, pull cross-browser reports |
24| `/pw:report` | Generate test report in your preferred format |
25 
26## Quick Start Workflow
27 
28The recommended sequence for most projects:
29 
30```
311. /pw:pw-init → scaffolds config, CI pipeline, and a first smoke test
322. /pw:generate → generates tests from your spec or URL
333. /pw:pw-review → validates quality and flags anti-patterns ← always run after generate
344. /pw:fix <test> → diagnoses and repairs any failing/flaky tests ← run when CI turns red
35```
36 
37**Validation checkpoints:**
38- After `/pw:generate` — always run `/pw:pw-review` before committing; it catches locator anti-patterns and missing assertions automatically.
39- After `/pw:fix` — re-run the full suite locally (`npx playwright test`) to confirm the fix doesn't introduce regressions.
40- After `/pw:migrate` — run `/pw:coverage` to confirm parity with the old suite before decommissioning Cypress/Selenium tests.
41 
42### Example: Generate → Review → Fix
43 
44```bash
45# 1. Generate tests from a user story
46/pw:generate "As a user I can log in with email and password"
47 
48# Generated: tests/auth/login.spec.ts
49# → Playwright Pro creates the file using the auth template.
50 
51# 2. Review the generated tests
52/pw:pw-review tests/auth/login.spec.ts
53 
54# → Flags: one test used page.locator('input[type=password]') — suggests getByLabel('Password')
55# → Fix applied automatically.
56 
57# 3. Run locally to confirm
58npx playwright test tests/auth/login.spec.ts --headed
59 
60# 4. If a test is flaky in CI, diagnose it
61/pw:fix tests/auth/login.spec.ts
62# → Identifies missing web-first assertion; replaces waitForTimeout(2000) with expect(locator).toBeVisible()
63```
64 
65## Golden Rules
66 
671. `getByRole()` over CSS/XPath — resilient to markup changes
682. Never `page.waitForTimeout()` — use web-first assertions
693. `expect(locator)` auto-retries; `expect(await locator.textContent())` does not
704. Isolate every test — no shared state between tests
715. `baseURL` in config — zero hardcoded URLs
726. Retries: `2` in CI, `0` locally
737. Traces: `'on-first-retry'` — rich debugging without slowdown
748. Fixtures over globals — `test.extend()` for shared state
759. One behavior per test — multiple related assertions are fine
7610. Mock external services only — never mock your own app
77 
78## Locator Priority
79 
80```
811. getByRole() — buttons, links, headings, form elements
822. getByLabel() — form fields with labels
833. getByText() — non-interactive text
844. getByPlaceholder() — inputs with placeholder
855. getByTestId() — when no semantic option exists
866. page.locator() — CSS/XPath as last resort
87```
88 
89## What's Included
90 
91- **9 skills** with detailed step-by-step instructions
92- **3 specialized agents**: test-architect, test-debugger, migration-planner
93- **55 test templates**: auth, CRUD, checkout, search, forms, dashboard, settings, onboarding, notifications, API, accessibility
94- **2 MCP servers** (TypeScript): TestRail and BrowserStack integrations *(optional — not auto-registered; see Integration Setup)*
95- **Smart hooks**: auto-validate test quality, auto-detect Playwright projects
96- **6 reference docs**: golden rules, locators, assertions, fixtures, pitfalls, flaky tests
97- **Migration guides**: Cypress and Selenium mapping tables
98 
99## Integration Setup
100 
101> **Not auto-registered (issue #978).** The TestRail and BrowserStack MCP servers
102> are no longer declared in the plugin's `.mcp.json` (they failed to connect for
103> every user — no bundled `node_modules`). Exporting the env vars below is not
104> enough: `/pw:testrail` / `/pw:browserstack` fail with "tool not found" until you
105> enable the server manually (`cd integrations/<name>-mcp && npm install`, then
106> register it in your own user/project MCP config). See `CLAUDE.md` → Integrations.
107 
108### TestRail (Optional)
109```bash
110export TESTRAIL_URL="https://your-instance.testrail.io"
111export TESTRAIL_USER="[email protected]"
112export TESTRAIL_API_KEY="your-api-key"
113```
114 
115### BrowserStack (Optional)
116```bash
117export BROWSERSTACK_USERNAME="your-username"
118export BROWSERSTACK_ACCESS_KEY="your-access-key"
119```
120 
121## Quick Reference
122 
123See `reference/` directory for:
124- `golden-rules.md` — The 10 non-negotiable rules
125- `locators.md` — Complete locator priority with cheat sheet
126- `assertions.md` — Web-first assertions reference
127- `fixtures.md` — Custom fixtures and storageState patterns
128- `common-pitfalls.md` — Top 10 mistakes and fixes
129- `flaky-tests.md` — Diagnosis commands and quick fixes
130 
131See `templates/README.md` for the full template index.
132 
View all files on GitHub →

Details

Updated
Aug 30, 2026
License
MIT
Stars on the repo
★ 26,349
Checked
Source
alirezarezvani/claude-skills ↗
Creator
alirezarezvani · 363 listings
View creator

Similar skills

See all →
Skill29 production-ready scripts for iOS app testing, buildingIos simulator skillconorluddy/ios-simulator-skill · by conorluddy29 production-ready scripts for iOS app testing, building, and automation. Provides semantic UI navigation, build automation, accessibility testing, and simulator lifecycle management. Optimized for AI agents with minimal token output.★ 1.3k GitHub starsSkillMoAI unified orchestrator for autonomous developmentmodu-ai/moai-adk · by modu-aiMoAI unified orchestrator for autonomous development. Routes natural language or subcommands (plan, run, sync, project, fix, loop, mx, feedback, review, clean, codemaps, gate, e2e, harness, goal, gtd, todo) to specialized agents.★ 1.2k GitHub starsSkillWrite Android unit, Compose UI, and Hilt-integrated testsAndroid Testing StandardsHoangNguyen0403/agent-skills-standard · by HoangNguyen0403Write Android unit, Compose UI, and Hilt-integrated tests. Use when designing test behavior with MockK or coroutine test utilities; defer database/WorkManager-specific recipes to the owning feature skill.★ 569 GitHub starsSkillImplementing any feature or bugfixTest-Driven Development (TDD)obra/superpowers · by obraUse when implementing any feature or bugfix, before writing implementation code★ 290k GitHub starsSkillToolkit for interacting with and testing local webWebapp testinganthropics/skills · by anthropicsToolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.★ 178k GitHub starsPromptGuide to fixing bugs using a test-first approachTest first bug fixing approachf/prompts.chat · by Ilker UlusoyGuide to fixing bugs using a test-first approach, ensuring code reliability through systematic testing and implementation.New listing

More from alirezarezvani

SkillResume a paused experiment/ar:ar-resume — Resume Experimentalirezarezvani/claude-skills · by alirezarezvaniResume a paused experiment. Checkout the experiment branch, read results history, continue iterating. Use when the user runs /ar:ar-resume or asks to pick up a previously started autoresearch experiment.★ 26.3k GitHub starsSkillShow experiment dashboard with results, active loops/ar:ar-status — Experiment Dashboardalirezarezvani/claude-skills · by alirezarezvaniShow experiment dashboard with results, active loops, and progress. Use when the user runs /ar:ar-status or asks how an autoresearch experiment is going.★ 26.3k GitHub starsSkillStart an autonomous experiment loop with user-selected/ar:loop — Autonomous Experiment Loopalirezarezvani/claude-skills · by alirezarezvaniStart an autonomous experiment loop with user-selected interval (10min, 1h, daily, weekly, monthly). Uses CronCreate for scheduling. Use when the user runs /ar:loop or asks to run an autoresearch experiment continuously on a schedule.★ 26.3k GitHub starsSkillRun a single experiment iteration/ar:run — Single Experiment Iterationalirezarezvani/claude-skills · by alirezarezvaniRun a single experiment iteration. Edit the target file, evaluate, keep or discard. Use when the user runs /ar:run or asks for one manual autoresearch iteration.★ 26.3k GitHub starsSkillSet up a new autoresearch experiment interactively/ar:setup — Create New Experimentalirezarezvani/claude-skills · by alirezarezvaniSet up a new autoresearch experiment interactively. Collects domain, target file, eval command, metric, direction, and evaluator. Use when the user runs /ar:setup or asks to start optimizing a file with the autoresearch loop.★ 26.3k GitHub starsSkill/cs:boardroom <brief/cs:boardroom — Multi-Role Boardroom Deliberationalirezarezvani/claude-skills · by alirezarezvani/cs:boardroom <brief> — 6-phase multi-role deliberation across the C-suite with Phase 2 isolation, critic pre-screen, and synthesis. Outputs a board memo. Use when a decision spans multiple executive domains — e.g. a pricing change touching finance, positioning, and product, or a raise-vs-cut runway call.★ 26.3k GitHub stars