Use when writing E2E tests with Playwright, setting up test infrastructure, or debugging flaky browser tests. Invoke to write test scripts, create page objects, configure test fixtures, set up reporters, add CI integration, implement API mocking, or perform visual regression testing. Trigger terms: Playwright, E2E test, end-to-end, browser testing, automation, UI testing, visual testing, Page Object Model, test flakiness.
95
100%
Does it follow best practices?
Impact
90%
1.23xAverage score across 6 eval scenarios
Passed
No known issues
Playwright config and Page Object Model setup
fullyParallel enabled
100%
100%
CI-aware retries
100%
100%
Trace on failure
0%
100%
Screenshot on failure
0%
100%
testIdAttribute configured
0%
100%
POM classes created
100%
100%
No assertions in PO
100%
100%
Role-based selectors used
100%
100%
No CSS class selectors
100%
100%
getByTestId for data-testid elements
100%
100%
No waitForTimeout
100%
100%
Tests are independent
100%
100%
API mocking and test isolation
route.fulfill() used
100%
100%
Error state mocked
100%
100%
route.continue() used
0%
0%
waitForResponse used
0%
40%
No waitForTimeout
100%
100%
Tests are independent
100%
100%
Role-based selectors used
0%
100%
No CSS class selectors
100%
100%
getByTestId used appropriately
0%
50%
Category filter test covers interception
100%
100%
No first()/nth() without filter
0%
100%
Fixing flaky tests and proper selector usage
No waitForTimeout
100%
100%
waitForURL or waitForResponse used
100%
100%
No CSS class selectors
100%
100%
Role-based selectors used
100%
100%
getByLabel used for form fields
100%
100%
Shared state eliminated
100%
100%
Tests use beforeEach or independent setup
75%
100%
filter() instead of .first() for rows
0%
100%
FIXES.md explains categories
100%
100%
No new CSS selectors introduced
100%
100%
Custom fixtures and component page objects
test.extend() used
100%
100%
Component page object created
100%
100%
Component locators as class members
100%
100%
No assertions in page objects
100%
100%
Component composed in page
100%
100%
Fixture injects page objects
100%
100%
Role-based selectors in objects
100%
100%
No CSS class selectors
100%
100%
No waitForTimeout
100%
100%
POM files in correct directories
100%
100%
Authentication setup and CI pipeline configuration
global-setup.ts created
100%
100%
globalSetup referenced in config
100%
100%
storageState in use block
100%
100%
Setup project with testMatch
0%
0%
Project dependencies defined
0%
0%
forbidOnly in config
100%
100%
CI workers setting
100%
100%
CI retries
100%
100%
playwright install in CI
100%
100%
Upload report artifact
100%
100%
Multiple reporters configured
0%
100%
Route response modification and debug instrumentation
route.fetch() used
0%
100%
route.fulfill with modified json
0%
100%
filter() used for list elements
0%
0%
Chained locators used
100%
100%
page.on('console') or page.on('pageerror') instrumented
100%
100%
waitForResponse before assertions
0%
100%
No waitForTimeout
100%
100%
No CSS class selectors
100%
100%
Role-based selectors used
0%
0%
Tests are independent
100%
100%
5b76101
Table of Contents
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.