一键导入
test-playwright
Use this skill when working with Playwright tests and applying best practices for reliable, parallel-safe test automation.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use this skill when working with Playwright tests and applying best practices for reliable, parallel-safe test automation.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | test-playwright |
| description | Use this skill when working with Playwright tests and applying best practices for reliable, parallel-safe test automation. |
| metadata | {"author":"Greg Duckworth","version":"1.0.0","tags":["domain/engineering"],"compatibility":["all"],"frameworks":["playwright"]} |
Use this skill when working with Playwright tests.
Prefer stable, intentional selectors (attributes or accessibility hooks) as your primary choice. Text-based selectors are brittle — they can break with copy changes, translations, or small wording edits — so treat them as a fallback only when no stable attributes exist.
Primary (preferred):
page.getByTestId("...");
page.getByRole("button", { name: "Submit" });
Fallback (use only if no stable attributes are available):
page.getByText("Submit");
Do not use:
await page.waitForTimeout(1000);
Use:
await expect(page.getByTestId("...")).toBeVisible();
test.use({ storageState: "storageState.json" });
await page.route('/api/...', route => route.fulfill(...));
await page.route("/api/products", (route) =>
route.fulfill({ path: "fixtures/products.json" }),
);
expect(page).toHaveScreenshot() for UI regression testingwaitForTimeout usagepage.evaluateUse this skill when writing or reviewing BDD/Cucumber feature files and step definitions. It keeps Gherkin declarative and behaviour-focused, keeps step definitions thin, and delegates all framework mechanics (selectors, waiting, network, assertions) to the matching framework skill.
Generate reviewer-ready, traceable test cases from Jira issues using an available Jira MCP server.
Compress a supplied text (pasted or a file path) to its load-bearing minimum: remove filler, keep every claim, qualifier and scope. EXPLICIT INVOCATION ONLY: use only when the user names the skill; never auto-trigger on generic requests to shorten or tighten text, and never apply to your own chat replies.
Compact the current conversation into a handoff markdown document for another agent or session to pick up. Use when handing off a side task, spawning a prototype session, passing work to a different agent (Cursor, Codex, GitHub Copilot CLI, Claude Code), or keeping the current session focused while continuing work elsewhere. Also use when the user says handoff, hand off, or wants a handoff document.
Scaffold a new Python project that follows modern best practices, using uv by default to initialize and manage the project (with pip/venv, pipenv, or manual fallbacks if uv isn't available). Sets up ruff (lint + format), mypy type checking, pre-commit, a tests/ folder with pytest, and optionally Docker, a CI workflow, coverage, placeholder structure, and a git repo with .gitignore. Use when the user wants to start/create/bootstrap a new Python project, says "set up a Python project", "init a python repo", "new python project with best practices", or similar.
Use this skill when writing, reviewing, or refactoring database queries with @nearform/sql — Nearform's tagged-template library that produces SQL-injection-safe parameterized queries for pg, mysql, and mysql2. Covers installation, the SQL tag (.text/.sql/.values/.debug), helpers (glue, map, unsafe, quoteIdent), Fastify integration, dynamic/bulk queries, and security best practices. Trigger terms: SQL, query, parameterized query, SQL injection, pg, postgres, mysql, @nearform/sql, glue, quoteIdent.