Releases: RoninForge/roninforge-playwright
Release list
v1.0.0 - Playwright rules for Cursor
First public release.
What's in the box
- 5 rules (
playwright-core,playwright-anti-patterns,playwright-config,playwright-auth,playwright-network) - 4 skills (
/playwright-new-test,/playwright-setup-auth,/playwright-validate,/playwright-visual-regression) - 1 reviewer agent (
playwright-reviewer) with severity-grouped output (CRITICAL / ERROR / WARN / SUGGESTION) - 2 fixture projects (
anti-pattern-sample,correct-sample)
What it catches
34 LLM regressions including: text/CSS/XPath engine selectors instead of getByRole, page.$/page.$$ ElementHandles, page.waitForTimeout, expect(await loc.isVisible()).toBeTruthy(), missing await on web-first assertion (a no-op that silently passes), assert from node:assert, hardcoded credentials in test files, login via UI in beforeEach (instead of setup-project + storageState), page.route after page.goto (mock never applies), route handler with no continue/fallback branch (request hangs), beforeEach for what should be a fixture, untyped test.extend, Page/Locator imported from playwright instead of @playwright/test, ElementHandle in POM constructors, assertions inside POM, headless: false committed, missing forbidOnly, missing webServer, trace: \"on\" in CI, aggressive retries hiding flake, page.waitForNavigation in Promise.all (discouraged), hardcoded viewport over devices, caching ~/.cache/ms-playwright in CI (against official guidance), the deprecated microsoft/playwright-github-action, and test.describe.configure({ mode: 'serial' }) as a default.
Playwright versions
Targets @playwright/test 1.x current stable (1.50-1.60). Deltas for newer features (1.48 page.routeWebSocket, 1.49 toMatchAriaSnapshot, 1.54 page.ariaSnapshot, 1.57 Chrome-for-Testing + webServer.wait regex, 1.60 toContainClass) are called out inline with hedging where the underlying API has shifted across releases.
Install
git clone https://github.com/RoninForge/roninforge-playwright.git
cp -rn roninforge-playwright/rules/* your-project/.cursor/rules/
cp -rn roninforge-playwright/skills/* your-project/.cursor/skills/
cp -rn roninforge-playwright/agents/* your-project/.cursor/agents/Why this vs the existing community Playwright rule
A short Playwright rule already exists on cursor.directory: ~10 prompt-style bullets, no BAD/CORRECT pairs, no fixtures, no version awareness, no auth/storageState, no sharding, no page.route patterns, no POM-via-fixture, no visual-regression OS-baseline trap. This plugin is the depth play: 34 documented anti-patterns with BAD/CORRECT TS code, five focused rules, the setup-project + storageState auth pattern (including per-worker isolation, multi-role, JWT bypass), the sharded-CI-with-merge-reports workflow, the macOS-vs-Linux baseline trap (the #1 visual-regression gotcha) called out in a dedicated skill, a reviewer agent with severity grouping, and compilable test fixtures.
Quality
Reviewed across four sequential code-reviewer rounds. 2 critical findings (page.screencast and await using route - both APIs that don't exist on current stable), 8 errors, and multiple warnings/suggestions were fixed before this release. Validation script runs clean.