Web Testing with Playwright and Vitest
withkynam/vibecode-pro-max-kit
Covers web testing from unit to E2E, load, visual, accessibility and security checks, with Playwright, Vitest and k6 guides plus a Playwright setup script.
Debug Playwright E2E test failures from GitHub Actions CI runs.
$ npx skills add quay/quay --skill debug-playwright -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install quay/quay debug-playwright --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/quay/quay.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/debug-playwright .claude/skills/debug-playwright && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "debug-playwright" agent skill from https://github.com/quay/quay/tree/master/.agents/skills/debug-playwright into .claude/skills/debug-playwright/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "debug-playwright", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/quay/quay/tree/master/.agents/skills/debug-playwrightType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add quay/quay --skill debug-playwright -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install quay/quay debug-playwright --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/quay/quay.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/debug-playwright .agents/skills/debug-playwright && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "debug-playwright" agent skill from https://github.com/quay/quay/tree/master/.agents/skills/debug-playwright into .agents/skills/debug-playwright/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "debug-playwright", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add quay/quay --skill debug-playwright -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install quay/quay debug-playwright --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/quay/quay.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/debug-playwright .cursor/skills/debug-playwright && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "debug-playwright" agent skill from https://github.com/quay/quay/tree/master/.agents/skills/debug-playwright into .cursor/skills/debug-playwright/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "debug-playwright", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/quay/quay.git --path .agents/skills/debug-playwright--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add quay/quay --skill debug-playwright -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install quay/quay debug-playwright --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/quay/quay.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/debug-playwright .gemini/skills/debug-playwright && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "debug-playwright" agent skill from https://github.com/quay/quay/tree/master/.agents/skills/debug-playwright into .gemini/skills/debug-playwright/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "debug-playwright", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install quay/quay debug-playwrightInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add quay/quay --skill debug-playwright -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/quay/quay.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/debug-playwright .github/skills/debug-playwright && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "debug-playwright" agent skill from https://github.com/quay/quay/tree/master/.agents/skills/debug-playwright into .github/skills/debug-playwright/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "debug-playwright", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add quay/quay --skill debug-playwright -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install quay/quay debug-playwright --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/quay/quay.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/debug-playwright .opencode/skills/debug-playwright && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "debug-playwright" agent skill from https://github.com/quay/quay/tree/master/.agents/skills/debug-playwright into .opencode/skills/debug-playwright/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "debug-playwright", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
debug-playwrightDebug Playwright E2E test failures from GitHub Actions CI runs.
Debug Playwright is an agent skill from quay/quay. Debug Playwright E2E test failures from GitHub Actions CI runs. Downloads artifacts, categorizes failures (flaky/real/infra), correlates with backend logs and Jaeger traces, and offers fixes.
Its SKILL.md is about 1.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including scripts (for example `scripts/playwright-debug.sh`).
It sits in Testing & QA, covering Browser testing, Failing and flaky tests and End-to-end testing. It works with Playwright and GitHub Actions. The repository describes itself as: Build, Store, and Distribute your Applications and Containers. The licence is Apache-2.0.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 8759f55. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
Bash(bash scripts/playwright-debug.sh *)Bash(gh run view *)Bash(gh run download *)Bash(gh pr view *)ReadGrepEditAskUserQuestionFrom allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (Shell), which the agent can run.
Shell commands in SKILL.md call:
bashjqFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Debug Playwright loads about 1.2k tokens when it runs. Until then it costs about 52 tokens; SKILL.md has 516 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from quay/quay at commit 8759f55, republished under its Apache-2.0 licence (© quay). 516 words, ~1,174 tokens.
.claude/skills/debug-playwright/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Debug Playwright test failures for $ARGUMENTS.
bash scripts/playwright-debug.sh $ARGUMENTSCapture the full JSON output, then extract artifacts_dir for use in later commands:
PW_JSON=$(bash scripts/playwright-debug.sh $ARGUMENTS)
ARTIFACTS_DIR=$(echo "$PW_JSON" | jq -r '.artifacts_dir')Key fields:
artifacts_dir — temp directory with downloaded artifactsfailed — tests that failed on all attempts (real failures), includes error_message, error_stack, last_step, and attachmentsflaky — tests that failed then passed on retryinterrupted — tests where a worker crashedstats — overall run statisticssurge_url — link to the HTML reporthas_container_logs / has_jaeger_traces — what extra data is availableglobal_setup_failure — if true, no tests ran at all (check errors field)If exit code is 2, the run is still in progress — tell the user to wait or use /dev:poll.
Summarize what happened conversationally:
If global_setup_failure is true, report the setup errors and stop.
If there are no real failures, report "all failures were flaky" with the list and stop.
For each entry in failed, perform root cause analysis:
Read the failing spec file at the reported line number. The file path from the JSON
is relative to web/playwright/e2e/ — resolve it against the quay/quay repo root
(e.g., auth/signin.spec.ts → web/playwright/e2e/auth/signin.spec.ts).
Understand what the test does — what page it navigates to, what selectors it uses, what API calls it makes.
Check last_step from the JSON — this tells you which Playwright action timed out
(e.g., locator.click("button.submit")).
If has_container_logs is true, search for backend errors within a ~30-second
window around the test's startTime:
grep -n "Traceback\|Internal Server Error\|FATAL" \
"$ARTIFACTS_DIR/quay-container-logs/quay-quay.log" | head -30Look for Python tracebacks, 500 responses, or gunicorn crashes that coincide with the test failure.
If has_jaeger_traces is true, infer the API endpoint from the test source
(e.g., a test navigating to /organization/myorg/teams likely hits
GET /api/v1/organization/.*/team). Search for matching spans:
jq '[.data[].spans[] | select(.operationName | test("ENDPOINT_PATTERN")) |
{operationName, duration, tags: [.tags[] |
select(.key == "http.status_code" or .key == "error")]}]' \
"$ARTIFACTS_DIR/jaeger-traces/traces.json"Look for slow spans, error spans, and 4xx/5xx status codes.
Check the test's tags for auth:OIDC or auth:LDAP. Tests without auth-specific
tags run in the DB auth phase (the first phase).
For each failure, classify the root cause and explain conversationally:
waitForFor each one, state what the test was trying to do, what went wrong, what the backend logs/traces show, and what a fix would look like.
Ask: "Want me to apply fixes for any of these?"
If yes, edit the spec files under web/playwright/e2e/. Show what you're changing
and why. Only edit backend code if the user explicitly asks.
Do NOT auto-commit — let the user review the changes.
When diagnosis is complete, remove the temp artifacts directory:
rm -rf "$ARTIFACTS_DIR"© quay, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file (scripts) in .agents/skills/debug-playwright of quay/quay.
Open the folder on GitHubat commit 8759f55
Debug Playwright next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Debug Playwright this skillquay/quay | 2.8k | — | ~1.2k | Automated safety check: Pass | Apache-2.0 | |
| Web Testing with Playwright and Vitestwithkynam/vibecode-pro-max-kit | 1.1k | — | ~892 | Automated safety check: Pass | Apache-2.0 | |
| Playwright E2Eforcedotcom/salesforcedx-vscode | 1k | — | ~3k | Automated safety check: Pass | BSD-3-Clause | |
| E2E TestingaAAaqwq/AGI-Super-Team | 105 | 6 repos | ~2k | Automated safety check: Pass | MIT | |
| Playwright Testmizchi/skills | 356 | — | ~4.7k | Automated safety check: Notes | None | |
| E2E Testingxu-xiang/everything-claude-code-zh | 2k | — | ~1.9k | Automated safety check: Pass | MIT |
withkynam/vibecode-pro-max-kit
Covers web testing from unit to E2E, load, visual, accessibility and security checks, with Playwright, Vitest and k6 guides plus a Playwright setup script.
forcedotcom/salesforcedx-vscode
writing, running, and debugging Playwright tests; creating and recreating scratch orgs (Dreamhouse, minimal, non-tracking); working with their output from github actions
aAAaqwq/AGI-Super-Team
Playwright E2E testing patterns, Page Object Model, configuration, CI/CD integration, artifact management, and flaky test strategies.
mizchi/skills
Best practices and reference for Playwright Test (E2E). An agent skill from mizchi/skills.
xu-xiang/everything-claude-code-zh
Playwright E2E 测试模式、页面对象模型(POM)、配置、CI/CD 集成、产物管理以及不稳定测试(flaky test)策略。
xu-xiang/everything-claude-code-zh
Playwright E2E 测试模式、页面对象模型 (Page Object Model)、配置、CI/CD 集成、产物管理以及不稳定测试 (Flaky Test) 策略。
quay/quay
Deep-dive diagnosis of a Playwright test failure already isolated to one Quay Prow/OpenShift CI run: downloads its GCS artifacts (results.json, JUnit, build/pod logs, Jaeger traces), classifies real…
quay/quay
Diagnose any Quay Prow job failure end to end: prowjob.json - top-level build log - JUnit - resolved failing step - Playwright results.json when the failing step is Playwright, continuing through…
quay/quay
Triage a flaky Playwright test end to end, from a Sippy signal to a written fix proposal: Sippy numbers and failing run URLs, Prow artifacts (or the access gap), the spec, a local reproduction, and…
quay/quay
Post a biweekly Agentic SDLC pilot update comment to PROJQUAY-11352.
Works with
Categories
Debug Playwright E2E test failures from GitHub Actions CI runs. Debug Playwright is an agent skill from quay/quay. Debug Playwright E2E test failures from GitHub Actions CI runs.
Debug Playwright fits situations like: tasks that involve Browser testing; tasks that involve Failing and flaky tests; tasks that involve End-to-end testing.
Run `npx skills add quay/quay --skill debug-playwright -a claude-code`. Or copy the skill folder (.agents/skills/debug-playwright in quay/quay) into .claude/skills/debug-playwright in your project. Claude Code loads it when a task matches its description.
Run `npx skills add quay/quay --skill debug-playwright -a codex`. Or copy the skill folder (.agents/skills/debug-playwright in quay/quay) into .agents/skills/debug-playwright in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add quay/quay --skill debug-playwright -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/debug-playwright, .gemini/skills/debug-playwright, .github/skills/debug-playwright and .opencode/skills/debug-playwright in your project.
Going by SKILL.md and its folder, Debug Playwright needs a shell for the scripts in its folder and the command-line tools its instructions call (bash and jq). Our summary lists: Python 3; A Bash shell. Its frontmatter pre-approves these tools: Bash(bash scripts/playwright-debug.sh *), Bash(gh run view *), Bash(gh run download *), Bash(gh pr view *), Read, Grep, Edit, AskUserQuestion.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Debug Playwright is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.2k tokens (SKILL.md is roughly 4.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Debug Playwright: Web Testing with Playwright and Vitest (withkynam/vibecode-pro-max-kit, 1.1k stars), Playwright E2E (forcedotcom/salesforcedx-vscode, 1k stars), E2E Testing (aAAaqwq/AGI-Super-Team, 105 stars) and Playwright Test (mizchi/skills, 356 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
quay (a GitHub organization) maintains it in quay/quay, which has 2,827 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on October 7, 2026.
Source: quay/quay on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.