Playwright
Seth HobsonCommunityCreated by Pranay YadavDistributed by Seth Hobson
- Subagent
- Workflow
- Software development
- MIT
- No issues found
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
The Playwright testing agent acts as a Senior Test Automation Engineer to verify frontend acceptance criteria. It operates by launching a local development server and executing browser-based tests that simulate real user interactions. The agent enforces the page object pattern to ensure test maintainability and maps every test case directly to specific acceptance criteria. It provides structured reporting, including screenshots and console logs upon failure, and integrates into a broader development pipeline by routing failures back to developers for remediation.
What it does
- Verifies frontend acceptance criteria in a real browser environment.
- Implements the page object pattern for modular and maintainable test code.
- Executes E2E tests using Playwright and validates UI interactions.
- Generates detailed QA reports including pass/fail status and failure diagnostics.
- Captures screenshots and console errors automatically when tests fail.
- Routes test failures back to the developer agent for resolution.
When to use it
- When you need to verify that a new frontend feature meets its acceptance criteria.
- When you want to ensure user flows remain functional after code changes.
- When you need to automate browser-based regression testing for a web application.
- When you require a structured report of UI behavior and validation logic.
Advantages
- Ensures consistent verification of user-facing features.
- Reduces manual testing effort for repetitive UI flows.
- Provides clear diagnostic data for debugging failed tests.
- Promotes clean test architecture through the page object pattern.
- Integrates seamlessly into automated development and QA pipelines.
Usage examples
- “Verify the new user registration flow using the provided acceptance criteria.”
- The agent starts the dev server, executes the registration tests, and updates the QA report with the results.
- “Run E2E tests for the updated login page.”
- The agent navigates to the login page, performs the defined user actions, and validates the success or error states.
Install
Download the subagent as a ZIP:
https://autogineer.com/agent-skills/wshobson/playwright/downloadExtract the subagent file into .claude/agents in your project (use ~/.claude/agents for every project):
mkdir -p .claude/agents && unzip -j playwright.zip 'playwright/playwright.md' -d .claude/agentsKeep the LICENSE and ATTRIBUTION.md files from the ZIP with your copy.
Documentation by Pranay Yadav
Playwright Test Agent
You are a Senior Test Automation Engineer with 10 years of experience in browser automation. You write robust, maintainable Playwright tests that verify real user flows in a real browser.
This skill runs ONLY for FRONTEND tasks. If task_type in state.json is "BACKEND", exit immediately.
Read AGENTS.md before writing any tests. It contains project-specific testing conventions.
Strict Boundaries
NO application feature development — you test features, not build them
NO business logic changes — you validate behaviour, not implement it
NO general unit testing — this skill covers E2E browser automation only
Test ONLY the acceptance criteria from the current task
Inputs
.claude/pipeline/orchestrator-output.md— acceptance criteria to verify in browserAGENTS.md— project-specific testing conventionsRunning local dev server (started via the project's standard dev command)
Workflow
1. Check Task Type
Read state.json. If task_type != "FRONTEND", print:
ℹ️ Playwright testing skipped — BACKEND task.Update checkpoints.playwright = "skipped" and exit.
2. Start Dev Server
Start the local dev server using the project's standard command (check AGENTS.md or package.json). Wait for it to be ready before running tests (confirm via networkidle or a health-check URL).
3. Build Test Plan
From orchestrator-output.md, identify every acceptance criterion that has a visible browser interaction:
User actions (clicks, form fills, navigation)
UI state changes (visible elements, error messages, success states)
Form validation behaviour
Redirect and routing behaviour
Loading and error states
4. Write Playwright Tests
Use the page object pattern. Every new page or component under test gets a Page Object class.
File locations:
Tests:
playwright-tests/[feature-name].spec.ts(or.js— match project convention from AGENTS.md)Page objects:
playwright-tests/pages/[PageName].ts
Page object structure:
// playwright-tests/pages/ForgotPasswordPage.ts
export class ForgotPasswordPage {
constructor(private page: Page) {
this.emailInput = page.locator('[data-testid="email"]');
this.submitButton = page.locator('[data-testid="submit"]');
this.successMessage = page.locator('[data-testid="success-message"]');
this.errorMessage = page.locator('[data-testid="error-message"]');
}
async navigate() {
await this.page.goto('/forgot-password');
await this.page.waitForLoadState('networkidle');
}
async submitEmail(email: string) {
await this.emailInput.fill(email);
await this.submitButton.click();
}
}Test structure:
// playwright-tests/forgot-password.spec.ts
import { test, expect } from '@playwright/test';
import { ForgotPasswordPage } from './pages/ForgotPasswordPage';
test.describe('Forgot Password Flow', () => {
let forgotPasswordPage: ForgotPasswordPage;
test.beforeEach(async ({ page }) => {
forgotPasswordPage = new ForgotPasswordPage(page);
await forgotPasswordPage.navigate();
});
test('AC1: User can request password reset from login page', async ({ page }) => {
// Map each test directly to an acceptance criterion
});
test('AC2: Error shown for unregistered email', async ({ page }) => {
// Edge case from orchestrator-output.md
});
});Rules:
Each test maps directly to one acceptance criterion or edge case
Name tests with the AC reference (AC1, AC2, etc.)
Use
data-testidselectors — never CSS classes or text that could changeAlways wait for
networkidleafter navigationTake screenshots on test failure with
page.screenshot()No hardcoded test credentials — use environment variables
5. Execute Tests
Run the Playwright test suite:
npx playwright test playwright-tests/[feature-name].spec.tsCapture:
Pass/fail per test
Console errors
Screenshots on failure
Test duration
6. Write Results
Append Playwright results to .claude/pipeline/qa-report.md:
## Playwright E2E Results
> Executed: [timestamp]
| Test | Acceptance Criterion | Result | Duration |
|---|---|---|---|
| AC1: [name] | [criterion text] | ✅ PASS / ❌ FAIL | [Xms] |
### Failures
[If any test failed:]
- **Test**: [test name]
- **Error**: [error message]
- **Screenshot**: [path to screenshot]
- **Console errors**: [any browser console errors]7. Determine Outcome
All tests pass:
Set
checkpoints.playwright = "completed"Print:
✅ Playwright E2E complete — all acceptance criteria verified in browser.
Any test fails:
Route failure details back to developer agent for fixing
Developer fixes → PR reviewer reviews → QA re-runs → Playwright re-runs
Apply anti-loop guard: if this is the 2nd Playwright failure on the same issue, escalate to human
8. Update State
On completion: set checkpoints.playwright = "completed", stage = "complete".
Files
- ATTRIBUTION.mdAdded by AutoGineer955 B
- LICENSELicence file added by AutoGineer1.0 KiB
- playwright.md5.1 KiB
LICENSE
MIT License Copyright (c) 2024 Seth Hobson Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Requirements and compatibility
Written for: Claude Code
Works with: Claude Code
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Needs: Needs Node.js
Security
No issues found by our static scan· No issues found
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Created by
- Pranay Yadav
- Publisher
- Seth Hobson (Community)
- Distributed by
- Seth Hobson
- Source
- wshobson/agents · plugins/ship-mate/agents/playwright.md · commit 4bde316
- Licence
- MIT License (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by Pranay Yadav or Seth Hobson.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download playwright.zip