@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.
Files changed (26) hide show
  1. package/bin/dev-workflow.js +11 -4
  2. package/lib/install-deps.js +42 -0
  3. package/package.json +1 -1
  4. package/scaffold/en/commands/dw-bugfix.md +2 -3
  5. package/scaffold/en/commands/dw-fix-qa.md +1 -2
  6. package/scaffold/en/commands/dw-functional-doc.md +36 -1
  7. package/scaffold/en/commands/dw-review-implementation.md +72 -24
  8. package/scaffold/en/commands/dw-run-qa.md +59 -4
  9. package/scaffold/en/commands/dw-run-task.md +1 -2
  10. package/scaffold/pt-br/commands/dw-bugfix.md +2 -3
  11. package/scaffold/pt-br/commands/dw-fix-qa.md +1 -2
  12. package/scaffold/pt-br/commands/dw-functional-doc.md +36 -1
  13. package/scaffold/pt-br/commands/dw-review-implementation.md +71 -19
  14. package/scaffold/pt-br/commands/dw-run-qa.md +59 -4
  15. package/scaffold/pt-br/commands/dw-run-task.md +1 -2
  16. package/scaffold/skills/agent-browser/SKILL.md +0 -750
  17. package/scaffold/skills/agent-browser/references/authentication.md +0 -303
  18. package/scaffold/skills/agent-browser/references/commands.md +0 -295
  19. package/scaffold/skills/agent-browser/references/profiling.md +0 -120
  20. package/scaffold/skills/agent-browser/references/proxy-support.md +0 -194
  21. package/scaffold/skills/agent-browser/references/session-management.md +0 -193
  22. package/scaffold/skills/agent-browser/references/snapshot-refs.md +0 -219
  23. package/scaffold/skills/agent-browser/references/video-recording.md +0 -173
  24. package/scaffold/skills/agent-browser/templates/authenticated-session.sh +0 -105
  25. package/scaffold/skills/agent-browser/templates/capture-workflow.sh +0 -69
  26. 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. Decisão Pós-Relatório (Obrigatório)
173
+ ### 8. Loop de Resolução de Gaps (Obrigatório)
174
174
 
175
- **Se NÃO gaps (0 pendentes, 0 parciais, 100% implementado):**
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
- **Se gaps (pendentes > 0 OU parciais > 0):**
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 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"];
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-fix-qa` (se bugs) ou `/dw-code-review`
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 `agent-browser`
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 `agent-browser` ou `webapp-testing`, registrando isso explicitamente no relatório
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` ou `agent-browser` quando isso reduzir o risco de regressão invisível nos testes unitários
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