common-accessibility
Enforce WCAG 2.2 AA compliance with semantic HTML, ARIA roles, keyboard navigation, and color contrast standards for web UIs. Use…
Generates Playwright page objects from an executable test plan, one class per screen with ladder-compliant locators and no assertions, wired into a shared fixture. Use when a web scenario needs a page object that does not exist yet, or when locators drift and the page object
Claude Code
$ npx -y skills add hoangnguyen0403/agent-skills-standard --skill quality-engineering-playwright-pom-generation --agent claude-code
Codex
$ npx skills add hoangnguyen0403/agent-skills-standard --skill quality-engineering-playwright-pom-generation -a codex -y
Cursor
$ npx skills add hoangnguyen0403/agent-skills-standard --skill quality-engineering-playwright-pom-generation -a cursor -y
Gemini CLI
$ npx skills add hoangnguyen0403/agent-skills-standard --skill quality-engineering-playwright-pom-generation -a gemini-cli -y
GitHub Copilot
$ npx skills add hoangnguyen0403/agent-skills-standard --skill quality-engineering-playwright-pom-generation -a github-copilot -y
OpenCode
$ npx skills add hoangnguyen0403/agent-skills-standard --skill quality-engineering-playwright-pom-generation -a opencode -y
Windsurf
$ npx skills add hoangnguyen0403/agent-skills-standard --skill quality-engineering-playwright-pom-generation -a windsurf -y
name: quality-engineering-playwright-pom-generation
description: Generates Playwright page objects from an executable test plan, one class per screen with ladder-compliant locators and no assertions, wired into a shared fixture. Use when a web scenario needs a page object that does not exist yet, or when locators drift and the page object must be rebuilt.
metadata:
triggers:
files:
- "tests/pages/**/*.ts"
- "**/page-objects/**/*.ts"
- "**/*.page.ts"
keywords:
- page object
- page object model
- pom generation
- generate page objects
- playwright fixture
- pages fixtureA web-lane scenario block from `docs/srs/test-plan-[slug].md` (`Steps`, `Expected`, `@AC-n`) plus the resolved `SELECTOR_GAPS` for that screen. Generate from the plan, never from a live DOM crawl alone: the plan says which elements matter.
Follow the web ladder in `quality-engineering-selector-stability`: `getByRole` / `getByLabel` first, then `getByTestId` using the `<screen>-<element>-<role>` id, then attribute CSS. Never XPath, `nth`, text on translated strings, or generated class names. When the element has no stable locator, do not invent one: record it as a selector gap for `specialist-testid-inserter`.
Page objects expose locators and action methods; specs assert on them. An `expect` inside a page object hides the assertion from the scenario, breaks retrying assertion semantics, and prevents reuse across positive and negative cases.
1. Read the scenario block and the screen's existing page object, if any; extend rather than duplicate. 2. Map each plan step to an existing or new action method; map each `Expected` to a state getter. 3. Write locators per the ladder; list unresolved elements under `Selector Gaps` in the output. 4. Register the page object in the `pages` fixture. 5. Run `npx tsc --noEmit -p tests` (or the repo's typecheck) and the seed spec once.
The portable standards layer for AI coding agents. Sync once, then work in your own runtime.
Enforce WCAG 2.2 AA compliance with semantic HTML, ARIA roles, keyboard navigation, and color contrast standards for web UIs. Use…
Define deterministic guardrails for agent tool calls — protected paths, test-file locks during bug fixes, post-edit formatters,…
Apply REST API conventions — HTTP semantics, status codes, versioning, pagination, and OpenAPI standards for any framework. Use…
Audit structural debt, logic leakage, and monolithic components across Web, Mobile, and Backend codebases. Use when reviewing…
Draws architecture diagrams as editable draw.io files with a fixed house style, C4 levels, evidence-tagged shapes, and optional…
Enforce SOLID principles, guard-clause style, function size limits, and intention-revealing naming across all languages. Use when…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.