@brunosps00/dev-workflow 0.0.7 → 0.1.1
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/bin/dev-workflow.js +11 -4
- package/lib/install-deps.js +42 -0
- package/package.json +1 -1
- package/scaffold/en/commands/dw-bugfix.md +2 -3
- package/scaffold/en/commands/dw-fix-qa.md +1 -2
- package/scaffold/en/commands/dw-functional-doc.md +36 -1
- package/scaffold/en/commands/dw-review-implementation.md +72 -24
- package/scaffold/en/commands/dw-run-qa.md +59 -4
- package/scaffold/en/commands/dw-run-task.md +1 -2
- package/scaffold/pt-br/commands/dw-bugfix.md +2 -3
- package/scaffold/pt-br/commands/dw-fix-qa.md +1 -2
- package/scaffold/pt-br/commands/dw-functional-doc.md +36 -1
- package/scaffold/pt-br/commands/dw-review-implementation.md +71 -19
- package/scaffold/pt-br/commands/dw-run-qa.md +59 -4
- package/scaffold/pt-br/commands/dw-run-task.md +1 -2
- package/scaffold/skills/agent-browser/SKILL.md +0 -750
- package/scaffold/skills/agent-browser/references/authentication.md +0 -303
- package/scaffold/skills/agent-browser/references/commands.md +0 -295
- package/scaffold/skills/agent-browser/references/profiling.md +0 -120
- package/scaffold/skills/agent-browser/references/proxy-support.md +0 -194
- package/scaffold/skills/agent-browser/references/session-management.md +0 -193
- package/scaffold/skills/agent-browser/references/snapshot-refs.md +0 -219
- package/scaffold/skills/agent-browser/references/video-recording.md +0 -173
- package/scaffold/skills/agent-browser/templates/authenticated-session.sh +0 -105
- package/scaffold/skills/agent-browser/templates/capture-workflow.sh +0 -69
- package/scaffold/skills/agent-browser/templates/form-automation.sh +0 -62
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
- NÃO use quando os requisitos ainda não foram finalizados
|
|
8
8
|
|
|
9
9
|
## Posição no Pipeline
|
|
10
|
-
**Antecessor:** `/dw-run-plan` (auto) ou `/dw-run-task` (manual) | **Sucessor:** `/dw-code-review`
|
|
10
|
+
**Antecessor:** `/dw-run-plan` (auto) ou `/dw-run-task` (manual) | **Sucessor:** `/dw-code-review` (auto-fixes gaps before completing)
|
|
11
11
|
|
|
12
12
|
Chamado por: `/dw-run-plan` ao final de todas as tasks
|
|
13
13
|
|
|
@@ -170,31 +170,82 @@
|
|
|
170
170
|
2. [ação secundária]
|
|
171
171
|
```
|
|
172
172
|
|
|
173
|
-
### 8.
|
|
173
|
+
### 8. Loop de Resolução de Gaps (Obrigatório)
|
|
174
174
|
|
|
175
|
-
|
|
176
|
-
- Apresente o relatório ao usuário
|
|
177
|
-
- **NÃO entre em modo de planejamento**
|
|
178
|
-
- **NÃO crie tasks adicionais**
|
|
179
|
-
- **NÃO proponha implementar nada**
|
|
180
|
-
- Simplesmente conclua com: "Implementação 100% conforme. Nenhuma ação necessária."
|
|
181
|
-
- ENCERRE a revisão imediatamente
|
|
175
|
+
<critical>A revisão NÃO termina no primeiro relatório. Se gaps forem encontrados, entre em um loop automático de fix-review até 100% de conformidade ou BLOCK explícito.</critical>
|
|
182
176
|
|
|
183
|
-
|
|
184
|
-
- Apresente o relatório com gaps e recomendações
|
|
185
|
-
- Liste ações necessárias para resolver cada gap
|
|
186
|
-
- Aguarde instruções do usuário sobre como proceder
|
|
187
|
-
- **NÃO execute correções sem instrução explícita do usuário**
|
|
177
|
+
Após gerar o relatório, avalie:
|
|
188
178
|
|
|
189
|
-
**Fluxo de Decisão de Verificação de Conformidade:**
|
|
190
179
|
```dot
|
|
191
|
-
digraph
|
|
192
|
-
|
|
193
|
-
"
|
|
194
|
-
"
|
|
180
|
+
digraph review_loop {
|
|
181
|
+
rankdir=TB;
|
|
182
|
+
"Generate Review Report" -> "Gaps found?";
|
|
183
|
+
"Gaps found?" -> "100% Compliant\nExit" [label="no"];
|
|
184
|
+
"Gaps found?" -> "Fix gaps\n(implement missing code)" [label="yes"];
|
|
185
|
+
"Fix gaps\n(implement missing code)" -> "Re-review\nimplementation";
|
|
186
|
+
"Re-review\nimplementation" -> "Still gaps?";
|
|
187
|
+
"Still gaps?" -> "100% Compliant\nExit" [label="no"];
|
|
188
|
+
"Still gaps?" -> "Max cycles\nreached?" [label="yes"];
|
|
189
|
+
"Max cycles\nreached?" -> "Fix gaps\n(implement missing code)" [label="no"];
|
|
190
|
+
"Max cycles\nreached?" -> "BLOCKED\nReport residual gaps" [label="yes (3 cycles)"];
|
|
195
191
|
}
|
|
196
192
|
```
|
|
197
193
|
|
|
194
|
+
**Regras do loop:**
|
|
195
|
+
1. Após o relatório inicial, se houver gaps (❌ não implementado ou ⚠️ parcial), entre no loop automaticamente
|
|
196
|
+
2. Para cada ciclo:
|
|
197
|
+
a. Corrija todos os gaps identificados: implemente código faltante, complete implementações parciais
|
|
198
|
+
b. Siga os padrões do projeto em `.dw/rules/` durante as correções
|
|
199
|
+
c. Execute testes após as correções (`pnpm test` ou equivalente)
|
|
200
|
+
d. Releia os arquivos alterados e recompare com os requisitos do PRD
|
|
201
|
+
e. Atualize o relatório de revisão com os resultados do ciclo
|
|
202
|
+
f. Se 100% conforme → saia do loop, apresente o relatório final
|
|
203
|
+
g. Se gaps permanecerem → continue para o próximo ciclo
|
|
204
|
+
3. **Máximo de 3 ciclos de fix-review.** Após 3 ciclos, marque a revisão como **BLOCKED** com gaps residuais documentados
|
|
205
|
+
4. Cada ciclo deve adicionar uma seção ao relatório mostrando o que foi corrigido e o novo status de conformidade
|
|
206
|
+
5. Commite correções após cada ciclo: `fix(review): implement [requirement] from PRD`
|
|
207
|
+
|
|
208
|
+
**O que corrigir automaticamente:**
|
|
209
|
+
- ❌ Requisitos não implementados → implemente-os
|
|
210
|
+
- ⚠️ Requisitos parcialmente implementados → complete-os
|
|
211
|
+
- 📝 Tasks marcadas como concluídas mas incompletas → finalize-as
|
|
212
|
+
|
|
213
|
+
**O que NÃO corrigir (parar e perguntar ao usuário):**
|
|
214
|
+
- Requisitos que contradizem uns aos outros no PRD
|
|
215
|
+
- Requisitos que precisam de decisões arquiteturais não cobertas na TechSpec
|
|
216
|
+
- Requisitos que dependem de serviços externos não disponíveis
|
|
217
|
+
- Se uma correção ultrapassar o escopo de uma única task
|
|
218
|
+
|
|
219
|
+
**Formato do relatório por ciclo (adicionar ao relatório de revisão):**
|
|
220
|
+
```markdown
|
|
221
|
+
## Fix Cycle [N] — [YYYY-MM-DD]
|
|
222
|
+
|
|
223
|
+
### Gaps Resolved
|
|
224
|
+
| RF | Description | Action Taken | Status |
|
|
225
|
+
|----|-------------|-------------|--------|
|
|
226
|
+
| RF-XX | [requirement] | [what was implemented] | ✅ |
|
|
227
|
+
|
|
228
|
+
### Tests
|
|
229
|
+
- `pnpm test`: PASS/FAIL
|
|
230
|
+
- Files changed: [list]
|
|
231
|
+
|
|
232
|
+
### Remaining Gaps
|
|
233
|
+
- [list or "None"]
|
|
234
|
+
|
|
235
|
+
### Cycle Result: CONTINUE / COMPLIANT / BLOCKED
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
**Se 100% conforme após qualquer ciclo:**
|
|
239
|
+
- Apresente o relatório final
|
|
240
|
+
- **NÃO entre em modo de planejamento (EnterPlanMode)**
|
|
241
|
+
- **NÃO crie tasks (TaskCreate)**
|
|
242
|
+
- Conclua com: "Implementação 100% conforme após [N] ciclos de fix. Nenhuma ação adicional necessária."
|
|
243
|
+
|
|
244
|
+
**Se BLOCKED após 3 ciclos:**
|
|
245
|
+
- Apresente o relatório com gaps residuais
|
|
246
|
+
- Liste o que não pôde ser resolvido e por quê
|
|
247
|
+
- Aguarde instruções do usuário
|
|
248
|
+
|
|
198
249
|
## Níveis de Status
|
|
199
250
|
|
|
200
251
|
| Ícone | Significado |
|
|
@@ -246,4 +297,5 @@
|
|
|
246
297
|
<critical>NÃO APROVE requisitos sem evidência concreta no código</critical>
|
|
247
298
|
<critical>ANALISE o código real, não confie apenas nos checkboxes do tasks.md</critical>
|
|
248
299
|
<critical>Se 100% dos requisitos foram implementados e NÃO há gaps: NÃO entre em plan mode, NÃO crie tasks. Apenas apresente o relatório e ENCERRE.</critical>
|
|
300
|
+
<critical>Se gaps forem encontrados, entre no loop de fix-review automaticamente. NÃO aguarde instruções do usuário para corrigir gaps. Máximo de 3 ciclos antes de marcar como BLOCKED.</critical>
|
|
249
301
|
</system_instructions>
|
|
@@ -7,7 +7,7 @@ Você é um assistente IA especializado em Quality Assurance. Sua tarefa é vali
|
|
|
7
7
|
- NÃO use quando os requisitos ainda não foram definidos (crie o PRD primeiro)
|
|
8
8
|
|
|
9
9
|
## Posição no Pipeline
|
|
10
|
-
**Antecessor:** `/dw-run-plan` ou `/dw-run-task` | **Sucessor:** `/dw-
|
|
10
|
+
**Antecessor:** `/dw-run-plan` ou `/dw-run-task` | **Sucessor:** `/dw-code-review` (auto-fixes bugs internally before completing)
|
|
11
11
|
|
|
12
12
|
<critical>Utilize o Playwright MCP para executar todos os testes E2E</critical>
|
|
13
13
|
<critical>Verifique TODOS os requisitos do PRD e TechSpec antes de aprovar</critical>
|
|
@@ -20,7 +20,6 @@ Você é um assistente IA especializado em Quality Assurance. Sua tarefa é vali
|
|
|
20
20
|
|
|
21
21
|
Quando disponíveis no projeto em `./.agents/skills/`, use estas skills como apoio operacional sem substituir este comando:
|
|
22
22
|
|
|
23
|
-
- `agent-browser`: apoio para navegação operacional, auth persistente, screenshots adicionais, inspeção de requests e debugging de sessão
|
|
24
23
|
- `webapp-testing`: apoio para estruturar fluxos de teste, retestes, screenshots e logs quando complementar ao Playwright MCP
|
|
25
24
|
- `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
25
|
|
|
@@ -96,7 +95,7 @@ Consulte `.dw/rules/` para URLs e frameworks específicos do projeto.
|
|
|
96
95
|
- Verificar se a aplicação está rodando em localhost
|
|
97
96
|
- Usar `browser_navigate` do Playwright MCP para acessar a aplicação
|
|
98
97
|
- 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 `
|
|
98
|
+
- 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 `webapp-testing`
|
|
100
99
|
|
|
101
100
|
### 3. Verificação de Páginas do Menu (Obrigatório — Executar ANTES dos testes de RF)
|
|
102
101
|
|
|
@@ -163,7 +162,7 @@ Para cada requisito funcional do PRD:
|
|
|
163
162
|
8. Marcar como PASSOU ou FALHOU
|
|
164
163
|
9. Salvar o script Playwright do fluxo em `{{PRD_PATH}}/QA/scripts/` com nome padronizado: `RF-XX-[slug].spec.ts` (ou `.js`)
|
|
165
164
|
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 `
|
|
165
|
+
11. Quando o fluxo MCP ficar instável ou insuficiente para evidência operacional, complementar com `webapp-testing`, registrando isso explicitamente no relatório
|
|
167
166
|
|
|
168
167
|
<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
168
|
<critical>Se um requisito não puder ser completamente validado via E2E, o QA deve ser marcado como REJEITADO ou BLOQUEADO, nunca APROVADO</critical>
|
|
@@ -270,6 +269,62 @@ Gerar relatório em `{{PRD_PATH}}/QA/qa-report.md`:
|
|
|
270
269
|
[Parecer final do QA]
|
|
271
270
|
```
|
|
272
271
|
|
|
272
|
+
### 9. Loop QA Fix-Retest (Automático)
|
|
273
|
+
|
|
274
|
+
<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>
|
|
275
|
+
|
|
276
|
+
Após gerar o relatório inicial de QA:
|
|
277
|
+
|
|
278
|
+
```dot
|
|
279
|
+
digraph qa_loop {
|
|
280
|
+
rankdir=TB;
|
|
281
|
+
"Generate QA Report" -> "Bugs found?";
|
|
282
|
+
"Bugs found?" -> "QA APPROVED\nExit" [label="no"];
|
|
283
|
+
"Bugs found?" -> "Fix bugs\n(follow dw-fix-qa rules)" [label="yes"];
|
|
284
|
+
"Fix bugs\n(follow dw-fix-qa rules)" -> "Retest ALL\nfixed bugs";
|
|
285
|
+
"Retest ALL\nfixed bugs" -> "New/reopened\nbugs?";
|
|
286
|
+
"New/reopened\nbugs?" -> "QA APPROVED\nExit" [label="no"];
|
|
287
|
+
"New/reopened\nbugs?" -> "Max cycles\nreached?" [label="yes"];
|
|
288
|
+
"Max cycles\nreached?" -> "Fix bugs\n(follow dw-fix-qa rules)" [label="no"];
|
|
289
|
+
"Max cycles\nreached?" -> "QA BLOCKED\nReport residual bugs" [label="yes (5 cycles)"];
|
|
290
|
+
}
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
**Regras do loop:**
|
|
294
|
+
1. Após o relatório inicial, se `QA/bugs.md` tiver bugs com `Status: Open`, entre no loop automaticamente
|
|
295
|
+
2. Para cada ciclo:
|
|
296
|
+
a. Corrija todos os bugs abertos cirurgicamente (mesmas regras do `/dw-fix-qa`: sem scope creep, impacto mínimo)
|
|
297
|
+
b. Reteste TODOS os bugs corrigidos via Playwright MCP com captura de evidências
|
|
298
|
+
c. Verifique regressões introduzidas pelas correções
|
|
299
|
+
d. Atualize `QA/bugs.md` e `QA/qa-report.md` com os resultados do ciclo
|
|
300
|
+
e. Se todos os bugs críticos/altos estiverem fechados → **QA APPROVED**, saia do loop
|
|
301
|
+
f. Se novos bugs apareceram ou correções falharam → continue para o próximo ciclo
|
|
302
|
+
3. **Máximo de 5 ciclos de fix-retest.** Após 5 ciclos, marque o QA como **BLOCKED** com bugs residuais documentados
|
|
303
|
+
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
|
|
304
|
+
5. Faça commit das correções após cada ciclo bem-sucedido: `fix(qa): resolve BUG-NN [description]`
|
|
305
|
+
|
|
306
|
+
**Formato do relatório por ciclo (adicionar ao qa-report.md):**
|
|
307
|
+
```markdown
|
|
308
|
+
## Fix-Retest Cycle [N] — [YYYY-MM-DD]
|
|
309
|
+
|
|
310
|
+
### Bugs Fixed
|
|
311
|
+
| Bug | Fix Description | Retest | Evidence |
|
|
312
|
+
|-----|----------------|--------|----------|
|
|
313
|
+
| BUG-01 | [what was changed] | PASS/FAIL | `QA/screenshots/BUG-01-cycle-N.png` |
|
|
314
|
+
|
|
315
|
+
### Regressions Checked
|
|
316
|
+
- [list of related flows retested]
|
|
317
|
+
|
|
318
|
+
### Cycle Result
|
|
319
|
+
- **Bugs remaining:** [count]
|
|
320
|
+
- **Status:** CONTINUE / APPROVED / BLOCKED
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
**Red flags — PARE o loop:**
|
|
324
|
+
- Correção requer uma nova feature (não é bug) → pare, recomende `/dw-create-prd`
|
|
325
|
+
- Correção requer refatoração significativa → pare, recomende `/dw-refactoring-analysis`
|
|
326
|
+
- Mesmo bug reaparece após 2+ tentativas de correção → marque como BLOCKED com análise de causa raiz
|
|
327
|
+
|
|
273
328
|
## Checklist de Qualidade
|
|
274
329
|
|
|
275
330
|
- [ ] PRD analisado e requisitos extraídos
|
|
@@ -20,7 +20,6 @@ Quando disponíveis no projeto em `./.agents/skills/`, use estas skills como sup
|
|
|
20
20
|
|-------|---------|
|
|
21
21
|
| `vercel-react-best-practices` | Task envolve renderização React, hidratação, data fetching, bundle, cache ou performance |
|
|
22
22
|
| `webapp-testing` | Task tem frontend interativo que necessita validação E2E em navegador real |
|
|
23
|
-
| `agent-browser` | Validação de UI requer sessão persistente, inspeção de navegação operacional ou evidência visual complementar |
|
|
24
23
|
|
|
25
24
|
## Localização dos Arquivos
|
|
26
25
|
|
|
@@ -78,7 +77,7 @@ Após fornecer o resumo e abordagem, **comece imediatamente** a implementar a ta
|
|
|
78
77
|
- Seguir padrões estabelecidos do projeto
|
|
79
78
|
- Garantir que todos os requisitos sejam atendidos
|
|
80
79
|
- **Rodar testes**: use o comando de teste do projeto
|
|
81
|
-
- Se houver frontend interativo, valide também o comportamento real com `webapp-testing`
|
|
80
|
+
- Se houver frontend interativo, valide também o comportamento real com `webapp-testing` quando isso reduzir o risco de regressão invisível nos testes unitários
|
|
82
81
|
|
|
83
82
|
**VOCÊ DEVE** iniciar a implementação logo após o processo acima.
|
|
84
83
|
|