Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add rules/m3au/playwright-bdd-cursor-template/pomgit clone --depth 1 https://github.com/m3au/playwright-bdd-cursor-templateWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00000 | $0.00937 |
| Opus 5 | $0.00000 | $0.00468 |
| Sonnet 5 | $0.00000 | $0.00187 |
| Haiku 4.5 | $0.00000 | $0.00094 |
Grade A, and why
pom scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 69 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Page Object Model Standards
Structure
- Use
@Fixturedecorator with PascalCase name matching class name (e.g.,@Fixture('CableConfiguratorPage')) - Export class with descriptive name (e.g.,
CableConfiguratorPage) - Constructor receives
Pageasprotected page: Pageorprivate page: Page - Organize POMs into
pages/(full pages) orcomponents/(reusable components) subdirectories - All locator selectors must be initialized in the constructor - no inline locator creation in methods
- Declare all locator properties at the top of the class (before constructor)
- Use descriptive locator names ending with
Locator(e.g.,cableBeginningButton,popupLocator) - Child locators can be derived inline when needed (e.g.,
parentLocator.locator('.child')) but parent locators must be defined at top
Step Definitions
- Use
@Given,@When,@Thendecorators from@worldfor step definitions that match Gherkin scenarios - Step text must match Gherkin scenarios exactly
- All step methods must be
async - Step methods can optionally receive fixtures parameter:
async stepMethod(_fixtures?: PageFixtures)
Internal Helper Methods
- Use
@Stepdecorator for internal helper methods that should appear in Playwright test reports - All methods with
@Stepdecorator must start with "i" following BDD naming convention:iSee...for visibility checksiClick...for click actionsiSelect...for selection actionsiNavigate...for navigation actions
- Examples:
iSeeTheCableSelectorPopup(),iClickCableBeginning(),iSelectRandomCableType() - Use Playwright assertions and waiting patterns - see
playwright.mdcfor guidance
Imports
- Import everything from
@world:import { Fixture, Given, Then, When, Step, expect, type Page, type Locator } from '@world' - Import components:
import { ComponentName } from '@components/component-name' - Import pages:
import { PageName } from '@pages/page-name' - Import data:
import { getEnvironment } from '@data/config' - Import utils:
import { getRandomIndex, isValidTextItem } from '@utils' - N: use relative imports - A: use path aliases
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 69 lines · 0 tokens per session scan A 609681d4e624
pom is a cursor rule published in the GitHub repository m3au/playwright-bdd-cursor-template (2 stars, last pushed 6mo ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 937 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other cursor rules, from other repositories
angular-20
This rule provides comprehensive best practices and coding standards for Angular development, focusing on modern TypeScript, standalone components, signals, and performance optimizations.
dev-standard
Apache Superset development standards and guidelines for Cursor IDE.
cli-error-handling
CLI command error handling patterns.
prefer-direct-imports-over-module-mocks
Prefer extracting a testable core over vi.mock / vi.resetModules when unit tests need to reach production logic entangled with config, env, or singletons.
control-plane-descriptors
Control plane descriptor and instance implementation patterns.
family-instance-domain-actions
Family instance domain action implementation patterns.