playwright-e2e
Skill5 starsChanged 15 days agoMITView on GitHub
Playwright end-to-end testing skills for playwright-ts-template: plan, generate, review and debug tests with page objects, web-first assertions, fixtures and a test data strategy. Use when writing, fixing or reviewing Playwright tests, page objects, fixtures or playwright.config.
- Installs packages
13 other projects use a version of this, 1 of them edited.
Adopted by
Most recently taken up by
- nledford/engineering-review-boardtheir own version, first seen Nov 3, 2026
- willcoliveira/qualiow-playwright-skillsedited, first seen Oct 28, 2026
- mikulgohil/claude-skillstheir own version, first seen Oct 13, 2026
- ch4570/vulporatheir own version, first seen Oct 11, 2026
- yuanJewel/skillstheir own version, first seen Oct 11, 2026
- forcedotcom/salesforcedx-vscodetheir own version, first seen Oct 8, 2026
Used with
Projects with it also use security-review.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
SentrySkillsecurity-review
Finds exploitable application security vulnerabilities in code changes. Use for Warden security scans, appsec review, OWASP-style checks, authentication or authorization bugs, injection, XSS, SSRF, path traversal, secrets, unsafe crypto, webhook verification, open redirects, or sensitive data exposure.
Also in 3 projects that use this
Other versions13 projects use a version of this.
Word for word · 0
None found.
Edited · 1
- willcoliveira/qualiow-playwright-skills★ 1975% same
Wrote their own version · 12
- forcedotcom/salesforcedx-vscode★ 1ksame name
- hmislk/hmis★ 244same name
- nledford/engineering-review-board★ 11same name
- 5dive-ai/skills★ 2same name
- yuanJewel/skills★ 2same name
- ch4570/vulpora★ 1same name
- alsovdev/playwright-e2e★ 0same name
- BhavinM/my-claude-setup★ 0same name
- kskonovalov/claude-skills★ 0same name
- mikulgohil/claude-skills★ 0same name
2 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository10 other files it gives its agents.
- AGENTS.mdAGENTS.md
- .github/copilot-instructions.mdCopilot instructions
- .cursor/rules/playwright-e2e.mdcCursor rule
- playwright-cliSkill
- playwright-component-testingSkill
- playwright-traceSkill
- playwright-cliSkill
- playwright-component-testingSkill
- playwright-e2eSkill
- playwright-traceSkill
The file
We split this skill into the rules it gives an agent
6 rules. 0 are common, 0 are distinctive, and 6 are very specific to this project.
0
Common
Most of the 11 edited versions we read keep these.
0
Distinctive
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 51
No substitute exploration: If playwright-cli is unavailable, stop and say so.
- Very specific: line 123
Before writing tests: read references/test-planning.md, explore the page (playwright-cli if installed), then write using …
- Very specific: line 124
Before submitting PRs: run the references/test-review.md checklist
- Very specific: line 125
When tests fail: follow references/test-debugging.md, attach with --debug=cli (references/agent-debugging.md), classify the root cause, …
- Very specific: line 126
For patterns: check references/playwright-patterns.md for waitForResponse, toPass, expect.poll
- Very specific: line 127
Before calling a suite stable: run it N times and report the distribution (references/pass-rate-and-flake-analysis.md), never a single …
“Common” is measured: kept by at least 6 in 10 of the 11 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Playwright E2E Skills
What a finished spec looks like
import { test, expect } from '@fixtures/test-fixture' // the project fixtures, never '@playwright/test'
test.describe('Checkout', { tag: ['@smoke'] }, () => { // one selection tag, in the options object
test('a signed-in shopper places an order for one item', async ({ checkoutPage }) => {
await checkoutPage.goto()
await expect(checkoutPage.placeOrderButton).toBeEnabled() // web-first: retries until true
await checkoutPage.placeOrder() // page-object action, wrapped in test.step()
await expect(checkoutPage.confirmation).toHaveText(/Order #\d+ placed/) // the outcome, not "the page loaded"
await expect(checkoutPage.headerBasketCount).toHaveText('0') // every place the change shows up
await expect(checkoutPage.placeOrderButton).toBeHidden() // absence, anchored: it matched above
})
})Locators live on the page object as readonly properties, each one resolved against the real page.
No page.waitForTimeout(), no { force: true }, no XPath, no retry that turns a failure green. The
rules behind each line are in references/conventions.md; the test is verified by watching it fail
once, not only by watching it pass.
Operating Procedure
Work in phases and say which one you are in. Detail is in references/workflow.md.
Classify the job → route to the reference → explore the real page, endpoint or failure → plan with a confidence score → stop before applying and wait for approval → apply → verify by running it more than once → report, unknowns included.
Four rules that hold everywhere:
- Explore before generate. A locator never resolved against a real page is a guess with good syntax.
- Below 5, emit no plan. A low confidence score means you are still exploring, not that you should attach a caveat to a proposal. Ask the question that would raise it.
- A skeleton counts as a placeholder.
TODO, empty page object methods, a commented-out assertion — all defer the same failure. Placeholders are not deliverables. - No substitute exploration. If
playwright-cliis unavailable, stop and say so. Never infer selectors from application source.
Decision Tree
What do you need to do?
│
├─ Write a NEW test
│ ├─ Plan first → references/test-planning.md
│ ├─ Generate code → references/test-generation.md
│ ├─ Locators/asserts → references/locators-and-assertions.md
│ └─ Review when done → references/test-review.md
│
├─ Debug a FAILING test
│ ├─ Diagnose & fix → references/test-debugging.md
│ ├─ Agent debugging → references/agent-debugging.md
│ └─ Flaky on CI → references/ci-and-flake-triage.md
│
├─ Test an API (no browser)
│ └─ Request context → references/api-testing-patterns.md
│
├─ Prove DETERMINISM
│ └─ Run it N times → references/pass-rate-and-flake-analysis.md
│
├─ Understand PATTERNS
│ ├─ Playwright APIs → references/playwright-patterns.md
│ ├─ Fixtures & auth → references/fixtures-and-auth.md
│ ├─ Page objects → references/page-object-conventions.md
│ └─ Test data → references/data-strategy.md
│
├─ Follow CONVENTIONS
│ ├─ MUST/SHOULD/WON'T → references/conventions.md
│ └─ This project's rules → references/project-conventions.md
│
├─ Automate a BROWSER → official `playwright-cli` skill (see below)
│
└─ UNCLEAR what to do → references/workflow.mdSkill Reference
| Reference | When to use |
references/playwright-patterns.md | waitForResponse, toPass, expect.poll, network-first safeguards |
references/api-testing-patterns.md | Testing a service over HTTP with no browser: APIRequestContext, per-call credentials, schema contracts, bounded polling, delta assertions, request budgets |
references/locators-and-assertions.md | Strict mode, locator composition, soft assertions, aria snapshots, visual comparison, mocking in tests, clock |
references/fixtures-and-auth.md | Custom fixtures with base.extend, worker scope, auth via setup projects and storageState |
references/data-strategy.md | Choosing between static data and dynamic factories |
references/workflow.md | The phases, the confidence gate, and what not to invent |
references/conventions.md | The MUST / SHOULD / WON'T rules every test follows |
references/delegation-rules.md | What can be handed off, and what must not be |
references/test-review.md | 7-category review checklist, quality gates, severity levels |
references/ci-and-flake-triage.md | Retries, sharding, reporters, describe.configure, test.fail/fixme/slow, flake triage |
references/pass-rate-and-flake-analysis.md | Proving determinism by running the suite N times: the four outcomes, per-test stability, what to report |
references/agent-debugging.md | --debug=cli + playwright-cli attach, trace triage from the terminal |
references/page-object-conventions.md | POM structure, selectors, component composition |
references/project-conventions.md | This project's own rules, file organization, CI conventions |
references/test-debugging.md | Failure patterns, root cause classification, decision tree |
references/test-generation.md | Test scaffolding templates, import rules, fixture docs |
references/test-planning.md | Exploration workflow, test plan template, planning checklist |
Browser automation and agent debugging
Playwright ships its own agent skills; this skill does not duplicate them.
playwright-clidrives a browser from the terminal (open,snapshot,click,fill,find,eval,generate-locator,attach). Install into this project withnpx playwright cli install --skills(Playwright 1.62+) ornpm i -g @playwright/cli@latest && playwright-cli install --skills.playwright-traceinspectstrace.zipfiles from the terminal (npx playwright trace ...). Install withnpx playwright trace install-skill.- The workflow that ties them together (
npx playwright test --debug=cli,playwright-cli attach, trace triage) is inreferences/agent-debugging.md.
Quick Reference
- Before writing tests: read
references/test-planning.md, explore the page (playwright-cli if installed), then write usingreferences/test-generation.md - Before submitting PRs: run the
references/test-review.mdchecklist - When tests fail: follow
references/test-debugging.md, attach with--debug=cli(references/agent-debugging.md), classify the root cause, then fix the test or report the app bug - For patterns: check
references/playwright-patterns.mdfor waitForResponse, toPass, expect.poll - Before calling a suite stable: run it N times and report the distribution (
references/pass-rate-and-flake-analysis.md), never a single green run
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

