What problem does it solve? End-to-end specs in this product can pass against a dead backend because every page renders its empty state when a query fails, so a spec asserting on page chrome asserts on nothing. This Skill encodes the rules, fixtures, and helpers that keep Playwright specs honest: asserting on seeded data, surviving dialog races, and proving a new spec can actually fail. ## Core Features & Use Cases - Seeded-fixture discipline: Assert against rows created by e2e/seed.setup.ts and named constants in e2e/helpers.ts, never literals or empty-state chrome. - Race-safe writes: Use submitDialog and the nowThere/nowListed polling primitives to handle Radix dialog accessibility traps and post-write read delays instead of flaky fixed timeouts. - Failure safety net: Import test/expect from ./fixtures so any 5xx from /api/* fails the test, and read the fixture-reporter banner before blaming product code. - Use Case: When make test-e2e fails or a new journey spec (sign in, build an agent, publish, run, approve) is needed, follow these rules to write a spec that fails against a dead backend before trusting it. ## Quick Start Ask the AI to write a new Playwright e2e spec for a full-stack journey using the seeded fixtures and helpers from frontend/e2e.