From Harness Web
Playwright E2E conventions — the required page-object model, asserting on the accessibility tree (toMatchAriaSnapshot) rather than pixels, and strict per-test isolation with storageState for auth. Use when writing or reviewing end-to-end tests against a running dev or staging server.
How this skill is triggered — by the user, by Claude, or both
Slash command
/harness-web:addon-playwright-e2eThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Playwright is the E2E testing layer. Tests live in `e2e/` or `tests/e2e/` and
Playwright is the E2E testing layer. Tests live in e2e/ or tests/e2e/ and
run against a live (dev or staging) server.
Page-object model (required):
e2e/pages/.Assert on the accessibility tree, not pixels:
toMatchAriaSnapshot() to assert on the semantic structure of a page.
This catches heading changes, missing labels, and structure regressions without
screenshot brittleness.expect(locator).toHaveText(), .toBeVisible(), .toBeEnabled(), and
.toHaveRole() for element-level assertions.expect(page).toHaveURL() for navigation assertions.toHaveScreenshot() as the primary assertion — screenshots are
flaky across CI environments and do not capture accessibility. Use them only
to record a confirmed visual bug.Test isolation:
test.beforeEach to set up fresh fixtures.storageState fixture for authenticated tests — sign in
once per worker, not per test.npx claudepluginhub camilool8/harness-engineering-templates --plugin harness-webCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.