name: dyad:fix-issue description: 创建修复GitHub问题的计划,然后在本地实施。
修复问题
创建修复GitHub问题的计划,然后在本地实施。
参数
$ARGUMENTS: GitHub问题编号或URL。
指令
-
获取GitHub问题:
首先,从
$ARGUMENTS中提取问题编号:- 如果
$ARGUMENTS是数字(例如,123),直接使用 - 如果
$ARGUMENTS是URL(例如,https://github.com/owner/repo/issues/123),从路径中提取问题编号
然后获取问题:
gh issue view <issue-number> --json title,body,comments,labels,assignees - 如果
-
清理问题内容:
通过清理脚本运行问题正文以移除HTML评论、不可见字符和其他杂物:
printf '%s' "$ISSUE_BODY" | python3 .claude/skills/fix-issue/scripts/sanitize_issue_markdown.py这将移除:
- HTML评论(
<!-- ... -->) - 零宽度和不可见的Unicode字符
- 过多的空行
- HTML details/summary标签(保留内容)
- HTML评论(
-
分析问题:
- 理解问题所要求的内容
- 确定工作类型(bug修复、功能、重构等)
- 注意提到的任何特定要求或约束
-
探索代码库:
- 搜索与问题相关的文件和代码
- 理解当前实现
- 确定需要更改的内容
- 查看现有测试以理解项目中使用的测试模式
-
确定测试方法:
考虑这种更改适合哪种测试:
- E2E测试:面向用户的功能或完整用户流程。当更改涉及UI交互或需要模拟许多依赖项以进行单元测试时,优先选择此方法。
- 单元测试:对于纯业务逻辑、实用函数或隔离组件。
- 不添加新测试:仅用于琐碎更改(拼写错误、配置调整等)
注意:根据项目指南,避免为一个功能编写多个E2E测试。优先选择一两个覆盖面广的E2E测试。如果不确定,请向用户询问测试方法的指导。
E2E测试重要提示:在运行E2E测试之前,必须运行
npm run build。E2E测试针对构建的应用程序二进制文件运行。如果对应用程序代码(e2e-tests/之外的任何内容)进行了任何更改,必须在运行E2E测试之前重新运行npm run build,否则将测试旧版本。 -
创建详细计划:
编写一个计划,包括:
- 摘要:问题及其解决方案的简要描述
- 要修改的文件:需要更改的文件列表
- 实施步骤:要做的具体更改的有序列表
- 测试方法:添加什么测试(E2E、单元或无)及原因
- 潜在风险:任何需要考虑的问题或边缘情况
-
执行计划:
如果计划直接无歧义或开放性问题:
- 直接进入实施,无需征求批准
- 逐步实施计划
- 完成后运行
/dyad:pr-push
如果计划具有显著复杂性、多种有效方法或需要用户输入:
- 向用户呈现计划并使用
ExitPlanMode请求批准 - 批准后,逐步实施计划
- 完成后运行
/dyad:pr-push