New to Claude Skills? Learn how to install them →

Palirezarezvani on GitHub

Playwright Pro

Free

A comprehensive toolkit for Playwright testing.

Get this skill

Free · Opens the source repo

What Playwright Pro does

Playwright Pro is a production-grade testing toolkit designed specifically for Playwright, a powerful framework for end-to-end testing and browser automation. This skill provides a suite of commands that streamline the testing process, making it easier for developers to generate, review, and fix tests. With features aimed at enhancing test quality and reducing flaky failures, Playwright Pro is an essential tool for teams looking to implement robust testing practices in their CI/CD pipelines.

The toolkit includes commands such as /pw:init to scaffold your Playwright setup, /pw:generate to create tests from user stories or URLs, and /pw:review to analyze your tests for anti-patterns and coverage gaps. Additionally, it offers the ability to diagnose and fix flaky tests with the /pw:fix command, ensuring that your test suite remains reliable and efficient. The integration with TestRail and BrowserStack further enhances its capabilities, allowing for seamless synchronization of test results and cross-browser testing.

Playwright Pro also comes with a wealth of resources, including 55 test templates covering various scenarios like authentication, CRUD operations, and API interactions. The included reference documents provide guidance on best practices, common pitfalls, and effective locator strategies, ensuring that users can write high-quality, maintainable tests. This skill is particularly beneficial for teams transitioning from other frameworks like Cypress or Selenium, as it includes migration guides to facilitate a smooth changeover.

Overall, Playwright Pro is tailored for developers and QA engineers who prioritize quality in their testing workflows. Its structured approach to test generation, review, and maintenance makes it a valuable addition to any project utilizing Playwright for automated testing.

When to use it

Use this skill when you need to implement or improve Playwright testing in your projects, especially for generating and managing test cases.

When not to use it

This skill may not be suitable for projects that do not utilize Playwright or require testing frameworks outside of its scope.

What you can build with it

Setting Up Playwright

Quickly scaffold your Playwright configuration and create an initial test using the `/pw:init` command.

Generating Tests from User Stories

Generate automated tests directly from user stories or component specifications with the `/pw:generate` command.

Fixing Flaky Tests

Diagnose and resolve flaky tests efficiently by utilizing the `/pw:fix` command to ensure stability in your test suite.

How to install Playwright Pro

View source

1. Install with the skills CLI

npx skills add alirezarezvani/claude-skills/pw --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by alirezarezvani

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:

CommandWhat it does
/pw:initSet up Playwright — detects framework, generates config, CI, first test
/pw:generate <spec>Generate tests from user story, URL, or component
/pw:reviewReview tests for anti-patterns and coverage gaps
/pw:fix <test>Diagnose and fix failing or flaky tests
/pw:migrateMigrate from Cypress or Selenium to Playwright
/pw:coverageAnalyze what's tested vs. what's missing
/pw:testrailSync with TestRail — read cases, push results
/pw:browserstackRun on BrowserStack, pull cross-browser reports
/pw:reportGenerate test report in your preferred format

Quick Start Workflow

The recommended sequence for most projects:

1. /pw:init          → scaffolds config, CI pipeline, and a first smoke test
2. /pw:generate      → generates tests from your spec or URL
3. /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: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: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
  • 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

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.

Frequently asked questions about Playwright Pro

Similar skills