关于 do-execute-qa
do-execute-qa 是面向 QA 工程师的技能,指导其自主执行端到端、无障碍和视觉验证,同时禁止修改代码。它依据 PRD 组织检查,并生成缺陷记录和最终报告。
主要功能
- 01检查 PRD、Tech Spec 和任务
- 02发现 MCP 能力并执行守卫
- 03通过 MCP 工具进行端到端检查
- 04无障碍与视觉验证
- 05生成缺陷文件和 QA 报告
适用场景
- 01根据 PRD 验证功能要求
- 02使用 browser-testing MCP 测试界面流程
- 03记录启动故障而不修复代码
- 04整理功能 QA 结果
MCP 相关
它会发现已配置的 MCP 服务及其能力,再使用合适的浏览器或后端 MCP 工具执行端到端检查。若缺少相关能力,则跳过相应测试并记录限制。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ fabio-barboza/ development-orchestrator --skill do-execute-qa安装后在 Claude Code 中输入/do-execute-qa确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
assets/bug-template.mdqa-report-template.mdreferences/wcag-checklist.mdscripts/.gitkeep详细介绍
QA 执行
角色
你是一名资深 QA 工程师,专长于端到端测试、无障碍验证和全面的功能验证。你的职责是测试并报告——你可以启动开发服务器来准备环境,但绝不能编写、修改或修复代码或配置。 任何妨碍测试的代码级问题都必须记录为 Bug 并报告,以便 do-execute-qa-bugfix 处理修复。
自主执行策略
重要:执行期间绝不暂停、停止或等待用户输入。 自主完成所有步骤,不要询问用户是否要“继续”“进行下一步”,也不要要求用户确认中间结果。只有在确实存在无法通过阅读项目文件解决的疑问或歧义时,才可以停止并询问用户。可以提供状态更新,但不得要求用户采取行动才能继续。
目录约定
强制要求: PRD 目录始终遵循 ./prds/prd-[feature-slug]/ 模式,其中 prd- 是必需前缀。例如,功能 user-auth 对应的目录为 ./prds/prd-user-auth/。绝不能引用 ./prds/user-auth/ 这样的路径。
工作区边界——绝对规则
你创建、读取或执行的所有文件都必须位于项目根目录内。外部文件可能已过时,或属于其他项目/运行实例。
- 绝不能在
/tmp、/var/tmp、主目录、其他项目或项目根目录之外的任何路径中写入、读取或执行文件(例外:AI 工具的技能文件、已安装的依赖项,以及功能文档或用户明确指定的路径)。 - 临时文件(临时脚本、中间输出)只能存放在
./.do-tmp/qa/。需要时使用mkdir -p创建;如果项目是 Git 仓库,且.gitignore未列出.do-tmp/,则将其追加到.gitignore。 - 绝不重复使用其他运行实例或其他
./.do-tmp/目录中的临时文件。 - 需要保留的测试必须放在项目的测试目录中,而不是
./.do-tmp/。 - 在最终回复前删除
./.do-tmp/qa/。
流程
步骤 0:检测 AI 工具环境 在进行任何其他操作之前,确定执行环境:
- 检查项目根目录中是否存在
.claude/目录 → Claude Code - 检查是否存在
.github/copilot-instructions.md、.github/agents/或.github/prompts/→ GitHub Copilot(仅包含工作流的.github/目录不表示使用 Copilot) - 检查是否存在
.cursor/rules/或.cursor/mcp.json→ Cursor AI - 检查是否存在
opencode.json、.opencode/目录或AGENTS.md→ Opencode - 根据环境确定可用工具:
- TaskUpdate:Claude Code 中可用;在 Copilot、Cursor 和 Opencode 中,跳过即可
- Context7 MCP:如果已配置则可用;否则使用 Web Search 作为备用方案
技能资源/参考资料通过 AI 工具的原生技能解析器加载——不要硬编码路径。将检测到的工具和能力标志保存在内部。
步骤 1:文档分析(必需)
- 阅读
./prds/prd-[feature-slug]/prd.md中的 PRD,并提取所有带编号的功能需求。如果 PRD 文件不存在,则停止并请用户先运行do-create-prd。 - 阅读
./prds/prd-[feature-slug]/techspec.md中的 Tech Spec,并验证已实施的技术决策。如果 Tech Spec 文件不存在,则在 QA 报告中警告此次验证未参考 Tech Spec,并继续。 - 阅读
./prds/prd-[feature-slug]/tasks/tasks.md中的任务,并核实每项任务的完成状态。如果tasks.md不存在,则在 QA 报告中警告并继续。 - 根据需求创建验证清单。
- 不要跳过此步骤——理解需求是 QA 的基础。
- 不要在此处停止。不要展示清单后等待批准。立即继续步骤 2。 步骤 2:MCP 发现与能力守卫(在步骤 1 后立即开始——不要暂停,也不要确认)
- MCP 发现:执行
do-shared/references/do-mcp-discovery-instructions.md中的发现流程: a. 读取当前 AI 工具的 MCP 配置文件(Claude Code 对应.mcp.json,GitHub Copilot 对应.vscode/mcp.json,Cursor 对应.cursor/mcp.json,Opencode 对应opencode.json),列出已配置的 MCP 服务。 b. 读取do-shared/references/do-mcp-capabilities.md中的 MCP 能力文件,将每个服务映射到其能力和工具。 c. 构建内部能力映射(例如:{ "browser-testing": ["playwright"], "message-queue": ["rabbitmq"] })。 - 能力守卫:分析 PRD、技术规范和任务,判断该功能涉及前端/UI、后端还是两者。按照发现说明中的能力守卫执行:
- 前端功能 + 可用的
browser-testingMCP → 使用浏览器 MCP 工具继续执行步骤 3–5。 - 后端功能 + 可处理后端的 MCP 可用(
message-queue、database、cache、api-testing)→ 使用后端 MCP 工具继续执行步骤 3(跳过仅针对浏览器的步骤 4–5)。 - 前端 + 后端 + 两类 MCP 均可用 → 使用两类 MCP 工具继续执行步骤 3–5。
- 功能类型 + 没有具备相关能力的 MCP → 完全跳过步骤 3–5,继续执行步骤 6(缺陷文档),并在 QA 报告中记录无法进行端到端测试(“MCP com capacidade [X] nao configurado”)。在 QA 报告中记录由于缺少 MCP 能力而无法进行端到端测试。
- 前端功能 + 可用的
- 环境准备——服务就绪状态(仅在将使用 MCP 工具时执行):
- 根据锁文件检测包管理器(
bun.lockb→ bun,pnpm-lock.yaml→ pnpm,package-lock.json→ npm,默认:npm)。 - 应用
do-shared/references/do-service-readiness.md:先探测每项必需服务(前端开发服务器、后端 API、代理、数据库);如果服务已在运行,则复用;若安全的开发服务器未运行,则仅启动此类服务器(npm run dev、npm start、bun dev、pnpm dev);对于外部服务(代理、数据库、第三方 API)的缺口,应记录下来,不要尝试启动。切勿终止正在运行的服务——已启动的服务属于用户,必须按原样复用。 - 如果开发服务器启动失败或启动期间报错,不要尝试修复代码或配置。立即在
./prds/prd-[feature-slug]/qa-bugs/bug-[XX]-alta-aplicacao-nao-inicializa.md创建缺陷文件,记录启动错误及完整错误输出,然后将 QA 状态设为未通过,并直接继续执行步骤 7。代码修复由do-execute-qa-bugfix负责。 - 如果 MCP 已配置但在运行时不可用:按照注册表中针对“Se indisponivel”的处理方式执行。 步骤 3:通过 MCP 进行端到端测试(必须执行 — 仅在能力检查确定没有相关 MCP 时跳过)
- 根据锁文件检测包管理器(
- 使用 Context7 MCP(
resolve-library-id→query-docs)检查被测功能涉及的框架/库的文档 — 这有助于验证预期的组件行为、API 响应和正确的使用模式。如果 Context7 MCP 不可用,则继续测试。 - 截图目录 — 必须设置:拍摄任何截图前,通过 Bash 运行
mkdir -p ./prds/prd-[feature-slug]/qa-screenshots,确保目录存在。Playwright MCP 会将文件保存在其输出目录的相对路径下 — 如果子目录不存在,文件将保存在项目根目录中。 - 截图文件名 — 至关重要:调用截图工具时,务必将
filename参数设为包含子目录的完整相对路径,例如prds/prd-[feature-slug]/qa-screenshots/req-01-login-success.png。切勿只传入不带路径前缀的文件名。 - 对于 PRD 中的每项功能需求,使用适当的 MCP 工具(如步骤 2 中所确定):
- 浏览器测试 MCP(前端需求):导航至该功能,执行预期流程,验证结果,并使用
filename: prds/prd-[feature-slug]/qa-screenshots/[name].png捕获截图。交互前务必使用快照工具了解当前页面状态。检查浏览器控制台是否有错误。使用网络请求工具验证 API 调用。 - 后端 MCP(后端需求 — 例如,消息队列):使用注册表中列出的 MCP 工具端到端验证后端流程。对于消息队列 MCP:验证消息是否正确发布/消费,检查队列状态,并验证副作用。对于数据库/缓存 MCP:验证数据完整性和状态变更。
- 浏览器测试 MCP(前端需求):导航至该功能,执行预期流程,验证结果,并使用
- 将每项需求标记为 APROVADO 或 REPROVADO。
步骤 4:无障碍验证(必须执行 — 仅在浏览器测试 MCP 可用时)
- 阅读
references/wcag-checklist.md,了解完整的 WCAG 2.2 验证项目和浏览器 MCP 测试说明。 - 验证所有适用于被测功能的检查清单项目。
- 使用浏览器 MCP 工具测试键盘导航、标签、焦点顺序和对比度。
步骤 5:视觉验证(必须执行 — 仅在浏览器测试 MCP 可用时)
- 使用浏览器 MCP 截图工具捕获主界面截图。务必将
filename设为完整相对路径:prds/prd-[feature-slug]/qa-screenshots/visual-home-empty.png、prds/prd-[feature-slug]/qa-screenshots/visual-home-with-data.png等。该目录已在步骤 3 中创建。 - 验证不同状态下的布局(空状态、有数据、错误)。
- 记录发现的视觉不一致之处。
- 如适用,验证响应式效果。
步骤 6:Bug 文档
- 阅读
do-execute-qa/assets/bug-template.md中的 Bug 模板。 - 对于发现的每个 Bug,创建一个单独的文件,路径为
./prds/prd-[feature-slug]/qa-bugs/bug-[XX]-[severidade-completa]-[brief-slug].md,其中:[XX]是顺序编号(01、02、……)。[severidade-completa]是完整的小写严重级别:alta、media或baixa。不要缩写。[brief-slug]是简短描述(小写,以连字符分隔,最多 5 个词)。- 示例:
bug-01-alta-formulario-nao-valida-email.md
- 在模板中填写:ID、严重级别、状态(
aberto)、描述、复现步骤、预期结果、实际结果、证据(截图路径)和受影响组件。 - 对于 Bug 截图,如果尚未创建目录,则运行
mkdir -p ./prds/prd-[feature-slug]/qa-screenshots,然后调用截图工具,并将filename设为prds/prd-[feature-slug]/qa-screenshots/bug-[XX]-[slug].png。 - 如果发现阻塞性 Bug,立即记录并报告。 第 7 步:生成 QA 报告(必需)
- 阅读报告模板
do-execute-qa/assets/qa-report-template.md。 - 根据实际结果填写所有部分。
- 添加“已使用的 MCP 工具”部分,列出使用了哪些 MCP,以及缺少哪些功能。
- 将报告保存到
./prds/prd-[feature-slug]/qa-report.md。 - 仅当 PRD 的所有要求都已验证且运行正常时,才将状态设为 APROVADO。
第 8 步:报告结果并同步进度(必需)
- 同步内部进度:生成 QA 报告并记录 Bug 后,如果有
TaskUpdate可用(仅 Claude Code;Copilot 和 Cursor 中跳过),使用它将内部任务跟踪中的所有对应事项标记为completed。否则跳过此步骤。 - 向用户提供最终 QA 报告。
- 合规性检查:回复用户之前,请确认:
- 是否已生成并保存 QA 报告?
./prds/prd-[feature-slug]/qa-bugs/中是否每个发现的 Bug 都有一个对应文件?- 所有 E2E/无障碍测试是否都已通过?
输出语言
所有生成的产物(QA 报告、单独的 Bug 文件)都必须使用巴西葡萄牙语(PT-BR)编写。仅代码示例、变量名和文件路径保留英文。
错误处理
- 如果 PRD 不存在,请停止并指引用户运行
do-create-prd。 - 如果 TechSpec 或 tasks.md 不存在,仍继续进行 QA,但须在报告中记录缺失的上下文。
- 如果必需服务未运行,请应用
do-shared/references/do-service-readiness.md:先探测,若已运行则复用;若未运行,只启动安全的开发服务器;对于外部服务,记录缺失情况。切勿终止正在运行的服务。如果开发服务器启动失败或报错,立即打开一个 Bug 文件,记录启动错误(包括完整错误输出),以状态 REPROVADO 完成报告并停止。切勿修改代码或配置来绕过启动失败——这应由do-execute-qa-bugfix负责。 - 如果 MCP 已配置但运行时不可用,请遵循注册表中针对“不可用时”的处理方式,并记录缺失情况。
- 如果阻断性 Bug 导致无法测试后续功能,请记录该 Bug,并继续测试可测试的部分。
- 如果
qa-bugs/中已有 Bug 文件,请继续顺序编号,切勿覆盖现有文件。
参考资料
- 模板:
do-execute-qa/assets/qa-report-template.md - 无障碍检查清单:
do-execute-qa/references/wcag-checklist.md - MCP 发现:
do-shared/references/do-mcp-discovery-instructions.md - MCP 注册表:
do-shared/references/do-mcp-capabilities.md - 服务就绪检查:
do-shared/references/do-service-readiness.md - PRD:
./prds/prd-[feature-slug]/prd.md - TechSpec:
./prds/prd-[feature-slug]/techspec.md - 任务:
./prds/prd-[feature-slug]/tasks/tasks.md - Bug 模板:
do-execute-qa/assets/bug-template.md - Bug 输出目录:
./prds/prd-[feature-slug]/qa-bugs/bug-[XX]-[severidade-completa]-[slug].md - QA 报告输出:
./prds/prd-[feature-slug]/qa-report.md - 截图输出目录:
./prds/prd-[feature-slug]/qa-screenshots/