E2E Cucumber And Playwright
e2e/AGENTS.md owns the suite architecture, lifecycle, commands, tags, generated-client boundaries, fixtures, and cleanup contracts. Read the nearest feature-scoped AGENTS.md when one exists. This skill adds no parallel package policy.
Cucumber owns scenario and hook execution and reporting. Playwright provides browser automation, contexts, pages, locators, actions, assertions, request, and tracing APIs; protocol exceptions remain with the package-defined owner. Their timeout domains remain separate, and importing from @playwright/test does not make Playwright Test runner configuration, fixtures, or retries applicable to this suite.
Topic Routing
Read only the bundled reference required by the change:
- Locator, assertion, isolation, or waiting decisions:
references/playwright-best-practices.md - Scenario wording, step granularity, expressions, World state, hook visibility, or tag design:
references/cucumber-best-practices.md
Check current official Playwright or Cucumber documentation before introducing a framework pattern that local code and references do not already establish.
Workflow
- Add E2E coverage only for a critical user journey with a cross-boundary outcome that cheaper owner-level tests do not already prove.
- Identify the user-visible behavior and its feature owner. Start from real product defaults and actor roles; setup may establish preconditions but must not manufacture the opposite state to make the scenario meaningful.
- Read the target scenario, matching step definitions, and lifecycle files only when session or shared state matters.
- Reuse an existing step when wording and behavior match; add one coherent scenario or step when they do not.
- Keep browser actions and assertions at the public user boundary; keep setup, seed, polling, and cleanup at their package-defined owners.
- For changes, run the narrowest tagged scenario and package checks documented in
e2e/AGENTS.md; broaden only for shared hooks, tags, or support changes.
For review requests, lead with reproducible correctness failures, flake sources, or demonstrated architecture drift. Report the behavior verified and any external-runtime, browser, or environment gap.