name: dyad:pr-fix:actions description: 修复拉取请求上的失败CI检查和GitHub Actions。
PR修复:Actions
修复拉取请求上的失败CI检查和GitHub Actions。
参数
$ARGUMENTS:可选的PR编号或URL。如果未提供,使用当前分支的PR。
任务跟踪
你必须使用TaskCreate和TaskUpdate工具来跟踪进度。 开始时,为以下每个步骤创建任务。当你开始时标记任务为in_progress,完成时标记为completed。这确保你完成所有步骤。
指令
-
确定要处理的PR:
- 如果
$ARGUMENTS包含PR编号或URL,使用它 - 否则,使用
gh pr view --json number,url,title,body --jq '.'获取当前分支的PR - 如果未找到PR,通知用户并停止
- 如果
-
检查失败的CI检查:
gh pr checks <PR_NUMBER>识别哪些检查失败:
- Lint/格式化检查
- 类型检查
- 单元测试
- E2E/Playwright测试
- 构建检查
-
对于失败的lint/格式化检查:
- 运行
npm run lint:fix自动修复lint问题 - 运行
npm run fmt修复格式化 - 查看所做的更改
- 运行
-
对于失败的类型检查:
- 运行
npm run ts识别类型错误 - 阅读相关文件并修复类型问题
- 重新运行类型检查以验证修复
- 运行
-
对于失败的单元测试:
- 本地运行失败测试以重现:
npm run test -- <test-file-pattern> - 调查测试失败
- 修复底层代码问题,或者如果行为变化是故意的,更新测试
- 本地运行失败测试以重现:
-
对于失败的Playwright/E2E测试:
- 通过检查CI日志或PR评论检查失败是否与快照相关
- 如果快照需要更新,运行
/dyad:e2e-rebase技能来修复它们 - 如果失败不是快照相关的:
- 重要: 在运行E2E测试之前首先构建应用:
E2E测试针对构建的二进制运行。如果你对应用代码(npm run builde2e-tests/之外的任何内容)进行了更改,在再次运行E2E测试之前必须重新运行npm run build。 - 本地运行失败测试并调试输出:
DEBUG=pw:browser PLAYWRIGHT_HTML_OPEN=never npm run e2e -- <test-file> - 调查并修复底层问题
- 重要: 在运行E2E测试之前首先构建应用:
-
对于失败的构建检查:
- 本地运行构建:
npm run build - 修复出现的任何构建错误
- 本地运行构建:
-
完成所有修复后,验证:
- 运行完整lint检查:
npm run lint - 运行类型检查:
npm run ts - 运行相关单元测试
- 如果E2E测试之前失败,可选本地运行
- 运行完整lint检查:
-
提交并推送更改:
如果进行了任何更改:
git add -A git commit -m "修复失败CI检查 - <修复摘要1> - <修复摘要2> ... Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>"然后运行
/dyad:pr-push推送更改。 -
向用户提供摘要:
- 列出哪些检查失败
- 描述每个修复了什么
- 注意任何无法修复并需要人工关注的检查