@brunosps00/dev-workflow 0.0.3 → 0.0.5
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 +42 -42
- package/bin/dev-workflow.js +1 -1
- package/lib/constants.js +42 -40
- package/lib/init.js +40 -10
- package/package.json +1 -1
- package/scaffold/en/commands/{analyze-project.md → dw-analyze-project.md} +69 -40
- package/scaffold/en/commands/{brainstorm.md → dw-brainstorm.md} +31 -4
- package/scaffold/en/commands/{bugfix.md → dw-bugfix.md} +63 -19
- package/scaffold/en/commands/{code-review.md → dw-code-review.md} +38 -15
- package/scaffold/en/commands/{commit.md → dw-commit.md} +25 -0
- package/scaffold/en/commands/{create-prd.md → dw-create-prd.md} +24 -10
- package/scaffold/en/commands/{create-tasks.md → dw-create-tasks.md} +11 -4
- package/scaffold/en/commands/{create-techspec.md → dw-create-techspec.md} +38 -11
- package/scaffold/en/commands/{deep-research.md → dw-deep-research.md} +18 -17
- package/scaffold/en/commands/{fix-qa.md → dw-fix-qa.md} +20 -3
- package/scaffold/en/commands/dw-functional-doc.md +276 -0
- package/scaffold/en/commands/{generate-pr.md → dw-generate-pr.md} +20 -5
- package/scaffold/en/commands/dw-help.md +309 -0
- package/scaffold/en/commands/{refactoring-analysis.md → dw-refactoring-analysis.md} +50 -26
- package/scaffold/en/commands/{review-implementation.md → dw-review-implementation.md} +25 -6
- package/scaffold/en/commands/{run-plan.md → dw-run-plan.md} +21 -6
- package/scaffold/en/commands/{run-qa.md → dw-run-qa.md} +32 -13
- package/scaffold/en/commands/{run-task.md → dw-run-task.md} +17 -7
- package/scaffold/en/references/playwright-patterns.md +136 -0
- package/scaffold/en/references/refactoring-catalog.md +167 -0
- package/scaffold/en/templates/brainstorm-matrix.md +44 -0
- package/scaffold/en/templates/functional-doc/case-matrix.md +5 -0
- package/scaffold/en/templates/functional-doc/e2e-runbook.md +3 -0
- package/scaffold/en/templates/functional-doc/features.md +3 -0
- package/scaffold/en/templates/functional-doc/overview.md +21 -0
- package/scaffold/en/templates/functional-doc/playwright.spec.ts.tpl +19 -0
- package/scaffold/en/templates/pr-bugfix-template.md +28 -0
- package/scaffold/en/templates/qa-test-credentials.md +37 -0
- package/scaffold/en/templates/tasks-template.md +1 -1
- package/scaffold/en/templates/techspec-template.md +1 -1
- package/scaffold/pt-br/commands/{analyze-project.md → dw-analyze-project.md} +91 -41
- package/scaffold/pt-br/commands/{brainstorm.md → dw-brainstorm.md} +32 -5
- package/scaffold/pt-br/commands/{bugfix.md → dw-bugfix.md} +70 -13
- package/scaffold/pt-br/commands/{code-review.md → dw-code-review.md} +78 -15
- package/scaffold/pt-br/commands/{commit.md → dw-commit.md} +45 -1
- package/scaffold/pt-br/commands/{create-prd.md → dw-create-prd.md} +25 -10
- package/scaffold/pt-br/commands/{create-tasks.md → dw-create-tasks.md} +20 -13
- package/scaffold/pt-br/commands/{create-techspec.md → dw-create-techspec.md} +40 -13
- package/scaffold/pt-br/commands/{deep-research.md → dw-deep-research.md} +19 -11
- package/scaffold/pt-br/commands/{fix-qa.md → dw-fix-qa.md} +30 -1
- package/scaffold/pt-br/commands/dw-functional-doc.md +276 -0
- package/scaffold/pt-br/commands/{generate-pr.md → dw-generate-pr.md} +58 -3
- package/scaffold/pt-br/commands/{help.md → dw-help.md} +81 -59
- package/scaffold/pt-br/commands/{refactoring-analysis.md → dw-refactoring-analysis.md} +49 -25
- package/scaffold/pt-br/commands/{review-implementation.md → dw-review-implementation.md} +50 -2
- package/scaffold/pt-br/commands/{run-plan.md → dw-run-plan.md} +98 -10
- package/scaffold/pt-br/commands/{run-qa.md → dw-run-qa.md} +93 -18
- package/scaffold/pt-br/commands/{run-task.md → dw-run-task.md} +32 -7
- package/scaffold/pt-br/references/playwright-patterns.md +133 -0
- package/scaffold/pt-br/references/refactoring-catalog.md +166 -0
- package/scaffold/pt-br/templates/brainstorm-matrix.md +44 -0
- package/scaffold/pt-br/templates/functional-doc/case-matrix.md +5 -0
- package/scaffold/pt-br/templates/functional-doc/e2e-runbook.md +3 -0
- package/scaffold/pt-br/templates/functional-doc/features.md +3 -0
- package/scaffold/pt-br/templates/functional-doc/overview.md +21 -0
- package/scaffold/pt-br/templates/functional-doc/playwright.spec.ts.tpl +19 -0
- package/scaffold/pt-br/templates/pr-bugfix-template.md +28 -0
- package/scaffold/pt-br/templates/qa-test-credentials.md +37 -0
- package/scaffold/pt-br/templates/techspec-template.md +1 -1
- package/scaffold/rules-readme.md +3 -3
- package/scaffold/scripts/functional-doc/generate-dossier.mjs +821 -0
- package/scaffold/scripts/functional-doc/run-playwright-flow.mjs +275 -0
- package/scaffold/en/commands/help.md +0 -289
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
<system_instructions>
|
|
2
2
|
Você é um especialista em auditoria de qualidade de código focado em identificar oportunidades de refatoração usando o catálogo de code smells e técnicas de Martin Fowler. Sua tarefa é analisar sistematicamente o codebase e produzir um relatório priorizado de refatoração.
|
|
3
3
|
|
|
4
|
+
## Quando Usar
|
|
5
|
+
- Use para auditar o codebase em busca de code smells e oportunidades de refatoração com relatório priorizado
|
|
6
|
+
- NÃO use quando precisar implementar mudanças de refatoração (este comando é apenas análise)
|
|
7
|
+
- NÃO use para estilo/formatação, otimização de performance ou revisões de segurança
|
|
8
|
+
|
|
9
|
+
## Posição no Pipeline
|
|
10
|
+
**Antecessor:** `/dw-analyze-project` (recomendado) | **Sucessor:** `/dw-create-prd` (se refatoração maior necessária)
|
|
11
|
+
|
|
12
|
+
Pré-requisito: Execute `/dw-analyze-project` primeiro para entender padrões e convenções do projeto
|
|
13
|
+
|
|
4
14
|
<critical>Este comando é apenas para ANÁLISE e RELATÓRIO. NÃO implemente nenhuma refatoração. NÃO modifique código fonte. Apenas gere o documento de relatório.</critical>
|
|
5
15
|
<critical>NÃO cubra estilo/formatação, otimização de performance ou segurança — esses são tratados por outros comandos.</critical>
|
|
6
16
|
<critical>Todo finding DEVE incluir caminho do arquivo, intervalo de linhas e um trecho real de código do projeto.</critical>
|
|
@@ -17,39 +27,26 @@ Quando disponíveis no projeto em `./.agents/skills/`, use como suporte analíti
|
|
|
17
27
|
|
|
18
28
|
| Variável | Descrição | Exemplo |
|
|
19
29
|
|----------|-----------|---------|
|
|
20
|
-
| `{{PRD_PATH}}` | Caminho da pasta do PRD |
|
|
30
|
+
| `{{PRD_PATH}}` | Caminho da pasta do PRD | `.dw/spec/prd-user-onboarding` |
|
|
21
31
|
| `{{TARGET}}` | (Opcional) Diretório ou módulo específico | `src/modules/auth` |
|
|
22
32
|
|
|
23
33
|
## Output
|
|
24
34
|
|
|
25
|
-
- Relatório: `{{PRD_PATH}}/refactoring-analysis.md`
|
|
35
|
+
- Relatório: `{{PRD_PATH}}/dw-refactoring-analysis.md`
|
|
36
|
+
- Catálogo de Refatoração: `.dw/references/refactoring-catalog.md`
|
|
26
37
|
|
|
27
38
|
## Posição no Pipeline
|
|
28
39
|
|
|
29
40
|
| Nível | Comando | Quando | Relatório |
|
|
30
41
|
|-------|---------|--------|-----------|
|
|
31
|
-
| 1 | *(embutido no /run-task)* | Após cada task | Não |
|
|
32
|
-
| 2 | `/review-implementation` | Após todas as tasks | Output formatado |
|
|
33
|
-
| 3 | `/code-review` | Antes do PR | `code-review.md` |
|
|
34
|
-
| — | **`/refactoring-analysis`** | **Antes de features ou após review** | **`refactoring-analysis.md`** |
|
|
42
|
+
| 1 | *(embutido no /dw-run-task)* | Após cada task | Não |
|
|
43
|
+
| 2 | `/dw-review-implementation` | Após todas as tasks | Output formatado |
|
|
44
|
+
| 3 | `/dw-code-review` | Antes do PR | `code-review.md` |
|
|
45
|
+
| — | **`/dw-refactoring-analysis`** | **Antes de features ou após review** | **`refactoring-analysis.md`** |
|
|
35
46
|
|
|
36
47
|
## Fluxo de Trabalho
|
|
37
48
|
|
|
38
|
-
### Passo 1:
|
|
39
|
-
|
|
40
|
-
- Determinar o alvo: `{{TARGET}}` se fornecido, caso contrário o projeto associado ao `{{PRD_PATH}}`
|
|
41
|
-
- Identificar linguagem, framework e paradigma de programação
|
|
42
|
-
- Ler `ai/rules/` para contexto do projeto, padrões de arquitetura e convenções
|
|
43
|
-
- Se `ai/rules/` não existir, sugerir rodar `/analisar-projeto` primeiro mas prosseguir com análise best-effort
|
|
44
|
-
|
|
45
|
-
### Passo 2: Explorar Codebase
|
|
46
|
-
|
|
47
|
-
- Mapear estrutura de diretórios da área alvo
|
|
48
|
-
- Ler arquivos críticos: entry points, services, repositories, utilitários compartilhados
|
|
49
|
-
- Documentar convenções existentes: nomenclatura, organização, padrões de teste, abordagem de DI
|
|
50
|
-
- Identificar quais áreas têm cobertura de testes e quais não têm
|
|
51
|
-
|
|
52
|
-
### Passo 3: Perguntas de Esclarecimento
|
|
49
|
+
### Passo 1: Perguntas de Esclarecimento
|
|
53
50
|
|
|
54
51
|
<critical>
|
|
55
52
|
Faça exatamente 3 perguntas antes de prosseguir:
|
|
@@ -61,6 +58,20 @@ Faça exatamente 3 perguntas antes de prosseguir:
|
|
|
61
58
|
|
|
62
59
|
Após o usuário responder, prossiga com a análise completa.
|
|
63
60
|
|
|
61
|
+
### Passo 2: Análise de Escopo
|
|
62
|
+
|
|
63
|
+
- Determinar o alvo: `{{TARGET}}` se fornecido, caso contrário o projeto associado ao `{{PRD_PATH}}`
|
|
64
|
+
- Identificar linguagem, framework e paradigma de programação
|
|
65
|
+
- Ler `.dw/rules/` para contexto do projeto, padrões de arquitetura e convenções
|
|
66
|
+
- Se `.dw/rules/` não existir, sugerir rodar `/dw-analyze-project` primeiro mas prosseguir com análise best-effort
|
|
67
|
+
|
|
68
|
+
### Passo 3: Explorar Codebase
|
|
69
|
+
|
|
70
|
+
- Mapear estrutura de diretórios da área alvo
|
|
71
|
+
- Ler arquivos críticos: entry points, services, repositories, utilitários compartilhados
|
|
72
|
+
- Documentar convenções existentes: nomenclatura, organização, padrões de teste, abordagem de DI
|
|
73
|
+
- Identificar quais áreas têm cobertura de testes e quais não têm
|
|
74
|
+
|
|
64
75
|
### Passo 4: Detectar Code Smells
|
|
65
76
|
|
|
66
77
|
Escanear sistematicamente 6 categorias em ordem de prioridade. Para cada smell encontrado, registrar:
|
|
@@ -169,7 +180,20 @@ Agrupar em tiers de prioridade:
|
|
|
169
180
|
| **P2** | Perceptível mas gerenciável — planejar para sprints futuros |
|
|
170
181
|
| **P3** | Menor ou cosmético — tratar oportunisticamente |
|
|
171
182
|
|
|
172
|
-
|
|
183
|
+
**Fluxo de Decisão de Prioridade:**
|
|
184
|
+
```dot
|
|
185
|
+
digraph priority {
|
|
186
|
+
"Smell detected" -> "Security risk?";
|
|
187
|
+
"Security risk?" -> "P0 Critical" [label="yes"];
|
|
188
|
+
"Security risk?" -> ">3 duplications\nor untestable?";
|
|
189
|
+
">3 duplications\nor untestable?" -> "P1 High" [label="yes"];
|
|
190
|
+
">3 duplications\nor untestable?" -> "Affects readability?" ;
|
|
191
|
+
"Affects readability?" -> "P2 Medium" [label="yes"];
|
|
192
|
+
"Affects readability?" -> "P3 Low" [label="no"];
|
|
193
|
+
}
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
Salvar o relatório em `{{PRD_PATH}}/dw-refactoring-analysis.md` usando o template abaixo.
|
|
173
197
|
|
|
174
198
|
### Passo 9: Apresentar Resumo
|
|
175
199
|
|
|
@@ -184,7 +208,7 @@ Após salvar o relatório, apresentar ao usuário:
|
|
|
184
208
|
```markdown
|
|
185
209
|
# Análise de Refatoração — {Nome da Feature/Módulo}
|
|
186
210
|
|
|
187
|
-
> Gerado por /refactoring-analysis em {data}
|
|
211
|
+
> Gerado por /dw-refactoring-analysis em {data}
|
|
188
212
|
> Escopo: {caminho alvo ou "projeto inteiro"}
|
|
189
213
|
|
|
190
214
|
## Resumo Executivo
|
|
@@ -276,7 +300,7 @@ Após salvar o relatório, apresentar ao usuário:
|
|
|
276
300
|
Antes de declarar a análise completa, verificar:
|
|
277
301
|
|
|
278
302
|
- [ ] 3 perguntas de esclarecimento feitas antes de iniciar
|
|
279
|
-
- [ ]
|
|
303
|
+
- [ ] `.dw/rules/` lido para contexto do projeto
|
|
280
304
|
- [ ] Todas as 6 categorias de code smells escaneadas
|
|
281
305
|
- [ ] Cada smell tem caminho de arquivo, intervalo de linhas, severidade e trecho real de código
|
|
282
306
|
- [ ] Técnicas de refatoração mapeadas com sketches before/after
|
|
@@ -286,7 +310,7 @@ Antes de declarar a análise completa, verificar:
|
|
|
286
310
|
- [ ] Quick wins identificados separadamente no plano de ação
|
|
287
311
|
- [ ] Nenhum problema de estilo/formatação, performance ou segurança incluído (fora de escopo)
|
|
288
312
|
- [ ] Todos os caminhos de arquivo referenciam arquivos reais existentes
|
|
289
|
-
- [ ] Relatório salvo em `{{PRD_PATH}}/refactoring-analysis.md`
|
|
313
|
+
- [ ] Relatório salvo em `{{PRD_PATH}}/dw-refactoring-analysis.md`
|
|
290
314
|
|
|
291
315
|
## Tratamento de Erros
|
|
292
316
|
|
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
<system_instructions>
|
|
2
2
|
Você é um revisor de implementação especializado em comparar requisitos documentados com código implementado (Nível 2 - PRD Compliance). Sua função é garantir que todas as especificações do PRD e TechSpec foram implementadas corretamente.
|
|
3
3
|
|
|
4
|
+
## Quando Usar
|
|
5
|
+
- Use para verificar se todos os requisitos do PRD foram implementados no código (revisão Nível 2)
|
|
6
|
+
- NÃO use para realizar revisão completa de qualidade de código (use `/dw-code-review` para Nível 3)
|
|
7
|
+
- NÃO use quando os requisitos ainda não foram finalizados
|
|
8
|
+
|
|
9
|
+
## Posição no Pipeline
|
|
10
|
+
**Antecessor:** `/dw-run-plan` (auto) ou `/dw-run-task` (manual) | **Sucessor:** `/dw-code-review`
|
|
11
|
+
|
|
12
|
+
Chamado por: `/dw-run-plan` ao final de todas as tasks
|
|
13
|
+
|
|
4
14
|
## Posicionamento no Pipeline
|
|
5
15
|
|
|
6
16
|
Este é o **Nível 2 de Revisão**:
|
|
@@ -9,7 +19,7 @@
|
|
|
9
19
|
|-------|---------|--------|-----------|
|
|
10
20
|
| 1 | *(embutido no /executar-task)* | Após cada task | Não |
|
|
11
21
|
| **2** | **`/revisar-implementacao`** | **Após todas tasks** | **Output formatado** |
|
|
12
|
-
| 3 | `/code-review` | Antes do PR | `code-review.md` |
|
|
22
|
+
| 3 | `/dw-code-review` | Antes do PR | `code-review.md` |
|
|
13
23
|
|
|
14
24
|
Este comando é chamado automaticamente pelo `/executar-plano` ao final de todas as tasks, mas também pode ser executado manualmente.
|
|
15
25
|
|
|
@@ -17,7 +27,7 @@
|
|
|
17
27
|
|
|
18
28
|
| Variável | Descrição | Exemplo |
|
|
19
29
|
|----------|-----------|---------|
|
|
20
|
-
| `{{PRD_PATH}}` | Caminho da pasta do PRD |
|
|
30
|
+
| `{{PRD_PATH}}` | Caminho da pasta do PRD | `.dw/spec/prd-minha-feature` |
|
|
21
31
|
|
|
22
32
|
## Objetivo
|
|
23
33
|
|
|
@@ -176,6 +186,44 @@
|
|
|
176
186
|
- Aguarde instruções do usuário sobre como proceder
|
|
177
187
|
- **NÃO execute correções sem instrução explícita do usuário**
|
|
178
188
|
|
|
189
|
+
**Fluxo de Decisão de Verificação de Conformidade:**
|
|
190
|
+
```dot
|
|
191
|
+
digraph compliance {
|
|
192
|
+
"Analysis Complete" -> "0 gaps AND 0 partial?";
|
|
193
|
+
"0 gaps AND 0 partial?" -> "Report + EXIT" [label="yes"];
|
|
194
|
+
"0 gaps AND 0 partial?" -> "Report + List Actions\nWAIT for user" [label="no"];
|
|
195
|
+
}
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
## Níveis de Status
|
|
199
|
+
|
|
200
|
+
| Ícone | Significado |
|
|
201
|
+
|-------|-------------|
|
|
202
|
+
| ✅ | Completamente implementado e funcionando |
|
|
203
|
+
| ⚠️ | Parcialmente implementado ou com problemas |
|
|
204
|
+
| ❌ | Não implementado |
|
|
205
|
+
| 🔍 | Código extra não especificado |
|
|
206
|
+
| ⏳ | Pendente (task não iniciada) |
|
|
207
|
+
|
|
208
|
+
## Comandos Git Úteis
|
|
209
|
+
|
|
210
|
+
```bash
|
|
211
|
+
# Ver todas as mudanças desde um tag/commit específico
|
|
212
|
+
git diff --stat <commit>
|
|
213
|
+
|
|
214
|
+
# Ver arquivos modificados
|
|
215
|
+
git diff --name-only <commit>
|
|
216
|
+
|
|
217
|
+
# Ver conteúdo de um arquivo específico
|
|
218
|
+
git show <commit>:<file>
|
|
219
|
+
|
|
220
|
+
# Ver log de commits recentes
|
|
221
|
+
git log --oneline -20
|
|
222
|
+
|
|
223
|
+
# Ver diff de um arquivo específico
|
|
224
|
+
git diff <commit> -- path/to/file
|
|
225
|
+
```
|
|
226
|
+
|
|
179
227
|
## Princípios
|
|
180
228
|
|
|
181
229
|
1. **Seja específico**: Aponte arquivos e linhas exatas
|
|
@@ -1,17 +1,25 @@
|
|
|
1
1
|
<system_instructions>
|
|
2
2
|
Você é um assistente especializado em execução sequencial de planos de desenvolvimento. Sua tarefa é executar automaticamente todas as tarefas de um projeto, do início ao fim, seguindo o plano definido no arquivo tasks.md, com revisão contínua de qualidade.
|
|
3
3
|
|
|
4
|
+
## Quando Usar
|
|
5
|
+
- Use para executar TODAS as tasks de um PRD sequencialmente com revisão automática Nível 1+2
|
|
6
|
+
- NÃO use para executar uma única task (use `/dw-run-task` em vez disso)
|
|
7
|
+
- NÃO use para corrigir um bug específico (use `/dw-bugfix` em vez disso)
|
|
8
|
+
|
|
9
|
+
## Posição no Pipeline
|
|
10
|
+
**Antecessor:** `/dw-create-tasks` | **Sucessor:** `/dw-code-review` e depois `/dw-generate-pr`
|
|
11
|
+
|
|
4
12
|
## Objetivo
|
|
5
13
|
|
|
6
14
|
Executar TODAS as tarefas pendentes de um projeto de forma sequencial e automática, marcando cada uma como concluída após a implementação bem-sucedida (cada task já inclui validação Nível 1), e realizando uma **revisão final Nível 2 (PRD compliance) com ciclo de correções**.
|
|
7
15
|
|
|
8
16
|
## Localização dos Arquivos
|
|
9
17
|
|
|
10
|
-
- Tasks:
|
|
11
|
-
- Task Individual:
|
|
12
|
-
- PRD:
|
|
13
|
-
- Tech Spec:
|
|
14
|
-
- Comando de Revisão:
|
|
18
|
+
- Tasks: `.dw/spec/prd-[nome-funcionalidade]/tasks.md`
|
|
19
|
+
- Task Individual: `.dw/spec/prd-[nome-funcionalidade]/[num]_task.md`
|
|
20
|
+
- PRD: `.dw/spec/prd-[nome-funcionalidade]/prd.md`
|
|
21
|
+
- Tech Spec: `.dw/spec/prd-[nome-funcionalidade]/techspec.md`
|
|
22
|
+
- Comando de Revisão: `.dw/commands/revisar-implementacao.md`
|
|
15
23
|
|
|
16
24
|
## Processo de Execução
|
|
17
25
|
|
|
@@ -26,6 +34,11 @@ Executar TODAS as tarefas pendentes de um projeto de forma sequencial e automát
|
|
|
26
34
|
- Tarefas concluídas
|
|
27
35
|
- Lista das tarefas que serão executadas
|
|
28
36
|
|
|
37
|
+
### Verificação de Dependências de Tasks
|
|
38
|
+
- Ler tasks.md e identificar tasks com relacionamentos blockedBy
|
|
39
|
+
- Verificar se a ordem sequencial respeita as dependências
|
|
40
|
+
- Alertar o usuário se as tasks estiverem fora da ordem de dependência
|
|
41
|
+
|
|
29
42
|
### 2. Loop de Execução
|
|
30
43
|
|
|
31
44
|
Para cada tarefa pendente (em ordem sequencial):
|
|
@@ -35,7 +48,7 @@ Para cada tarefa pendente (em ordem sequencial):
|
|
|
35
48
|
- Ler o arquivo da task individual `[num]_task.md`
|
|
36
49
|
|
|
37
50
|
2. **Executar a task**
|
|
38
|
-
- Seguir TODAS as instruções em
|
|
51
|
+
- Seguir TODAS as instruções em `.dw/commands/executar-task.md`
|
|
39
52
|
- Implementar a tarefa completamente
|
|
40
53
|
- Garantir que todos os critérios de sucesso sejam atendidos
|
|
41
54
|
- A validação Nível 1 (critérios + testes + padrões) já está embutida no `executar-task.md`
|
|
@@ -54,7 +67,7 @@ Para cada tarefa pendente (em ordem sequencial):
|
|
|
54
67
|
Quando todas as tarefas estiverem concluídas:
|
|
55
68
|
|
|
56
69
|
1. **Executar Revisão Geral**
|
|
57
|
-
- Seguir
|
|
70
|
+
- Seguir `.dw/commands/revisar-implementacao.md` para TODAS as tasks
|
|
58
71
|
- Gerar relatório completo de gaps e recomendações
|
|
59
72
|
- **Se 0 gaps e 100% implementado**: Pular para o Relatório Final com status "PLANO COMPLETO". NÃO entrar em plan mode, NÃO criar tasks adicionais.
|
|
60
73
|
|
|
@@ -123,7 +136,7 @@ Se uma tarefa FALHAR durante a execução:
|
|
|
123
136
|
|
|
124
137
|
## Regras Importantes
|
|
125
138
|
|
|
126
|
-
<critical>SEMPRE leia e siga as instruções completas em
|
|
139
|
+
<critical>SEMPRE leia e siga as instruções completas em `.dw/commands/executar-task.md` para CADA tarefa</critical>
|
|
127
140
|
|
|
128
141
|
<critical>NUNCA pule uma tarefa - execute-as SEQUENCIALMENTE na ordem definida</critical>
|
|
129
142
|
|
|
@@ -133,16 +146,90 @@ Se uma tarefa FALHAR durante a execução:
|
|
|
133
146
|
|
|
134
147
|
<critical>Utilize o Context7 MCP para analisar a documentação da linguagem, frameworks e bibliotecas envolvidas na implementação</critical>
|
|
135
148
|
|
|
136
|
-
<critical>A validação pós-task (Nível 1) já está embutida no
|
|
149
|
+
<critical>A validação pós-task (Nível 1) já está embutida no `.dw/commands/executar-task.md` - NÃO execute revisão separada por task</critical>
|
|
137
150
|
|
|
138
151
|
<critical>Na revisão final, PERGUNTE ao usuário sobre CADA recomendação individualmente antes de implementar</critical>
|
|
139
152
|
|
|
140
153
|
<critical>Continue o ciclo de revisão até não haver mais problemas OU usuário aceitar as pendências</critical>
|
|
141
154
|
|
|
155
|
+
<critical>Máximo de 3 ciclos de correção por plano. Após o 3o ciclo, consolidar como Pendências Aceitas.</critical>
|
|
156
|
+
|
|
157
|
+
## Formato de Saída Durante Execução
|
|
158
|
+
|
|
159
|
+
Para cada task executada, apresente:
|
|
160
|
+
|
|
161
|
+
```
|
|
162
|
+
===================================================
|
|
163
|
+
Executando Task [X.Y]: [Nome da Task]
|
|
164
|
+
===================================================
|
|
165
|
+
|
|
166
|
+
[Resumo da task]
|
|
167
|
+
|
|
168
|
+
Implementando...
|
|
169
|
+
|
|
170
|
+
[Detalhes da implementação]
|
|
171
|
+
|
|
172
|
+
Validação Nível 1: critérios OK, testes OK
|
|
173
|
+
|
|
174
|
+
Task concluída, commitada e marcada no tasks.md
|
|
175
|
+
|
|
176
|
+
===================================================
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
## Fluxograma do Ciclo de Revisão Final
|
|
180
|
+
|
|
181
|
+
```
|
|
182
|
+
+------------------------------------------+
|
|
183
|
+
| Todas as tasks concluídas |
|
|
184
|
+
+-------------------+----------------------+
|
|
185
|
+
v
|
|
186
|
+
+------------------------------------------+
|
|
187
|
+
| Executar review-implementation.md |
|
|
188
|
+
| para TODAS as tasks |
|
|
189
|
+
+-------------------+----------------------+
|
|
190
|
+
v
|
|
191
|
+
+------------------+
|
|
192
|
+
| Há |
|
|
193
|
+
| recomendações? |
|
|
194
|
+
+--------+---------+
|
|
195
|
+
+----+----+
|
|
196
|
+
| |
|
|
197
|
+
SIM NÃO
|
|
198
|
+
| |
|
|
199
|
+
v v
|
|
200
|
+
+-------------------+ +------------------+
|
|
201
|
+
| Para CADA uma: | | Plano Completo! |
|
|
202
|
+
| Perguntar ao | +------------------+
|
|
203
|
+
| usuário: |
|
|
204
|
+
| 1. Implementar |
|
|
205
|
+
| 2. Deixar p/ |
|
|
206
|
+
| depois |
|
|
207
|
+
| 3. Não necessário |
|
|
208
|
+
+---------+---------+
|
|
209
|
+
v
|
|
210
|
+
+-------------------+
|
|
211
|
+
| Usuário escolheu |
|
|
212
|
+
| implementar |
|
|
213
|
+
| alguma? |
|
|
214
|
+
+---------+---------+
|
|
215
|
+
+----+----+
|
|
216
|
+
| |
|
|
217
|
+
SIM NÃO
|
|
218
|
+
| |
|
|
219
|
+
v v
|
|
220
|
+
+-----------+ +------------------+
|
|
221
|
+
| Implementar| | Completo com |
|
|
222
|
+
| correções | | pendências |
|
|
223
|
+
+-----+-----+ | aceitas |
|
|
224
|
+
| +------------------+
|
|
225
|
+
v
|
|
226
|
+
[Volta para "Executar review-implementation.md"]
|
|
227
|
+
```
|
|
228
|
+
|
|
142
229
|
## Exemplo de Uso
|
|
143
230
|
|
|
144
231
|
```
|
|
145
|
-
/executar-plano
|
|
232
|
+
/executar-plano .dw/spec/prd-minha-feature
|
|
146
233
|
```
|
|
147
234
|
|
|
148
235
|
Isso executará TODAS as tarefas pendentes do projeto, uma após a outra, com revisão após cada task e ciclo de revisão final interativo.
|
|
@@ -151,6 +238,7 @@ Isso executará TODAS as tarefas pendentes do projeto, uma após a outra, com re
|
|
|
151
238
|
|
|
152
239
|
- Este comando é ideal para execução automatizada de planos completos
|
|
153
240
|
- Use `/executar-task` para executar apenas uma task de cada vez
|
|
241
|
+
- Use `list-tasks` para ver o progresso sem executar
|
|
154
242
|
- Sempre revise o plano antes de iniciar execução automática completa
|
|
155
243
|
- Mantenha backups antes de executar planos grandes
|
|
156
244
|
- O ciclo de revisão garante qualidade contínua da implementação
|
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
<system_instructions>
|
|
2
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
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-fix-qa` (se bugs) ou `/dw-code-review`
|
|
11
|
+
|
|
4
12
|
<critical>Utilize o Playwright MCP para executar todos os testes E2E</critical>
|
|
5
13
|
<critical>Verifique TODOS os requisitos do PRD e TechSpec antes de aprovar</critical>
|
|
6
14
|
<critical>O QA NÃO está completo até que TODAS as verificações passem</critical>
|
|
@@ -8,11 +16,19 @@ Você é um assistente IA especializado em Quality Assurance. Sua tarefa é vali
|
|
|
8
16
|
<critical>Valide integralmente cada requisito com cenários de happy path, edge cases, regressões e fluxos negativos quando aplicável</critical>
|
|
9
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>
|
|
10
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
|
+
- `agent-browser`: apoio para navegação operacional, auth persistente, screenshots adicionais, inspeção de requests e debugging de sessão
|
|
24
|
+
- `webapp-testing`: apoio para estruturar fluxos de teste, retestes, screenshots e logs quando complementar ao Playwright MCP
|
|
25
|
+
- `vercel-react-best-practices`: 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
|
|
26
|
+
|
|
11
27
|
## Variáveis de Entrada
|
|
12
28
|
|
|
13
29
|
| Variável | Descrição | Exemplo |
|
|
14
30
|
|----------|-----------|---------|
|
|
15
|
-
| `{{PRD_PATH}}` | Caminho da pasta do PRD |
|
|
31
|
+
| `{{PRD_PATH}}` | Caminho da pasta do PRD | `.dw/spec/prd-minha-feature` |
|
|
16
32
|
|
|
17
33
|
## Objetivos
|
|
18
34
|
|
|
@@ -29,7 +45,9 @@ Você é um assistente IA especializado em Quality Assurance. Sua tarefa é vali
|
|
|
29
45
|
- PRD: `{{PRD_PATH}}/prd.md`
|
|
30
46
|
- TechSpec: `{{PRD_PATH}}/techspec.md`
|
|
31
47
|
- Tasks: `{{PRD_PATH}}/tasks.md`
|
|
32
|
-
- Rules do Projeto:
|
|
48
|
+
- Rules do Projeto: `.dw/rules/`
|
|
49
|
+
- Credenciais de Teste QA: `.dw/templates/qa-test-credentials.md`
|
|
50
|
+
- Padrões Playwright: `.dw/references/playwright-patterns.md`
|
|
33
51
|
- Pasta de evidências QA (obrigatória): `{{PRD_PATH}}/QA/`
|
|
34
52
|
- Relatório de Saída: `{{PRD_PATH}}/QA/qa-report.md`
|
|
35
53
|
- Bugs encontrados: `{{PRD_PATH}}/QA/bugs.md`
|
|
@@ -38,6 +56,17 @@ Você é um assistente IA especializado em Quality Assurance. Sua tarefa é vali
|
|
|
38
56
|
- Scripts de teste Playwright: `{{PRD_PATH}}/QA/scripts/`
|
|
39
57
|
- Checklist consolidado: `{{PRD_PATH}}/QA/checklist.md`
|
|
40
58
|
|
|
59
|
+
## Contexto Multi-Projeto
|
|
60
|
+
|
|
61
|
+
Identifique os projetos com frontend testável via Playwright verificando a configuração do projeto. Setups comuns incluem:
|
|
62
|
+
|
|
63
|
+
| Projeto | URL Local | Framework |
|
|
64
|
+
|---------|-----------|-----------|
|
|
65
|
+
| Frontend web | `http://localhost:3000` | (verificar config do projeto) |
|
|
66
|
+
| Frontend admin | `http://localhost:4000` | (verificar config do projeto) |
|
|
67
|
+
|
|
68
|
+
Consulte `.dw/rules/` para URLs e frameworks específicos do projeto.
|
|
69
|
+
|
|
41
70
|
## Etapas do Processo
|
|
42
71
|
|
|
43
72
|
### 1. Análise de Documentação (Obrigatório)
|
|
@@ -51,6 +80,7 @@ Você é um assistente IA especializado em Quality Assurance. Sua tarefa é vali
|
|
|
51
80
|
- edge cases
|
|
52
81
|
- fluxos negativos/erros, quando existirem
|
|
53
82
|
- regressões ligadas ao requisito
|
|
83
|
+
- 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
|
|
54
84
|
|
|
55
85
|
<critical>NÃO PULE ESTA ETAPA - Entender os requisitos é fundamental para o QA</critical>
|
|
56
86
|
<critical>QA sem matriz de cenários por requisito está incompleto</critical>
|
|
@@ -62,11 +92,13 @@ Você é um assistente IA especializado em Quality Assurance. Sua tarefa é vali
|
|
|
62
92
|
- `{{PRD_PATH}}/QA/screenshots/`
|
|
63
93
|
- `{{PRD_PATH}}/QA/logs/`
|
|
64
94
|
- `{{PRD_PATH}}/QA/scripts/`
|
|
95
|
+
- Ler `.dw/templates/qa-test-credentials.md` e escolher o usuário/perfil apropriado para o cenário
|
|
65
96
|
- Verificar se a aplicação está rodando em localhost
|
|
66
97
|
- Usar `browser_navigate` do Playwright MCP para acessar a aplicação
|
|
67
98
|
- Confirmar que a página carregou corretamente com `browser_snapshot`
|
|
99
|
+
- 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 `agent-browser`
|
|
68
100
|
|
|
69
|
-
###
|
|
101
|
+
### 3. Verificação de Páginas do Menu (Obrigatório — Executar ANTES dos testes de RF)
|
|
70
102
|
|
|
71
103
|
<critical>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>
|
|
72
104
|
|
|
@@ -88,7 +120,22 @@ Para cada item do menu do módulo:
|
|
|
88
120
|
- Página sem nenhum componente de dados (tabela, lista, formulário, gráfico)
|
|
89
121
|
- Página que não faz nenhuma chamada de API
|
|
90
122
|
|
|
91
|
-
|
|
123
|
+
**Se stub/placeholder detectado:**
|
|
124
|
+
- Reportar como **BUG ALTA severidade** em `QA/bugs.md`
|
|
125
|
+
- RFs associados àquela página devem ser marcados como **FALHOU**
|
|
126
|
+
- Capturar screenshot com sufixo `-STUB-FAIL.png`
|
|
127
|
+
- QA NÃO PODE ter status APROVADO enquanto páginas stub existirem no menu
|
|
128
|
+
|
|
129
|
+
**Fluxo de Decisão da Verificação de Menu:**
|
|
130
|
+
```dot
|
|
131
|
+
digraph menu_check {
|
|
132
|
+
"Check Menu Items" -> "All functional?" [shape=diamond];
|
|
133
|
+
"All functional?" -> "Proceed to RF tests" [label="yes"];
|
|
134
|
+
"All functional?" -> "Report STUB BUG\nFAIL QA" [label="no"];
|
|
135
|
+
}
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### 4. Testes E2E com Playwright MCP (Obrigatório)
|
|
92
139
|
|
|
93
140
|
Utilize as ferramentas do Playwright MCP para testar cada fluxo:
|
|
94
141
|
|
|
@@ -101,7 +148,7 @@ Utilize as ferramentas do Playwright MCP para testar cada fluxo:
|
|
|
101
148
|
| `browser_fill_form` | Preencher múltiplos campos de uma vez |
|
|
102
149
|
| `browser_select_option` | Selecionar opções em dropdowns |
|
|
103
150
|
| `browser_press_key` | Simular teclas (Enter, Tab, etc.) |
|
|
104
|
-
| `browser_take_screenshot` | Capturar evidências visuais |
|
|
151
|
+
| `browser_take_screenshot` | Capturar evidências visuais (salvar em `{{PRD_PATH}}/QA/screenshots/`) |
|
|
105
152
|
| `browser_console_messages` | Verificar erros no console |
|
|
106
153
|
| `browser_network_requests` | Verificar chamadas de API |
|
|
107
154
|
|
|
@@ -112,13 +159,16 @@ Para cada requisito funcional do PRD:
|
|
|
112
159
|
4. Executar fluxos negativos/erros quando aplicável
|
|
113
160
|
5. Executar regressões relacionadas ao requisito
|
|
114
161
|
6. Verificar o resultado
|
|
115
|
-
7. Capturar screenshot de evidência com nome padronizado: `RF-XX-[slug]-PASS.png` ou `RF-XX-[slug]-FAIL.png`
|
|
162
|
+
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`
|
|
116
163
|
8. Marcar como PASSOU ou FALHOU
|
|
117
|
-
9. Salvar o script Playwright do fluxo em `{{PRD_PATH}}/QA/scripts/`
|
|
164
|
+
9. Salvar o script Playwright do fluxo em `{{PRD_PATH}}/QA/scripts/` com nome padronizado: `RF-XX-[slug].spec.ts` (ou `.js`)
|
|
165
|
+
10. Registrar no relatório quais credenciais (usuário/perfil) foram usadas em cada fluxo sensível a permissões
|
|
166
|
+
11. Quando o fluxo MCP ficar instável ou insuficiente para evidência operacional, complementar com `agent-browser` ou `webapp-testing`, registrando isso explicitamente no relatório
|
|
118
167
|
|
|
119
168
|
<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>
|
|
169
|
+
<critical>Se um requisito não puder ser completamente validado via E2E, o QA deve ser marcado como REJEITADO ou BLOQUEADO, nunca APROVADO</critical>
|
|
120
170
|
|
|
121
|
-
###
|
|
171
|
+
### 4.1. Matriz mínima obrigatória por requisito
|
|
122
172
|
|
|
123
173
|
Para cada RF, o QA deve responder explicitamente:
|
|
124
174
|
|
|
@@ -128,7 +178,19 @@ Para cada RF, o QA deve responder explicitamente:
|
|
|
128
178
|
- Quais regressões históricas ou riscos correlatos foram exercitados?
|
|
129
179
|
- O requisito foi validado integralmente ou parcialmente?
|
|
130
180
|
|
|
131
|
-
|
|
181
|
+
Exemplos de edge cases que devem ser considerados sempre que relevantes:
|
|
182
|
+
|
|
183
|
+
- estados vazios
|
|
184
|
+
- limites de data/hora
|
|
185
|
+
- dados longos ou truncamento visual
|
|
186
|
+
- permissões diferentes
|
|
187
|
+
- mobile e desktop
|
|
188
|
+
- comportamento com histórico pré-existente
|
|
189
|
+
- comportamento com itens já vinculados a outros fluxos
|
|
190
|
+
- reentrada/ações repetidas
|
|
191
|
+
- falhas de API, loading e estados intermediários
|
|
192
|
+
|
|
193
|
+
### 5. Verificações de Acessibilidade (Obrigatório)
|
|
132
194
|
|
|
133
195
|
Verificar para cada tela/componente (WCAG 2.2):
|
|
134
196
|
|
|
@@ -138,16 +200,20 @@ Verificar para cada tela/componente (WCAG 2.2):
|
|
|
138
200
|
- [ ] Contraste de cores é adequado
|
|
139
201
|
- [ ] Formulários têm labels associados aos inputs
|
|
140
202
|
- [ ] Mensagens de erro são claras e acessíveis
|
|
203
|
+
- [ ] Skip links para navegação principal (se aplicável)
|
|
141
204
|
- [ ] Focus indicators visíveis
|
|
142
205
|
|
|
143
|
-
|
|
206
|
+
Use `browser_press_key` para testar navegação por teclado.
|
|
207
|
+
Use `browser_snapshot` para verificar labels e estrutura semântica.
|
|
208
|
+
|
|
209
|
+
### 6. Verificações Visuais (Obrigatório)
|
|
144
210
|
|
|
145
|
-
- Capturar screenshots das telas principais
|
|
211
|
+
- Capturar screenshots das telas principais com `browser_take_screenshot` e salvar em `{{PRD_PATH}}/QA/screenshots/`
|
|
146
212
|
- Verificar layouts em diferentes estados (vazio, com dados, erro, loading)
|
|
147
213
|
- Documentar inconsistências visuais encontradas
|
|
148
|
-
- Verificar responsividade se aplicável
|
|
214
|
+
- Verificar responsividade se aplicável (diferentes viewports)
|
|
149
215
|
|
|
150
|
-
###
|
|
216
|
+
### 7. Documentação de Bugs (Se encontrar problemas)
|
|
151
217
|
|
|
152
218
|
Para cada bug encontrado, criar entrada em `{{PRD_PATH}}/QA/bugs.md`:
|
|
153
219
|
|
|
@@ -166,7 +232,7 @@ Para cada bug encontrado, criar entrada em `{{PRD_PATH}}/QA/bugs.md`:
|
|
|
166
232
|
- **Status:** Aberto
|
|
167
233
|
```
|
|
168
234
|
|
|
169
|
-
###
|
|
235
|
+
### 8. Relatório de QA (Obrigatório)
|
|
170
236
|
|
|
171
237
|
Gerar relatório em `{{PRD_PATH}}/QA/qa-report.md`:
|
|
172
238
|
|
|
@@ -221,18 +287,27 @@ Gerar relatório em `{{PRD_PATH}}/QA/qa-report.md`:
|
|
|
221
287
|
- [ ] Screenshots de evidência capturados
|
|
222
288
|
- [ ] Bugs documentados em `QA/bugs.md` (se houver)
|
|
223
289
|
- [ ] Relatório `QA/qa-report.md` gerado
|
|
290
|
+
- [ ] Logs de console/rede salvos em `QA/logs/`
|
|
291
|
+
- [ ] Scripts de teste Playwright salvos em `QA/scripts/`
|
|
224
292
|
|
|
225
293
|
## Notas Importantes
|
|
226
294
|
|
|
227
295
|
- Sempre use `browser_snapshot` antes de interagir para entender o estado atual da página
|
|
228
|
-
- Capture screenshots de TODOS os bugs encontrados
|
|
296
|
+
- Capture screenshots de TODOS os bugs encontrados em `QA/screenshots/`
|
|
229
297
|
- Se encontrar um bug bloqueante, documente e reporte imediatamente
|
|
230
|
-
- Verifique o console do browser para erros JavaScript com `browser_console_messages`
|
|
231
|
-
- Verifique chamadas de API com `browser_network_requests`
|
|
232
|
-
- Salve os scripts de testes E2E executados para reuso e auditoria
|
|
298
|
+
- Verifique o console do browser para erros JavaScript com `browser_console_messages` e salve em `QA/logs/console.log`
|
|
299
|
+
- Verifique chamadas de API com `browser_network_requests` e salve em `QA/logs/network.log`
|
|
300
|
+
- Salve os scripts de testes E2E executados em `QA/scripts/` para reuso e auditoria
|
|
301
|
+
- Para projetos usando shadcn/ui + Tailwind, verifique se os componentes seguem o design system
|
|
302
|
+
- Use `.dw/templates/qa-test-credentials.md` como fonte oficial de credenciais de login para QA
|
|
303
|
+
- Consulte `.dw/references/playwright-patterns.md` para padrões comuns de teste
|
|
233
304
|
- Não marque requisito como validado com base apenas em teste unitário, integração, inferência de código ou execução parcial
|
|
305
|
+
- Se a implementação requer dados históricos ou estado específico para validar um edge case, prepare esse estado e execute o caso
|
|
306
|
+
- Se não houver tempo ou ambiente suficiente para cobrir completamente um requisito, registre explicitamente como bloqueio e rejeite o QA
|
|
234
307
|
|
|
235
308
|
<critical>O QA só está APROVADO quando TODOS os requisitos do PRD forem verificados e estiverem funcionando</critical>
|
|
236
309
|
<critical>Utilize o Playwright MCP para TODAS as interações com a aplicação</critical>
|
|
237
310
|
<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>
|
|
311
|
+
<critical>Verifique que CADA página do módulo é ÚNICA e FUNCIONAL antes de testar RFs individuais</critical>
|
|
312
|
+
<critical>QA aprovado requer cobertura abrangente comprovada: happy path, edge cases, fluxos negativos e regressões aplicáveis</critical>
|
|
238
313
|
</system_instructions>
|