@brunosps00/dev-workflow 0.13.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +106 -122
- package/lib/constants.js +16 -36
- package/lib/migrate-skills.js +11 -4
- package/lib/removed-commands.js +30 -0
- package/package.json +1 -1
- package/scaffold/en/agent-instructions.md +27 -16
- package/scaffold/en/commands/dw-adr.md +2 -2
- package/scaffold/en/commands/dw-analyze-project.md +7 -7
- package/scaffold/en/commands/dw-autopilot.md +20 -20
- package/scaffold/en/commands/dw-brainstorm.md +160 -9
- package/scaffold/en/commands/dw-bugfix.md +7 -6
- package/scaffold/en/commands/dw-commit.md +1 -1
- package/scaffold/en/commands/dw-dockerize.md +9 -9
- package/scaffold/en/commands/dw-find-skills.md +4 -4
- package/scaffold/en/commands/dw-functional-doc.md +2 -2
- package/scaffold/en/commands/dw-generate-pr.md +4 -4
- package/scaffold/en/commands/dw-help.md +95 -351
- package/scaffold/en/commands/dw-intel.md +76 -12
- package/scaffold/en/commands/dw-new-project.md +9 -9
- package/scaffold/en/commands/dw-plan.md +175 -0
- package/scaffold/en/commands/dw-qa.md +166 -0
- package/scaffold/en/commands/dw-redesign-ui.md +7 -7
- package/scaffold/en/commands/dw-review.md +198 -0
- package/scaffold/en/commands/dw-run.md +176 -0
- package/scaffold/en/commands/dw-secure-audit.md +222 -0
- package/scaffold/en/commands/dw-update.md +1 -1
- package/scaffold/en/references/playwright-patterns.md +1 -1
- package/scaffold/en/references/refactoring-catalog.md +1 -1
- package/scaffold/en/templates/brainstorm-matrix.md +1 -1
- package/scaffold/en/templates/idea-onepager.md +3 -3
- package/scaffold/en/templates/project-onepager.md +5 -5
- package/scaffold/pt-br/agent-instructions.md +27 -16
- package/scaffold/pt-br/commands/dw-adr.md +2 -2
- package/scaffold/pt-br/commands/dw-analyze-project.md +7 -7
- package/scaffold/pt-br/commands/dw-autopilot.md +20 -20
- package/scaffold/pt-br/commands/dw-brainstorm.md +160 -9
- package/scaffold/pt-br/commands/dw-bugfix.md +10 -9
- package/scaffold/pt-br/commands/dw-commit.md +1 -1
- package/scaffold/pt-br/commands/dw-dockerize.md +9 -9
- package/scaffold/pt-br/commands/dw-find-skills.md +4 -4
- package/scaffold/pt-br/commands/dw-functional-doc.md +2 -2
- package/scaffold/pt-br/commands/dw-generate-pr.md +4 -4
- package/scaffold/pt-br/commands/dw-help.md +97 -300
- package/scaffold/pt-br/commands/dw-intel.md +77 -13
- package/scaffold/pt-br/commands/dw-new-project.md +9 -9
- package/scaffold/pt-br/commands/dw-plan.md +175 -0
- package/scaffold/pt-br/commands/dw-qa.md +166 -0
- package/scaffold/pt-br/commands/dw-redesign-ui.md +7 -7
- package/scaffold/pt-br/commands/dw-review.md +198 -0
- package/scaffold/pt-br/commands/dw-run.md +176 -0
- package/scaffold/pt-br/commands/dw-secure-audit.md +222 -0
- package/scaffold/pt-br/commands/dw-update.md +1 -1
- package/scaffold/pt-br/references/playwright-patterns.md +1 -1
- package/scaffold/pt-br/references/refactoring-catalog.md +1 -1
- package/scaffold/pt-br/templates/brainstorm-matrix.md +1 -1
- package/scaffold/pt-br/templates/idea-onepager.md +3 -3
- package/scaffold/pt-br/templates/project-onepager.md +5 -5
- package/scaffold/pt-br/templates/tasks-template.md +1 -1
- package/scaffold/skills/api-testing-recipes/SKILL.md +6 -6
- package/scaffold/skills/api-testing-recipes/references/auth-patterns.md +1 -1
- package/scaffold/skills/api-testing-recipes/references/matrix-conventions.md +1 -1
- package/scaffold/skills/api-testing-recipes/references/openapi-driven.md +3 -3
- package/scaffold/skills/docker-compose-recipes/SKILL.md +1 -1
- package/scaffold/skills/dw-codebase-intel/SKILL.md +9 -9
- package/scaffold/skills/dw-codebase-intel/agents/intel-updater.md +4 -4
- package/scaffold/skills/dw-codebase-intel/references/api-design-discipline.md +1 -1
- package/scaffold/skills/dw-codebase-intel/references/incremental-update.md +5 -5
- package/scaffold/skills/dw-codebase-intel/references/intel-format.md +1 -1
- package/scaffold/skills/dw-codebase-intel/references/query-patterns.md +3 -3
- package/scaffold/skills/dw-council/SKILL.md +2 -2
- package/scaffold/skills/dw-debug-protocol/SKILL.md +5 -3
- package/scaffold/skills/dw-execute-phase/SKILL.md +16 -16
- package/scaffold/skills/dw-execute-phase/agents/executor.md +5 -5
- package/scaffold/skills/dw-execute-phase/agents/plan-checker.md +4 -4
- package/scaffold/skills/dw-execute-phase/references/atomic-commits.md +1 -1
- package/scaffold/skills/dw-execute-phase/references/plan-verification.md +2 -2
- package/scaffold/skills/dw-execute-phase/references/wave-coordination.md +1 -1
- package/scaffold/skills/dw-git-discipline/SKILL.md +5 -2
- package/scaffold/skills/dw-incident-response/SKILL.md +168 -0
- package/scaffold/skills/dw-incident-response/references/blameless-discipline.md +126 -0
- package/scaffold/skills/dw-incident-response/references/communication-templates.md +107 -0
- package/scaffold/skills/dw-incident-response/references/postmortem-template.md +133 -0
- package/scaffold/skills/dw-incident-response/references/runbook-templates.md +169 -0
- package/scaffold/skills/dw-incident-response/references/severity-and-triage.md +186 -0
- package/scaffold/skills/dw-llm-eval/SKILL.md +150 -0
- package/scaffold/skills/dw-llm-eval/references/agent-eval.md +252 -0
- package/scaffold/skills/dw-llm-eval/references/judge-calibration.md +169 -0
- package/scaffold/skills/dw-llm-eval/references/oracle-ladder.md +171 -0
- package/scaffold/skills/dw-llm-eval/references/rag-metrics.md +186 -0
- package/scaffold/skills/dw-llm-eval/references/reference-dataset.md +190 -0
- package/scaffold/skills/dw-memory/SKILL.md +2 -2
- package/scaffold/skills/dw-review-rigor/SKILL.md +5 -5
- package/scaffold/skills/dw-simplification/SKILL.md +4 -4
- package/scaffold/skills/dw-source-grounding/SKILL.md +1 -1
- package/scaffold/skills/dw-testing-discipline/SKILL.md +103 -78
- package/scaffold/skills/dw-testing-discipline/references/agent-guardrails.md +170 -0
- package/scaffold/skills/dw-testing-discipline/references/anti-patterns.md +7 -7
- package/scaffold/skills/dw-testing-discipline/references/core-rules.md +128 -0
- package/scaffold/skills/dw-testing-discipline/references/flaky-discipline.md +3 -3
- package/scaffold/skills/dw-testing-discipline/references/{positive-patterns.md → patterns.md} +1 -1
- package/scaffold/skills/dw-testing-discipline/references/playwright-recipes.md +3 -3
- package/scaffold/skills/dw-ui-discipline/SKILL.md +103 -79
- package/scaffold/skills/dw-ui-discipline/references/accessibility-floor.md +2 -2
- package/scaffold/skills/dw-ui-discipline/references/hard-gate.md +93 -73
- package/scaffold/skills/dw-ui-discipline/references/state-matrix.md +1 -1
- package/scaffold/skills/dw-ui-discipline/references/visual-slop.md +152 -0
- package/scaffold/skills/dw-verify/SKILL.md +4 -4
- package/scaffold/skills/humanizer/SKILL.md +1 -7
- package/scaffold/skills/remotion-best-practices/SKILL.md +3 -1
- package/scaffold/skills/security-review/SKILL.md +1 -1
- package/scaffold/skills/security-review/languages/csharp.md +1 -1
- package/scaffold/skills/security-review/languages/rust.md +1 -1
- package/scaffold/skills/security-review/languages/typescript.md +1 -1
- package/scaffold/skills/vercel-react-best-practices/SKILL.md +3 -1
- package/scaffold/templates-overrides-readme.md +3 -3
- package/scaffold/en/commands/dw-code-review.md +0 -385
- package/scaffold/en/commands/dw-create-prd.md +0 -148
- package/scaffold/en/commands/dw-create-tasks.md +0 -195
- package/scaffold/en/commands/dw-create-techspec.md +0 -210
- package/scaffold/en/commands/dw-deep-research.md +0 -418
- package/scaffold/en/commands/dw-deps-audit.md +0 -327
- package/scaffold/en/commands/dw-fix-qa.md +0 -152
- package/scaffold/en/commands/dw-map-codebase.md +0 -125
- package/scaffold/en/commands/dw-refactoring-analysis.md +0 -340
- package/scaffold/en/commands/dw-revert-task.md +0 -114
- package/scaffold/en/commands/dw-review-implementation.md +0 -349
- package/scaffold/en/commands/dw-run-plan.md +0 -300
- package/scaffold/en/commands/dw-run-qa.md +0 -496
- package/scaffold/en/commands/dw-run-task.md +0 -209
- package/scaffold/en/commands/dw-security-check.md +0 -271
- package/scaffold/pt-br/commands/dw-code-review.md +0 -365
- package/scaffold/pt-br/commands/dw-create-prd.md +0 -148
- package/scaffold/pt-br/commands/dw-create-tasks.md +0 -195
- package/scaffold/pt-br/commands/dw-create-techspec.md +0 -208
- package/scaffold/pt-br/commands/dw-deep-research.md +0 -172
- package/scaffold/pt-br/commands/dw-deps-audit.md +0 -327
- package/scaffold/pt-br/commands/dw-fix-qa.md +0 -152
- package/scaffold/pt-br/commands/dw-map-codebase.md +0 -125
- package/scaffold/pt-br/commands/dw-refactoring-analysis.md +0 -340
- package/scaffold/pt-br/commands/dw-revert-task.md +0 -114
- package/scaffold/pt-br/commands/dw-review-implementation.md +0 -337
- package/scaffold/pt-br/commands/dw-run-plan.md +0 -296
- package/scaffold/pt-br/commands/dw-run-qa.md +0 -494
- package/scaffold/pt-br/commands/dw-run-task.md +0 -208
- package/scaffold/pt-br/commands/dw-security-check.md +0 -271
- package/scaffold/skills/dw-testing-discipline/references/ai-agent-gates.md +0 -170
- package/scaffold/skills/dw-testing-discipline/references/iron-laws.md +0 -128
- package/scaffold/skills/dw-ui-discipline/references/anti-slop.md +0 -162
|
@@ -1,494 +0,0 @@
|
|
|
1
|
-
<system_instructions>
|
|
2
|
-
Você é um assistente IA especializado em Quality Assurance. Sua tarefa é validar que a implementação atende todos os requisitos definidos no PRD, TechSpec e Tasks, executando testes E2E, verificações de acessibilidade e análises visuais.
|
|
3
|
-
|
|
4
|
-
## Quando Usar
|
|
5
|
-
- Use para validar que a implementação atende todos os requisitos do PRD, TechSpec e Tasks por meio de testes E2E, verificações de acessibilidade e análise visual
|
|
6
|
-
- NÃO use quando apenas testes unitários/integração são necessários (use o test runner do projeto diretamente)
|
|
7
|
-
- NÃO use quando os requisitos ainda não foram definidos (crie o PRD primeiro)
|
|
8
|
-
|
|
9
|
-
## Posição no Pipeline
|
|
10
|
-
**Antecessor:** `/dw-run-plan` ou `/dw-run-task` | **Sucessor:** `/dw-code-review` (auto-fixes bugs internally before completing)
|
|
11
|
-
|
|
12
|
-
<critical>Em modo UI, use o Playwright MCP para todos os testes E2E. Em modo API (sem UI no projeto OU flag `--api`), use a skill bundled `api-testing-recipes` para gerar scripts `.http` / pytest+httpx / supertest / WebApplicationFactory / reqwest e capturar logs de request/response como evidência.</critical>
|
|
13
|
-
<critical>Verifique TODOS os requisitos do PRD e TechSpec antes de aprovar</critical>
|
|
14
|
-
<critical>O QA NÃO está completo até que TODAS as verificações passem</critical>
|
|
15
|
-
<critical>Documente TODOS os bugs encontrados com screenshots de evidência</critical>
|
|
16
|
-
<critical>Valide integralmente cada requisito com cenários de happy path, edge cases, regressões e fluxos negativos quando aplicável</critical>
|
|
17
|
-
<critical>NÃO aprove QA com cobertura parcial, implícita ou assumida; se um requisito não foi exercitado ponta a ponta, ele deve constar como não validado e o QA não pode ser aprovado</critical>
|
|
18
|
-
|
|
19
|
-
## Skills Complementares
|
|
20
|
-
|
|
21
|
-
Quando disponíveis no projeto em `./.agents/skills/`, use estas skills como apoio operacional sem substituir este comando:
|
|
22
|
-
|
|
23
|
-
- `dw-testing-discipline`: (modo UI) **SEMPRE** — Iron Laws e 25 anti-patterns valem pra todo teste de QA autorado. `references/playwright-recipes.md` pra patterns táticos. `references/three-workflow-patterns.md` pra escolher o modo certo (UI / network / perf). `references/security-boundary.md` pra qualquer fluxo que cruza boundary de auth.
|
|
24
|
-
- `vercel-react-best-practices`: (modo UI) use apenas se o frontend sob teste for React/Next.js e houver indicação de regressão relacionada a renderização, fetching, hidratação ou performance percebida
|
|
25
|
-
- `dw-ui-discipline`: (modo UI) use ao validar consistência de design — o catálogo anti-slop e o floor de acessibilidade WCAG são checados como parte da evidência de QA
|
|
26
|
-
- `api-testing-recipes`: **(modo API — SEMPRE)** snippets validados para `.http`, pytest+httpx, supertest, WebApplicationFactory, reqwest. Compõe um arquivo de teste por RF em `QA/scripts/api/` e logs JSONL em `QA/logs/api/` segundo seus references
|
|
27
|
-
|
|
28
|
-
## Ferramentas de Análise
|
|
29
|
-
|
|
30
|
-
- **React**: execute `npx react-doctor@latest --diff` após os testes para verificar se o health score não regrediu com as mudanças
|
|
31
|
-
- **Angular**: execute `ng lint` para validar conformidade do código Angular após as mudanças
|
|
32
|
-
|
|
33
|
-
## Variáveis de Entrada
|
|
34
|
-
|
|
35
|
-
| Variável | Descrição | Exemplo |
|
|
36
|
-
|----------|-----------|---------|
|
|
37
|
-
| `{{PRD_PATH}}` | Caminho da pasta do PRD | `.dw/spec/prd-minha-feature` |
|
|
38
|
-
|
|
39
|
-
## Objetivos
|
|
40
|
-
|
|
41
|
-
1. Validar implementação contra PRD, TechSpec e Tasks
|
|
42
|
-
2. **Detectar modo** (UI vs API-only) e escolher o caminho de execução certo
|
|
43
|
-
3. Executar testes E2E via Playwright MCP (modo UI) OU via skill `api-testing-recipes` (modo API)
|
|
44
|
-
4. Cobrir cenários positivos, negativos, limites e regressões relevantes
|
|
45
|
-
5. Verificar acessibilidade (modo UI = WCAG 2.2; modo API = formato de erro e contratos de superfície)
|
|
46
|
-
6. Realizar verificações visuais (somente modo UI — pulado em modo API)
|
|
47
|
-
7. Documentar bugs encontrados
|
|
48
|
-
8. Gerar relatório final de QA
|
|
49
|
-
|
|
50
|
-
## Localização dos Arquivos
|
|
51
|
-
|
|
52
|
-
- PRD: `{{PRD_PATH}}/prd.md`
|
|
53
|
-
- TechSpec: `{{PRD_PATH}}/techspec.md`
|
|
54
|
-
- Tasks: `{{PRD_PATH}}/tasks.md`
|
|
55
|
-
- Rules do Projeto: `.dw/rules/`
|
|
56
|
-
- Credenciais de Teste QA: `.dw/templates/qa-test-credentials.md`
|
|
57
|
-
- Padrões Playwright: `.dw/references/playwright-patterns.md`
|
|
58
|
-
- Pasta de evidências QA (obrigatória): `{{PRD_PATH}}/QA/`
|
|
59
|
-
- Relatório de Saída: `{{PRD_PATH}}/QA/qa-report.md`
|
|
60
|
-
- Bugs encontrados: `{{PRD_PATH}}/QA/bugs.md`
|
|
61
|
-
- Screenshots (modo UI): `{{PRD_PATH}}/QA/screenshots/`
|
|
62
|
-
- Logs — UI (console/rede): `{{PRD_PATH}}/QA/logs/`
|
|
63
|
-
- Logs — API (JSONL request/response): `{{PRD_PATH}}/QA/logs/api/`
|
|
64
|
-
- Scripts de teste Playwright (modo UI): `{{PRD_PATH}}/QA/scripts/`
|
|
65
|
-
- Scripts de teste API (modo API — `.http` / pytest+httpx / supertest / etc.): `{{PRD_PATH}}/QA/scripts/api/`
|
|
66
|
-
- Checklist consolidado: `{{PRD_PATH}}/QA/checklist.md`
|
|
67
|
-
- Receitas de API testing (skill): `.agents/skills/api-testing-recipes/`
|
|
68
|
-
|
|
69
|
-
## Contexto Multi-Projeto
|
|
70
|
-
|
|
71
|
-
Identifique os projetos com frontend testável via Playwright verificando a configuração do projeto. Setups comuns incluem:
|
|
72
|
-
|
|
73
|
-
| Projeto | URL Local | Framework |
|
|
74
|
-
|---------|-----------|-----------|
|
|
75
|
-
| Frontend web | `http://localhost:3000` | (verificar config do projeto) |
|
|
76
|
-
| Frontend admin | `http://localhost:4000` | (verificar config do projeto) |
|
|
77
|
-
|
|
78
|
-
Consulte `.dw/rules/` para URLs e frameworks específicos do projeto.
|
|
79
|
-
|
|
80
|
-
## Etapas do Processo
|
|
81
|
-
|
|
82
|
-
### 0. Detecção de Modo (UI vs API) — Obrigatório PRIMEIRO
|
|
83
|
-
|
|
84
|
-
Decida se o projeto tem UI testável ou e API-only antes de qualquer setup de browser/API. O modo escolhido dirige todas as etapas seguintes.
|
|
85
|
-
|
|
86
|
-
**Auto-detecção (mesma matriz usada por `/dw-dockerize`):**
|
|
87
|
-
|
|
88
|
-
| Sinal | Modo UI | Modo API |
|
|
89
|
-
|-------|---------|----------|
|
|
90
|
-
| `package.json` deps | `next`, `vite`, `react`, `vue`, `svelte`, `@angular/*`, `nuxt`, `astro`, `solid-js`, `remix` | nenhum dos acima |
|
|
91
|
-
| `pyproject.toml` / `requirements*.txt` | `jinja2`, `django` (full), `flask` + `flask_login`/`render_template` | `fastapi`, `flask` (so JSON), `starlette`, `litestar` |
|
|
92
|
-
| `*.csproj` | `Microsoft.AspNetCore.Mvc`, Razor, Blazor | `Microsoft.AspNetCore.Mvc.Core` so, templates de minimal API |
|
|
93
|
-
| `Cargo.toml` | `yew`, `leptos`, `dioxus`, `sycamore` | `axum`, `actix-web`, `rocket`, `warp` (sem template engine) |
|
|
94
|
-
|
|
95
|
-
Se NENHUM sinal de UI bater → **modo API**. Se pelo menos um bate → **modo UI** (default).
|
|
96
|
-
|
|
97
|
-
**Override manual (flags):**
|
|
98
|
-
|
|
99
|
-
- `--api` força modo API (útil para rodar testes API headless dentro de um projeto fullstack onde a UI nao importa nesta rodada).
|
|
100
|
-
- `--ui` força modo UI (gera erro claro se nenhuma dep de UI for detectada — evita rodar testes de browser contra repo backend-only sem querer).
|
|
101
|
-
- `--from-openapi <path-or-url>` adiciona baseline OpenAPI em cima do modo API (veja `.agents/skills/api-testing-recipes/references/openapi-driven.md`).
|
|
102
|
-
|
|
103
|
-
**Efeito nas etapas seguintes:**
|
|
104
|
-
|
|
105
|
-
| Etapa | Modo UI | Modo API |
|
|
106
|
-
|-------|---------|----------|
|
|
107
|
-
| 2 — Preparação do Ambiente | Playwright + browser setup completo | Setup de cliente API, sem browser; cria `QA/scripts/api/` e `QA/logs/api/` |
|
|
108
|
-
| 3 — Verificação de Páginas do Menu | obrigatório, bloqueante | **pulado** |
|
|
109
|
-
| 4 — Testes E2E | Playwright MCP | skill `api-testing-recipes` (recipe por stack) |
|
|
110
|
-
| 5 — Acessibilidade | WCAG 2.2 com browser tools | checks de superfície API (formato de erro, semântica de status, detecção de leak) |
|
|
111
|
-
| 6 — Verificações Visuais | obrigatório (mobile + desktop) | **pulado** |
|
|
112
|
-
| 7-8 — Documentação de Bugs + Relatório | screenshots como evidência | logs JSONL como evidência (`evidence_type: api-log`) |
|
|
113
|
-
| 9 — Loop Fix-Retest | mesmo formato; replay do Playwright | mesmo formato; replay da recipe e gravação de nova linha de log |
|
|
114
|
-
|
|
115
|
-
Registre o modo escolhido no frontmatter do relatório QA (`mode: ui | api | mixed`). Em caso de dúvida, pergunte ao usuário antes de prosseguir — nunca caia em fallback silencioso.
|
|
116
|
-
|
|
117
|
-
<critical>Se nenhum sinal de UI nem de API for detectável (ex.: repo vazio), aborte com: "Não é possivel determinar o modo do QA. Rode `/dw-analyze-project` primeiro OU passe `--ui` ou `--api` explicitamente."</critical>
|
|
118
|
-
|
|
119
|
-
### 1. Análise de Documentação (Obrigatório)
|
|
120
|
-
|
|
121
|
-
- Ler o PRD e extrair TODOS os requisitos funcionais numerados (RF-XX)
|
|
122
|
-
- Ler a TechSpec e verificar decisões técnicas implementadas
|
|
123
|
-
- Ler o Tasks e verificar status de completude de cada tarefa
|
|
124
|
-
- Criar checklist de verificação baseado nos requisitos
|
|
125
|
-
- Para cada requisito, derivar explicitamente a matriz mínima de teste:
|
|
126
|
-
- happy path
|
|
127
|
-
- edge cases
|
|
128
|
-
- fluxos negativos/erros, quando existirem
|
|
129
|
-
- regressões ligadas ao requisito
|
|
130
|
-
- Se o requisito depender de estado histórico, séries, permissões, responsividade, dados vazios ou erros de API, esses cenários devem ser incluídos na matriz
|
|
131
|
-
|
|
132
|
-
<critical>NÃO PULE ESTA ETAPA - Entender os requisitos é fundamental para o QA</critical>
|
|
133
|
-
<critical>QA sem matriz de cenários por requisito está incompleto</critical>
|
|
134
|
-
|
|
135
|
-
### 2. Preparação do Ambiente (Obrigatório)
|
|
136
|
-
|
|
137
|
-
- Criar estrutura de evidências antes de testar:
|
|
138
|
-
- `{{PRD_PATH}}/QA/`
|
|
139
|
-
- `{{PRD_PATH}}/QA/screenshots/`
|
|
140
|
-
- `{{PRD_PATH}}/QA/logs/`
|
|
141
|
-
- `{{PRD_PATH}}/QA/scripts/`
|
|
142
|
-
<critical>ANTES de executar qualquer teste que envolva login ou autenticação, busque credenciais de teste no codebase. Procure por (em ordem de prioridade):
|
|
143
|
-
1. `.dw/templates/qa-test-credentials.md`
|
|
144
|
-
2. Qualquer arquivo com "credenciais", "credentials", "test-users", "test-accounts", "auth", "login", "usuarios-teste" no nome (busca recursiva com glob)
|
|
145
|
-
3. Variáveis de ambiente em `.env.test`, `.env.local`, `.env.development`
|
|
146
|
-
4. Documentação em README ou docs/ que mencione usuários de teste
|
|
147
|
-
Se NENHUMA credencial for encontrada, PARE e pergunte ao usuário antes de continuar. NÃO tente adivinhar credenciais ou usar dados falsos.</critical>
|
|
148
|
-
- Escolher o usuário/perfil apropriado para o cenário de teste
|
|
149
|
-
- Verificar se a aplicação está rodando em localhost
|
|
150
|
-
- Usar `browser_navigate` do Playwright MCP para acessar a aplicação
|
|
151
|
-
- Confirmar que a página carregou corretamente com `browser_snapshot`
|
|
152
|
-
- Se sessão persistente, import de auth, inspeção de rede além do MCP ou reprodução browser-first forem necessários, complementar com `dw-testing-discipline/references/playwright-recipes.md`
|
|
153
|
-
|
|
154
|
-
### 3. Verificação de Páginas do Menu (Somente modo UI — Obrigatório, Executar ANTES dos testes de RF)
|
|
155
|
-
|
|
156
|
-
**Em modo API, esta etapa é PULADA.** Superfícies de API não têm menus; o check equivalente (todo endpoint anunciado existe e responde) está dobrado dentro da Etapa 4-API.
|
|
157
|
-
|
|
158
|
-
<critical>(modo UI) ANTES de testar RFs individuais, verificar que CADA item do menu do módulo leva a uma página FUNCIONAL e ÚNICA. Esta verificação é bloqueante — se falhar, o QA NÃO pode ser aprovado.</critical>
|
|
159
|
-
|
|
160
|
-
Para cada item do menu do módulo:
|
|
161
|
-
1. Navegar para a página via `browser_navigate`
|
|
162
|
-
2. Aguardar carregamento completo
|
|
163
|
-
3. Capturar `browser_snapshot` do conteúdo principal da página
|
|
164
|
-
4. Capturar `browser_take_screenshot` como evidência
|
|
165
|
-
5. Verificar que:
|
|
166
|
-
- A página NÃO exibe mensagem genérica de placeholder/stub
|
|
167
|
-
- O conteúdo é DIFERENTE das outras páginas do módulo (não são todas iguais)
|
|
168
|
-
- A página tem funcionalidade real (tabela, formulário, calendário, cards com dados, etc.)
|
|
169
|
-
- A página faz pelo menos UMA chamada de API para carregar dados
|
|
170
|
-
|
|
171
|
-
**Indicadores de stub/placeholder a detectar (registrar como BUG ALTA):**
|
|
172
|
-
- Texto contendo "fundação inicial", "base protegida", "placeholder", "em construção", "próximas tasks"
|
|
173
|
-
- Múltiplas páginas com conteúdo HTML/texto idêntico
|
|
174
|
-
- Página que só mostra links/botões para OUTRAS páginas do módulo sem conteúdo próprio
|
|
175
|
-
- Página sem nenhum componente de dados (tabela, lista, formulário, gráfico)
|
|
176
|
-
- Página que não faz nenhuma chamada de API
|
|
177
|
-
|
|
178
|
-
**Se stub/placeholder detectado:**
|
|
179
|
-
- Reportar como **BUG ALTA severidade** em `QA/bugs.md`
|
|
180
|
-
- RFs associados àquela página devem ser marcados como **FALHOU**
|
|
181
|
-
- Capturar screenshot com sufixo `-STUB-FAIL.png`
|
|
182
|
-
- QA NÃO PODE ter status APROVADO enquanto páginas stub existirem no menu
|
|
183
|
-
|
|
184
|
-
**Fluxo de Decisão da Verificação de Menu:**
|
|
185
|
-
```dot
|
|
186
|
-
digraph menu_check {
|
|
187
|
-
"Check Menu Items" -> "All functional?" [shape=diamond];
|
|
188
|
-
"All functional?" -> "Proceed to RF tests" [label="yes"];
|
|
189
|
-
"All functional?" -> "Report STUB BUG\nFAIL QA" [label="no"];
|
|
190
|
-
}
|
|
191
|
-
```
|
|
192
|
-
|
|
193
|
-
### 4. Testes E2E (Obrigatório, mode-aware)
|
|
194
|
-
|
|
195
|
-
Esta etapa tem dois branches; escolha conforme o modo da Etapa 0.
|
|
196
|
-
|
|
197
|
-
#### 4-UI (modo UI) — Playwright MCP
|
|
198
|
-
|
|
199
|
-
Utilize as ferramentas do Playwright MCP para testar cada fluxo:
|
|
200
|
-
|
|
201
|
-
| Ferramenta | Uso |
|
|
202
|
-
|------------|-----|
|
|
203
|
-
| `browser_navigate` | Navegar para as páginas da aplicação |
|
|
204
|
-
| `browser_snapshot` | Capturar estado acessível da página (preferível para análise) |
|
|
205
|
-
| `browser_click` | Interagir com botões, links e elementos clicáveis |
|
|
206
|
-
| `browser_type` | Preencher campos de formulário |
|
|
207
|
-
| `browser_fill_form` | Preencher múltiplos campos de uma vez |
|
|
208
|
-
| `browser_select_option` | Selecionar opções em dropdowns |
|
|
209
|
-
| `browser_press_key` | Simular teclas (Enter, Tab, etc.) |
|
|
210
|
-
| `browser_take_screenshot` | Capturar evidências visuais (salvar em `{{PRD_PATH}}/QA/screenshots/`) |
|
|
211
|
-
| `browser_console_messages` | Verificar erros no console |
|
|
212
|
-
| `browser_network_requests` | Verificar chamadas de API |
|
|
213
|
-
|
|
214
|
-
Para cada requisito funcional do PRD:
|
|
215
|
-
1. Navegar até a funcionalidade
|
|
216
|
-
2. Executar o happy path
|
|
217
|
-
3. Executar edge cases relevantes ao requisito
|
|
218
|
-
4. Executar fluxos negativos/erros quando aplicável
|
|
219
|
-
5. Executar regressões relacionadas ao requisito
|
|
220
|
-
6. Verificar o resultado
|
|
221
|
-
7. Capturar screenshot de evidência em `{{PRD_PATH}}/QA/screenshots/` com nome padronizado: `RF-XX-[slug]-PASS.png` ou `RF-XX-[slug]-FAIL.png`
|
|
222
|
-
8. Marcar como PASSOU ou FALHOU
|
|
223
|
-
9. Salvar o script Playwright do fluxo em `{{PRD_PATH}}/QA/scripts/` com nome padronizado: `RF-XX-[slug].spec.ts` (ou `.js`)
|
|
224
|
-
10. Registrar no relatório quais credenciais (usuário/perfil) foram usadas em cada fluxo sensível a permissões
|
|
225
|
-
11. Quando o fluxo MCP ficar instável ou insuficiente para evidência operacional, complementar com `dw-testing-discipline/references/playwright-recipes.md`, registrando isso explicitamente no relatório
|
|
226
|
-
|
|
227
|
-
<critical>Não basta validar apenas o caminho feliz. Cada requisito deve ser exercitado contra seus estados de borda e suas regressões mais prováveis</critical>
|
|
228
|
-
<critical>Se um requisito não puder ser completamente validado via E2E, o QA deve ser marcado como REJEITADO ou BLOQUEADO, nunca APROVADO</critical>
|
|
229
|
-
|
|
230
|
-
#### 4-API (modo API) — skill `api-testing-recipes`
|
|
231
|
-
|
|
232
|
-
Use a skill bundled `api-testing-recipes` para compor os testes. A skill escolhe a recipe certa por stack (default `.http` / REST Client; `pytest+httpx`, `supertest`, `WebApplicationFactory`, `reqwest` por linguagem) e grava scripts e logs JSONL como evidência.
|
|
233
|
-
|
|
234
|
-
Processo:
|
|
235
|
-
|
|
236
|
-
1. **Leia** `.agents/skills/api-testing-recipes/SKILL.md` e selecione a recipe que casa com o stack backend primário do projeto. Default em `recipes/http-rest-client.md` a menos que o projeto já rode `pytest`/`vitest`/`dotnet test`/`cargo test`, caso em que prefira a recipe especifica do stack para os testes QA viverem ao lado dos testes unitários.
|
|
237
|
-
2. **Para cada requisito funcional (RF-XX) do PRD**, derive a matriz seguindo `.agents/skills/api-testing-recipes/references/matrix-conventions.md`:
|
|
238
|
-
- 200 happy path
|
|
239
|
-
- 4xx — validação (campo faltando, tipo errado, fora de range)
|
|
240
|
-
- 4xx — auth (sem token, expirado, malformado)
|
|
241
|
-
- 4xx — autorização (token válido, role errada)
|
|
242
|
-
- 4xx — not found
|
|
243
|
-
- 4xx — conflict
|
|
244
|
-
- 5xx — server error (so se reproduzível sinteticamente)
|
|
245
|
-
- **Contract drift** (formato da response vs OpenAPI / TS types) — obrigatório
|
|
246
|
-
- **Authorization cross-tenant** (token de outra org) — obrigatório se multi-tenant
|
|
247
|
-
3. **Gere um arquivo por RF** em `{{PRD_PATH}}/QA/scripts/api/RF-XX-[slug].<ext>` usando a estrutura da recipe. Encaminhe credenciais segundo os padrões em `.agents/skills/api-testing-recipes/references/auth-patterns.md` (NUNCA hardcode tokens).
|
|
248
|
-
4. **Execute** cada request (`curl` para `.http`; o runner do projeto para stack-specific). Para CADA request, anexe uma linha JSONL em `{{PRD_PATH}}/QA/logs/api/RF-XX-[slug].log` segundo `references/log-conventions.md`. Redact headers `Authorization`/`Cookie`/`X-API-Key` e qualquer campo de response que case com `password*`/`secret*`/`*_hash`/`token*`.
|
|
249
|
-
5. **Asserte** por expectativa da matriz:
|
|
250
|
-
- Status code casa com o esperado
|
|
251
|
-
- Response body casa com o schema (use `jq` em `.http`, matchers do framework por stack)
|
|
252
|
-
- Headers obrigatórios presentes (ex.: `Content-Type: application/json`)
|
|
253
|
-
- Sem campos internos vazados
|
|
254
|
-
6. **Marque o requisito** como APROVADO ou REPROVADO com resumo de uma linha citando o caminho do log e (se REPROVADO) o número da linha JSONL que falhou.
|
|
255
|
-
7. **Opcional**: se o projeto expõe spec OpenAPI (`openapi.yaml`, `openapi.json`, runtime `/openapi.json`), siga `references/openapi-driven.md` para gerar baseline. Use a flag `--from-openapi <path-or-url>` para deixar explícito.
|
|
256
|
-
|
|
257
|
-
Nota sobre baseline OpenAPI: se `--from-openapi` for usado, os testes gerados ficam ao lado dos derivados a mão, com filename `openapi-RF-XX-[path-slug].<ext>`. Endpoints da spec sem mapeamento para nenhum RF viram lacuna documental no relatório QA (`openapi-no-rf-*`).
|
|
258
|
-
|
|
259
|
-
<critical>(modo API) Todo endpoint que muta ou lê dados tenant-scoped DEVE ter teste de negacao cross-tenant. Pular so e permitido em sistemas explicitamente single-tenant e tem que ser registrado como `pytest.skip`/`it.skip`/equivalente com motivo.</critical>
|
|
260
|
-
<critical>(modo API) Logs sao evidência. Toda afirmacao de PASS ou FAIL no relatorio QA deve citar uma linha JSONL em `QA/logs/api/`. Sem log = sem evidência = QA nao pode ser APROVADO.</critical>
|
|
261
|
-
<critical>(modo API) NUNCA hardcode tokens ou credenciais em scripts commitados. Use referencias `@variavel`/env-var.</critical>
|
|
262
|
-
|
|
263
|
-
### 4.1. Matriz mínima obrigatória por requisito
|
|
264
|
-
|
|
265
|
-
Para cada RF, o QA deve responder explicitamente:
|
|
266
|
-
|
|
267
|
-
- O happy path passou?
|
|
268
|
-
- Quais edge cases foram exercitados?
|
|
269
|
-
- Quais fluxos negativos foram exercitados?
|
|
270
|
-
- Quais regressões históricas ou riscos correlatos foram exercitados?
|
|
271
|
-
- O requisito foi validado integralmente ou parcialmente?
|
|
272
|
-
|
|
273
|
-
Exemplos de edge cases que devem ser considerados sempre que relevantes:
|
|
274
|
-
|
|
275
|
-
- estados vazios
|
|
276
|
-
- limites de data/hora
|
|
277
|
-
- dados longos ou truncamento visual
|
|
278
|
-
- permissões diferentes
|
|
279
|
-
- mobile e desktop
|
|
280
|
-
- comportamento com histórico pré-existente
|
|
281
|
-
- comportamento com itens já vinculados a outros fluxos
|
|
282
|
-
- reentrada/ações repetidas
|
|
283
|
-
- falhas de API, loading e estados intermediários
|
|
284
|
-
|
|
285
|
-
### 5. Acessibilidade / Checks de Superfície API (Obrigatório, mode-aware)
|
|
286
|
-
|
|
287
|
-
Em **modo UI**, verificar para cada tela/componente (WCAG 2.2):
|
|
288
|
-
|
|
289
|
-
- [ ] Navegação por teclado funciona (Tab, Enter, Escape)
|
|
290
|
-
- [ ] Elementos interativos têm labels descritivos
|
|
291
|
-
- [ ] Imagens têm alt text apropriado
|
|
292
|
-
- [ ] Contraste de cores é adequado
|
|
293
|
-
- [ ] Formulários têm labels associados aos inputs
|
|
294
|
-
- [ ] Mensagens de erro são claras e acessíveis
|
|
295
|
-
- [ ] Skip links para navegação principal (se aplicável)
|
|
296
|
-
- [ ] Focus indicators visíveis
|
|
297
|
-
|
|
298
|
-
Use `browser_press_key` para testar navegação por teclado.
|
|
299
|
-
Use `browser_snapshot` para verificar labels e estrutura semântica.
|
|
300
|
-
|
|
301
|
-
**Em modo API**, o checklist WCAG acima é SUBSTITUÍDO por checks de superfície API:
|
|
302
|
-
|
|
303
|
-
- [ ] Todo endpoint retorna o `Content-Type` correto
|
|
304
|
-
- [ ] Erros seguem formato consistente (ex.: `{ "error": { "code": "...", "message": "..." } }`)
|
|
305
|
-
- [ ] `401` (auth missing/invalid) é distinto de `403` (auth presente mas não autorizado)
|
|
306
|
-
- [ ] Responses de erro NÃO vazam stack traces, IDs internos, fragmentos SQL ou pistas de ambiente
|
|
307
|
-
- [ ] Campos sensíveis (`password*`, `*_hash`, `secret*`, `token*`) NUNCA aparecem em response body
|
|
308
|
-
- [ ] Endpoints com rate limit retornam `429` com header `Retry-After` (quando aplicável)
|
|
309
|
-
|
|
310
|
-
Cada check FALHADO vira bug HIGH em `QA/bugs.md` com `evidence_type: api-log` apontando para a linha JSONL do erro.
|
|
311
|
-
|
|
312
|
-
### 6. Verificações Visuais (Somente modo UI — Obrigatório)
|
|
313
|
-
|
|
314
|
-
**Em modo API, esta etapa é PULADA.** O relatório QA omite a seção "Visual" inteira.
|
|
315
|
-
|
|
316
|
-
- Capturar screenshots das telas principais com `browser_take_screenshot` e salvar em `{{PRD_PATH}}/QA/screenshots/`
|
|
317
|
-
- Verificar layouts em diferentes estados (vazio, com dados, erro, loading)
|
|
318
|
-
- Documentar inconsistências visuais encontradas
|
|
319
|
-
|
|
320
|
-
### 6.1. Validação Mobile (Somente modo UI — Obrigatório)
|
|
321
|
-
|
|
322
|
-
<critical>TODA verificação visual DEVE incluir testes em viewport mobile (375px) ALÉM do desktop (1440px). A aprovação do QA REQUER que AMBAS as resoluções estejam funcionais e visualmente aceitáveis. Se o layout mobile estiver quebrado, inutilizável ou visualmente degradado, o QA NÃO pode ser aprovado.</critical>
|
|
323
|
-
|
|
324
|
-
- Capture screenshots em viewport 375px (mobile) para CADA tela testada
|
|
325
|
-
- Capture screenshots em viewport 1440px (desktop) para comparação
|
|
326
|
-
- Verifique: elementos não se sobrepõem, texto é legível, botões são clicáveis (min 44x44px), scroll horizontal não existe, formulários são usáveis
|
|
327
|
-
- Salve screenshots com sufixo: `[tela]-mobile.png` e `[tela]-desktop.png`
|
|
328
|
-
|
|
329
|
-
Se o mobile FALHAR na validação visual:
|
|
330
|
-
- Documente os problemas em `{{PRD_PATH}}/QA/bugs.md` com severidade **Alta** e tag `[MOBILE]`
|
|
331
|
-
- No relatório final, recomende `/dw-redesign-ui` como próximo passo para corrigir o layout mobile com abordagem mobile-first
|
|
332
|
-
- O QA NÃO pode ser aprovado com mobile quebrado
|
|
333
|
-
|
|
334
|
-
### 7. Documentação de Bugs (Se encontrar problemas)
|
|
335
|
-
|
|
336
|
-
Para cada bug encontrado, criar entrada em `{{PRD_PATH}}/QA/bugs.md`:
|
|
337
|
-
|
|
338
|
-
```markdown
|
|
339
|
-
## BUG-[NN]: [Título descritivo]
|
|
340
|
-
|
|
341
|
-
- **Severidade:** Alta/Média/Baixa
|
|
342
|
-
- **RF Afetado:** RF-XX
|
|
343
|
-
- **Componente:** [componente/página ou caminho do endpoint]
|
|
344
|
-
- **Modo:** ui | api
|
|
345
|
-
- **Passos para Reproduzir:**
|
|
346
|
-
1. [passo 1]
|
|
347
|
-
2. [passo 2]
|
|
348
|
-
- **Resultado Esperado:** [o que deveria acontecer]
|
|
349
|
-
- **Resultado Atual:** [o que acontece]
|
|
350
|
-
- **Tipo de evidência:** screenshot | api-log
|
|
351
|
-
- **Caminho da evidência:** `QA/screenshots/[arquivo].png` (modo UI) OU `QA/logs/api/RF-XX-[slug].log#L<linha>` (modo API)
|
|
352
|
-
- **Status:** Aberto
|
|
353
|
-
```
|
|
354
|
-
|
|
355
|
-
### 8. Relatório de QA (Obrigatório)
|
|
356
|
-
|
|
357
|
-
Gerar relatório em `{{PRD_PATH}}/QA/qa-report.md`:
|
|
358
|
-
|
|
359
|
-
```markdown
|
|
360
|
-
# Relatório de QA - [Nome da Funcionalidade]
|
|
361
|
-
|
|
362
|
-
## Resumo
|
|
363
|
-
- **Data:** [YYYY-MM-DD]
|
|
364
|
-
- **Status:** APROVADO / REPROVADO
|
|
365
|
-
- **Total de Requisitos:** [X]
|
|
366
|
-
- **Requisitos Atendidos:** [Y]
|
|
367
|
-
- **Bugs Encontrados:** [Z]
|
|
368
|
-
|
|
369
|
-
## Requisitos Verificados
|
|
370
|
-
| ID | Requisito | Status | Evidência |
|
|
371
|
-
|----|-----------|--------|-----------|
|
|
372
|
-
| RF-01 | [descrição] | PASSOU/FALHOU | [screenshot ref] |
|
|
373
|
-
|
|
374
|
-
## Testes E2E Executados
|
|
375
|
-
| Fluxo | Resultado | Observações |
|
|
376
|
-
|-------|-----------|-------------|
|
|
377
|
-
| [fluxo] | PASSOU/FALHOU | [obs] |
|
|
378
|
-
|
|
379
|
-
## Acessibilidade (WCAG 2.2)
|
|
380
|
-
| Critério | Status | Observações |
|
|
381
|
-
|----------|--------|-------------|
|
|
382
|
-
| Navegação por teclado | OK/NOK | [obs] |
|
|
383
|
-
|
|
384
|
-
## Bugs Encontrados
|
|
385
|
-
| ID | Descrição | Severidade |
|
|
386
|
-
|----|-----------|------------|
|
|
387
|
-
| BUG-01 | [descrição] | Alta/Média/Baixa |
|
|
388
|
-
|
|
389
|
-
## Conclusão
|
|
390
|
-
[Parecer final do QA]
|
|
391
|
-
```
|
|
392
|
-
|
|
393
|
-
### 9. Loop QA Fix-Retest (Automático, mode-aware)
|
|
394
|
-
|
|
395
|
-
<critical>O QA NÃO termina no primeiro relatório. Se bugs forem encontrados, entre em um loop automático de fix-retest até que o QA seja APROVADO ou explicitamente BLOQUEADO.</critical>
|
|
396
|
-
|
|
397
|
-
**Comportamento mode-aware:** a estrutura do loop (max 5 ciclos, commit atômico por fix, regression checks, critérios de saída) é idêntica nos dois modos. O que muda é a EVIDÊNCIA replayada:
|
|
398
|
-
|
|
399
|
-
- modo UI: re-executar o fluxo Playwright, capturar nova screenshot `BUG-NN-retest.png`.
|
|
400
|
-
- modo API: re-executar a mesma `.http`/recipe via runner da recipe, anexar nova linha em `QA/logs/api/BUG-NN-retest.log` com `verdict: "PASS"` (fecha o bug) ou `verdict: "FAIL"` (segue o ciclo).
|
|
401
|
-
|
|
402
|
-
Após gerar o relatório inicial de QA:
|
|
403
|
-
|
|
404
|
-
```dot
|
|
405
|
-
digraph qa_loop {
|
|
406
|
-
rankdir=TB;
|
|
407
|
-
"Generate QA Report" -> "Bugs found?";
|
|
408
|
-
"Bugs found?" -> "QA APPROVED\nExit" [label="no"];
|
|
409
|
-
"Bugs found?" -> "Fix bugs\n(follow dw-fix-qa rules)" [label="yes"];
|
|
410
|
-
"Fix bugs\n(follow dw-fix-qa rules)" -> "Retest ALL\nfixed bugs";
|
|
411
|
-
"Retest ALL\nfixed bugs" -> "New/reopened\nbugs?";
|
|
412
|
-
"New/reopened\nbugs?" -> "QA APPROVED\nExit" [label="no"];
|
|
413
|
-
"New/reopened\nbugs?" -> "Max cycles\nreached?" [label="yes"];
|
|
414
|
-
"Max cycles\nreached?" -> "Fix bugs\n(follow dw-fix-qa rules)" [label="no"];
|
|
415
|
-
"Max cycles\nreached?" -> "QA BLOCKED\nReport residual bugs" [label="yes (5 cycles)"];
|
|
416
|
-
}
|
|
417
|
-
```
|
|
418
|
-
|
|
419
|
-
**Regras do loop:**
|
|
420
|
-
1. Após o relatório inicial, se `QA/bugs.md` tiver bugs com `Status: Open`, entre no loop automaticamente
|
|
421
|
-
2. Para cada ciclo:
|
|
422
|
-
a. Corrija todos os bugs abertos cirurgicamente (mesmas regras do `/dw-fix-qa`: sem scope creep, impacto mínimo)
|
|
423
|
-
b. Reteste TODOS os bugs corrigidos via Playwright MCP com captura de evidências
|
|
424
|
-
c. Verifique regressões introduzidas pelas correções
|
|
425
|
-
d. Atualize `QA/bugs.md` e `QA/qa-report.md` com os resultados do ciclo
|
|
426
|
-
e. Se todos os bugs críticos/altos estiverem fechados → **QA APPROVED**, saia do loop
|
|
427
|
-
f. Se novos bugs apareceram ou correções falharam → continue para o próximo ciclo
|
|
428
|
-
3. **Máximo de 5 ciclos de fix-retest.** Após 5 ciclos, marque o QA como **BLOCKED** com bugs residuais documentados
|
|
429
|
-
4. Cada ciclo deve atualizar o relatório de QA com uma seção "Cycle N" mostrando o que foi corrigido, retestado e o resultado
|
|
430
|
-
5. Faça commit das correções após cada ciclo bem-sucedido: `fix(qa): resolve BUG-NN [description]`
|
|
431
|
-
|
|
432
|
-
**Formato do relatório por ciclo (adicionar ao qa-report.md):**
|
|
433
|
-
```markdown
|
|
434
|
-
## Fix-Retest Cycle [N] — [YYYY-MM-DD]
|
|
435
|
-
|
|
436
|
-
### Bugs Fixed
|
|
437
|
-
| Bug | Fix Description | Retest | Evidence |
|
|
438
|
-
|-----|----------------|--------|----------|
|
|
439
|
-
| BUG-01 | [what was changed] | PASS/FAIL | `QA/screenshots/BUG-01-cycle-N.png` |
|
|
440
|
-
|
|
441
|
-
### Regressions Checked
|
|
442
|
-
- [list of related flows retested]
|
|
443
|
-
|
|
444
|
-
### Cycle Result
|
|
445
|
-
- **Bugs remaining:** [count]
|
|
446
|
-
- **Status:** CONTINUE / APPROVED / BLOCKED
|
|
447
|
-
```
|
|
448
|
-
|
|
449
|
-
**Red flags — PARE o loop:**
|
|
450
|
-
- Correção requer uma nova feature (não é bug) → pare, recomende `/dw-create-prd`
|
|
451
|
-
- Correção requer refatoração significativa → pare, recomende `/dw-refactoring-analysis`
|
|
452
|
-
- Mesmo bug reaparece após 2+ tentativas de correção → marque como BLOCKED com análise de causa raiz
|
|
453
|
-
|
|
454
|
-
## Checklist de Qualidade
|
|
455
|
-
|
|
456
|
-
- [ ] PRD analisado e requisitos extraídos
|
|
457
|
-
- [ ] TechSpec analisada
|
|
458
|
-
- [ ] Tasks verificadas (todas completas)
|
|
459
|
-
- [ ] Ambiente localhost acessível
|
|
460
|
-
- [ ] **Verificação de menu: TODAS as páginas são funcionais (sem stubs/placeholders)**
|
|
461
|
-
- [ ] Testes E2E executados via Playwright MCP
|
|
462
|
-
- [ ] Happy paths testados
|
|
463
|
-
- [ ] Edge cases testados
|
|
464
|
-
- [ ] Fluxos negativos testados
|
|
465
|
-
- [ ] Regressões críticas testadas
|
|
466
|
-
- [ ] Todos os requisitos validados integralmente
|
|
467
|
-
- [ ] Acessibilidade verificada (WCAG 2.2)
|
|
468
|
-
- [ ] Screenshots de evidência capturados
|
|
469
|
-
- [ ] Bugs documentados em `QA/bugs.md` (se houver)
|
|
470
|
-
- [ ] Relatório `QA/qa-report.md` gerado
|
|
471
|
-
- [ ] Logs de console/rede salvos em `QA/logs/`
|
|
472
|
-
- [ ] Scripts de teste Playwright salvos em `QA/scripts/`
|
|
473
|
-
|
|
474
|
-
## Notas Importantes
|
|
475
|
-
|
|
476
|
-
- Sempre use `browser_snapshot` antes de interagir para entender o estado atual da página
|
|
477
|
-
- Capture screenshots de TODOS os bugs encontrados em `QA/screenshots/`
|
|
478
|
-
- Se encontrar um bug bloqueante, documente e reporte imediatamente
|
|
479
|
-
- Verifique o console do browser para erros JavaScript com `browser_console_messages` e salve em `QA/logs/console.log`
|
|
480
|
-
- Verifique chamadas de API com `browser_network_requests` e salve em `QA/logs/network.log`
|
|
481
|
-
- Salve os scripts de testes E2E executados em `QA/scripts/` para reuso e auditoria
|
|
482
|
-
- Para projetos usando shadcn/ui + Tailwind, verifique se os componentes seguem o design system
|
|
483
|
-
- Use `.dw/templates/qa-test-credentials.md` como fonte oficial de credenciais de login para QA
|
|
484
|
-
- Consulte `.dw/references/playwright-patterns.md` para padrões comuns de teste
|
|
485
|
-
- Não marque requisito como validado com base apenas em teste unitário, integração, inferência de código ou execução parcial
|
|
486
|
-
- Se a implementação requer dados históricos ou estado específico para validar um edge case, prepare esse estado e execute o caso
|
|
487
|
-
- Se não houver tempo ou ambiente suficiente para cobrir completamente um requisito, registre explicitamente como bloqueio e rejeite o QA
|
|
488
|
-
|
|
489
|
-
<critical>O QA só está APROVADO quando TODOS os requisitos do PRD forem verificados e estiverem funcionando</critical>
|
|
490
|
-
<critical>Utilize o Playwright MCP para TODAS as interações com a aplicação</critical>
|
|
491
|
-
<critical>Páginas stub/placeholder no menu são BUG ALTA — jamais aprovar QA com páginas que exibem o mesmo conteúdo genérico</critical>
|
|
492
|
-
<critical>Verifique que CADA página do módulo é ÚNICA e FUNCIONAL antes de testar RFs individuais</critical>
|
|
493
|
-
<critical>QA aprovado requer cobertura abrangente comprovada: happy path, edge cases, fluxos negativos e regressões aplicáveis</critical>
|
|
494
|
-
</system_instructions>
|