用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/dyad-sh/dyad --skill dyaddebug-with-playwright命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Diagnose and fix failing CI checks on a pull request from its latest GitHub Actions CI run. Use when PR CI has E2E/Playwright failures, macOS or Windows unit-test failures, or presubmit/type/build failures; analyzes the exact run logs and artifacts, invokes dyad:deflake-e2e-from-run for E2E failures, reproduces targeted unit tests locally, and publishes the fixes.
Address all outstanding issues on a GitHub Pull Request by handling both review comments and failing CI checks.
Read all unresolved GitHub PR comments from trusted authors and address or resolve them appropriately.
正在显示 SKILL.md
| name | dyad:debug-with-playwright |
| description | Debug E2E tests by taking screenshots at key points to visually inspect application state. |
Debug E2E tests by taking screenshots at key points to visually inspect application state.
$ARGUMENTS: (Optional) Specific E2E test file to debug (e.g., main.spec.ts or e2e-tests/main.spec.ts). If not provided, will ask the user which test to debug.Dyad uses Electron + Playwright for E2E tests. Because Playwright's built-in screenshot: "on" option does NOT work with Electron (see https://github.com/microsoft/playwright/issues/8208), you must take screenshots manually via page.screenshot().
The test fixtures in e2e-tests/helpers/fixtures.ts already auto-capture a screenshot on test failure and attach it to the test report. But for debugging, you often need screenshots at specific points during test execution.
Identify the test to debug:
If $ARGUMENTS is empty, ask the user which test file they want to debug.
e2e-tests/ prefix, add it.spec.ts suffix, add itRead the test file:
Read the test file to understand what it does and where it might be failing.
Add debug screenshots to the test:
Add page.screenshot() calls at key points in the test to capture visual state. Access the page from the po fixture:
// Get the page from the electronApp fixture
const page = await electronApp.firstWindow();
// Or if you only have `po`, access the page directly:
// po is a PageObject which has a `page` property
Screenshot patterns for debugging:
import * as fs from "fs";
import * as path from "path";
// Create a debug screenshots directory
const debugDir = path.join(__dirname, "debug-screenshots");
if (!fs.existsSync(debugDir)) {
fs.mkdirSync(debugDir, { recursive: true });
}
// Take a full-page screenshot
await page.screenshot({
path: path.join(debugDir, "01-before-action.png"),
});
// Take a screenshot of a specific element
const element = page.locator('[data-testid="chat-input"]');
await element.screenshot({
path: path.join(debugDir, "02-chat-input.png"),
});
// Take a screenshot after some action
await po.sendPrompt("hi");
await page.screenshot({
path: path.join(debugDir, "03-after-send.png"),
});
Important: The test fixture signature provides { electronApp, po }. To get the page:
await electronApp.firstWindow() to get the pagepo.page if PageObject exposes itAdd screenshots before and after the failing step to understand what the UI looks like at that point.
Build the app (if needed):
E2E tests run against the built binary. If you made any application code changes:
npm run build
If you only changed test files, you can skip this step.
Run the test:
PLAYWRIGHT_RETRIES=0 PLAYWRIGHT_HTML_OPEN=never npm run e2e -- e2e-tests/<testfile>.spec.ts
View the screenshots:
Use the Read tool to view the captured PNG screenshots. Claude Code can read and display images directly:
Read the PNG files in e2e-tests/debug-screenshots/
Analyze the screenshots to understand:
Check the Playwright trace (for additional context):
The Playwright config has trace: "retain-on-failure". If the test failed, a trace file will be in test-results/. You can reference this for additional debugging context.
Iterate:
Based on what you see in the screenshots:
Clean up:
After debugging is complete, remove the debug screenshots and any temporary screenshot code you added to the test:
rm -rf e2e-tests/debug-screenshots/
Remove any page.screenshot() calls you added for debugging purposes.
Report findings:
Tell the user:
基于 SOC 职业分类