chore(agent): padronizar salvamento obrigatorio de evidencias de testes em .evidencias
This commit is contained in:
parent
51261563a4
commit
2e6db7dda6
30 changed files with 91 additions and 69 deletions
|
|
@ -1,10 +1,10 @@
|
|||
---
|
||||
type: rule
|
||||
name: testes-interface-agent-browser
|
||||
description: Testes automatizados de interface (E2E) e acesso visual ao frontend devem usar agent-browser, sempre visível (--headed) e com isolamento por sessão e contexto (--session <modulo>_<contexto?>).
|
||||
description: Testes automatizados de interface (E2E) e acesso visual ao frontend devem usar agent-browser, sempre visível (--headed), com isolamento por sessão e contexto (--session <modulo>_<contexto?>) e salvando evidências obrigatoriamente na pasta .evidencias/.
|
||||
scope: global
|
||||
trigger: always_on
|
||||
updatedAt: "2026-10-08"
|
||||
updatedAt: "2026-10-30"
|
||||
---
|
||||
|
||||
# Regra: Testes Automatizados de Interface e Navegação com agent-browser
|
||||
|
|
@ -37,8 +37,10 @@ Sempre que qualquer agente de IA (`@testes`, `@front`, `@ux` ou outro) precisar
|
|||
4. **Utilizar o modelo de referências (`@ref`)**:
|
||||
- Mapear a tela via `agent-browser --session <modulo>_<contexto?> snapshot -i`, obtendo referências compactas como `@e1`, `@e2`.
|
||||
- Executar ações determinísticas referenciando os IDs gerados (`click @e1`, `fill @e2 "texto"`).
|
||||
5. **Registrar evidências e fechar sessão**:
|
||||
- Registrar comprovações visuais com `agent-browser --session <modulo>_<contexto?> screenshot <arquivo.png>`.
|
||||
5. **Registrar evidências obrigatoriamente na pasta `.evidencias/` e fechar sessão**:
|
||||
- Todas as evidências geradas pelos testes automatizados (screenshots, capturas anotadas, PDFs, vídeos, traces, relatórios ou dumps de console/rede) **DEVEM OBRIGATORIAMENTE ser salvas na pasta `.evidencias/`** na raiz do projeto (`mkdir -p .evidencias`).
|
||||
- Registrar comprovações visuais com `agent-browser --session <modulo>_<contexto?> screenshot .evidencias/<arquivo.png>`.
|
||||
- Garantir que `.evidencias/` conste no `.gitignore` do projeto para evitar o versionamento acidental de binários de teste.
|
||||
- Encerrar graciosamente o navegador com `agent-browser --session <modulo>_<contexto?> close` ao término do fluxo.
|
||||
6. **Credenciais Canônicas por Contexto (`modulo-acesso`)**:
|
||||
- Sempre que o teste exigir autenticação, o agente **DEVE OBRIGATORIAMENTE extrair as credenciais do contexto específico** em `modulo-acesso` de `memorias-ia/modulo.yml` (ex: `modulo-acesso.interno`, `modulo-acesso.cliente`, etc.).
|
||||
|
|
@ -115,8 +117,9 @@ agent-browser --session "${MODULO}_${CONTEXTO}" wait 1000
|
|||
# Obter novo snapshot para verificar estado pós-ação
|
||||
agent-browser --session "${MODULO}_${CONTEXTO}" snapshot -i
|
||||
|
||||
# Capturar evidência gráfica do teste
|
||||
agent-browser --session "${MODULO}_${CONTEXTO}" screenshot evidencias/teste-login-sucesso.png
|
||||
# Garantir pasta .evidencias e capturar evidência gráfica do teste
|
||||
mkdir -p .evidencias
|
||||
agent-browser --session "${MODULO}_${CONTEXTO}" screenshot .evidencias/teste-login-sucesso.png
|
||||
|
||||
# Verificar erros no console do navegador
|
||||
agent-browser --session "${MODULO}_${CONTEXTO}" console
|
||||
|
|
@ -137,6 +140,7 @@ agent-browser --session "${MODULO}_${CONTEXTO}" close
|
|||
- **Proibido executar sem a flag `--session <modulo>_<contexto?>`** (ou sem `AGENT_BROWSER_SESSION`), evitando poluir a sessão default compartilhada.
|
||||
- **Proibido misturar acessos com perfis diferentes na mesma sessão genérica sem contexto** (ex: logar como operador interno e depois testar fluxo de cliente ou anônimo na mesma sessão, causando mistura de tokens).
|
||||
- **Proibido abrir em modo headless silencioso** sem flag `--headed` ou variável `AGENT_BROWSER_HEADED=true`.
|
||||
- **Proibido salvar evidências de testes automatizados fora da pasta `.evidencias/`** (como soltas na raiz do projeto, em `/tmp/` ou em `evidencias/` sem ponto inicial).
|
||||
- **Proibido despejar o HTML/DOM completo** no contexto da IA (consome milhares de tokens desnecessários; use sempre `snapshot -i`).
|
||||
- **Proibido navegar para URLs desconhecidas** ou inventadas pela IA fora do escopo aprovado do teste.
|
||||
- **Proibido deixar processos ou janelas órfãs** após a conclusão do trabalho (sempre executar `agent-browser --session <modulo>_<contexto?> close`).
|
||||
|
|
@ -144,7 +148,7 @@ agent-browser --session "${MODULO}_${CONTEXTO}" close
|
|||
### Permitido e Recomendado ✅
|
||||
- Manter sessões persistentes por contexto quando necessário via `--session <modulo>_<contexto> --restore`.
|
||||
- Utilizar sub-isolamento determinístico (`<modulo>_<contexto>_<slug-ou-pid>`) caso múltiplos testes do mesmo contexto ocorram simultaneamente no mesmo host.
|
||||
- Usar `agent-browser --session <modulo>_<contexto> screenshot --annotate` para inspecionar layouts complexos com visão computacional.
|
||||
- Usar `agent-browser --session <modulo>_<contexto> screenshot --annotate .evidencias/<slug>-anotado.png` para inspecionar layouts complexos com visão computacional.
|
||||
- Consultar guias embutidos do próprio binário via `agent-browser skills get core --full` ou `agent-browser skills get dogfood`.
|
||||
|
||||
---
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ Ao acionar `/plano.executar`, o agente adota estritamente o compromisso do **/go
|
|||
- O agente **NÃO desiste nem pede ajuda** imediatamente.
|
||||
- Ele analisa o stack trace / log de erro, diagnostica a causa raiz, refatora o trecho e roda a validação novamente.
|
||||
- Esse loop continua até que todos os critérios de aceite (Definition of Done) estejam 100% verdes.
|
||||
3. **Comprovação Baseada em Evidências:** Apenas testes reais e verificações executadas contam como conclusão. Não há "deve estar funcionando" sem validação com comandos concretos.
|
||||
3. **Comprovação Baseada em Evidências (`.evidencias/`):** Apenas testes reais e verificações executadas contam como conclusão, com todas as evidências geradas pelos testes automatizados salvas obrigatoriamente na pasta `.evidencias/`. Não há "deve estar funcionando" sem validação com comandos concretos.
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -56,7 +56,7 @@ O Orquestrador Líder decompõe a especificação técnica do plano e distribui
|
|||
| **`@front`** *(Frontend Specialist)* | `*-front`, `*-comuns` | Componentes Vue 3, composables, views, formulários reativos, binding de eventos, consumo de APIs, CSS co-localizado e despoluição visual (`refactoring-ui-hierarquia-despoluicao`). |
|
||||
| **`@ux`** *(UX Specialist)* | `*-front` (Interface, Heurísticas, Fluxo Funcional & *Refactoring UI*) | Aplicação das Heurísticas de Nielsen, `ux-fluxo-funcional` e `refactoring-ui-hierarquia-despoluicao` (livro no Paiol: `https://adm.paiol.idz.one/estaticos/Refactoring-UI-Steve-Schoger-Adam-Wathan.pdf`): navegação exclusiva no `MenuLateral.vue` ordenada pela jornada, pré-requisitos guiados, revelação progressiva (`12 colunas`), pirâmide de ações (1 primária sólida; destrutivas discretas fora do modal), zero *Card-ception* / menos bordas, consolidação de colunas em tabelas, contraste de tokens Vuetify (`secondary` escuro), zero jargão técnico e feedback imediato. |
|
||||
| **`@refatorar`** *(Clean Code Specialist)* | Todo o código alterado | Governança estrita das 12 regras de Código Limpo: garantia do **limite de 250 linhas por arquivo**, eliminação de code smells, modularidade e Dispatch Tables. |
|
||||
| **`@testes`** *(QA & Automation)* | Checagens e Validação E2E | Tipagem (`bun run typecheck` / `tsc --noEmit`), linter (`biome check --write`), governança (`sh .agent/verificar-linhas.sh`) e testes de interface visual via `agent-browser --session <modulo>_<contexto?> --headed`. |
|
||||
| **`@testes`** *(QA & Automation)* | Checagens e Validação E2E | Tipagem (`bun run typecheck` / `tsc --noEmit`), linter (`biome check --write`), governança (`sh .agent/verificar-linhas.sh`) e testes de interface visual via `agent-browser --session <modulo>_<contexto?> --headed` com evidências salvas em `.evidencias/`. |
|
||||
| **`@documentacao`** *(Memory & Docs)* | `memorias-ia/`, `<modulo-wiki>/` | Registro de sessão no Pilar 6 (`memorias-ia/sessao-*.md`), indexação no `historico-acoes.md`, atualização de regras técnicas na Wiki de Dev (`<modulo-wiki>/dev/<modulo-id>/`). |
|
||||
|
||||
---
|
||||
|
|
@ -80,7 +80,7 @@ Em implementações integradas, o Orquestrador segue a ordem canônica de handof
|
|||
↓
|
||||
4. [@refatorar] Extrai módulos se exceder 250 linhas e aplica Código Limpo
|
||||
↓
|
||||
5. [@testes] Roda typecheck, biome e testes E2E com agent-browser --session <modulo>_<contexto?> --headed
|
||||
5. [@testes] Roda typecheck, biome e testes E2E com agent-browser --session <modulo>_<contexto?> --headed (evidências em .evidencias/)
|
||||
↓ (Loop /goal de auto-correção se houver falhas)
|
||||
6. [@documentacao] Atualiza memórias-ia/, historico-acoes.md e arquiva o plano
|
||||
```
|
||||
|
|
@ -149,7 +149,7 @@ Ao atingir 100% de conformidade com todos os critérios do plano:
|
|||
|
||||
1. **Atualizar Metadados e Histórico do Plano:**
|
||||
- Frontmatter: `status: "executado"`, `data-execucao: "AAAA-MM-DD HH:mm"`, `executor: "Orquestrador /goal + Multiagentes (@back, @front, @ux, @refatorar, @testes, @documentacao)"`.
|
||||
- Seção 6 (*Histórico de Execução*): arquivos modificados, resumo da solução e evidências de validação.
|
||||
- Seção 6 (*Histórico de Execução*): arquivos modificados, resumo da solução e evidências de validação salvas em `.evidencias/`.
|
||||
2. **Mover o Plano:**
|
||||
- Salvar em `./PLANOS/executado/<nome-original>.md` e remover de `./PLANOS/pendente/<nome-original>.md` (preservando o nome original do arquivo).
|
||||
3. **Atualizar Grafo de Conhecimento (Graphify):**
|
||||
|
|
|
|||
|
|
@ -83,10 +83,10 @@ Quando invocado com uma instrução (ex.: `/plano corrigir validação do númer
|
|||
---
|
||||
```
|
||||
- **1. Objetivo & Contexto:** Descrição concisa da demanda e impacto de negócio.
|
||||
- **2. Diagnóstico Técnico & Evidências:** Comportamento observado vs esperado, repro steps, arquivos mapeados com links `[arquivo](file://...)` e subseção **Raio de Impacto & Dependências (Graphify)** extraída via `bash .agent/scripts/graphify.sh impact`.
|
||||
- **2. Diagnóstico Técnico & Evidências:** Comportamento observado vs esperado, repro steps, evidências salvas em `.evidencias/`, arquivos mapeados com links `[arquivo](file://...)` e subseção **Raio de Impacto & Dependências (Graphify)** extraída via `bash .agent/scripts/graphify.sh impact`.
|
||||
- **3. Critérios de Aceite & Validação (DoD):** Checklist com caixas `- [ ]` contendo condições verificáveis de sucesso.
|
||||
- **4. Especificação Técnica & Passos de Implementação:** Roteiro prático para o desenvolvedor (schemas, backend, frontend, código sugerido).
|
||||
- **5. Plano de Verificação & Testes:** Testes automatizados (`typecheck`, `biome`) e roteiro manual/E2E com `agent-browser --session <modulo>_<contexto?> --headed`.
|
||||
- **5. Plano de Verificação & Testes:** Testes automatizados (`typecheck`, `biome`) e roteiro manual/E2E com `agent-browser --session <modulo>_<contexto?> --headed` (salvando evidências obrigatoriamente em `.evidencias/`).
|
||||
- **6. Histórico de Execução:** Cabeçalho reservado para preenchimento na conclusão pelo executor.
|
||||
- Salve o arquivo em `./PLANOS/pendente/AAAA-MM-DD-HH-mm-<slug>.md` usando `write_to_file`.
|
||||
|
||||
|
|
|
|||
|
|
@ -2,8 +2,9 @@
|
|||
name: testar-interface-agent-browser
|
||||
description: >
|
||||
Executar testes automatizados de interface (E2E), navegação e validação visual
|
||||
no frontend utilizando a CLI agent-browser, com janela sempre visível (--headed)
|
||||
e isolamento mandatório de sessão e contexto (--session <modulo>_<contexto?>).
|
||||
no frontend utilizando a CLI agent-browser, com janela sempre visível (--headed),
|
||||
isolamento mandatório de sessão e contexto (--session <modulo>_<contexto?>) e
|
||||
salvamento obrigatório das evidências na pasta .evidencias/.
|
||||
scope: global
|
||||
---
|
||||
|
||||
|
|
@ -125,12 +126,13 @@ agent-browser --session "${MODULO}_${CONTEXTO}" console
|
|||
agent-browser --session "${MODULO}_${CONTEXTO}" network
|
||||
```
|
||||
|
||||
### 6. Registrar Evidência Visual
|
||||
Capture um screenshot para comprovação do resultado do teste:
|
||||
### 6. Registrar Evidência Visual (Pasta Obrigatória `.evidencias/`)
|
||||
Capture um screenshot na pasta `.evidencias/` para comprovação do resultado do teste (é proibido salvar evidências fora de `.evidencias/`):
|
||||
```bash
|
||||
# Screenshot padrão ou anotado com identificadores visuais
|
||||
agent-browser --session "${MODULO}_${CONTEXTO}" screenshot evidencias/resultado-sucesso.png
|
||||
# agent-browser --session "${MODULO}_${CONTEXTO}" screenshot --annotate evidencias/resultado-anotado.png
|
||||
# Garantir a pasta .evidencias/ e capturar screenshot padrão ou anotado
|
||||
mkdir -p .evidencias
|
||||
agent-browser --session "${MODULO}_${CONTEXTO}" screenshot .evidencias/resultado-sucesso.png
|
||||
# agent-browser --session "${MODULO}_${CONTEXTO}" screenshot --annotate .evidencias/resultado-anotado.png
|
||||
```
|
||||
|
||||
### 7. Encerrar Navegador daquele Contexto
|
||||
|
|
@ -156,7 +158,7 @@ agent-browser --session "${MODULO}_${CONTEXTO}" close
|
|||
| **Aguardar seletor** | `agent-browser --session <modulo>_<contexto?> wait --selector "<seletor>"` |
|
||||
| **Inspecionar console** | `agent-browser --session <modulo>_<contexto?> console` |
|
||||
| **Inspecionar rede** | `agent-browser --session <modulo>_<contexto?> network` |
|
||||
| **Screenshot** | `agent-browser --session <modulo>_<contexto?> screenshot <arquivo.png>` |
|
||||
| **Screenshot (em `.evidencias/`)** | `agent-browser --session <modulo>_<contexto?> screenshot .evidencias/<arquivo.png>` |
|
||||
| **Auditoria a11y (WCAG)** | `agent-browser --session <modulo>_<contexto?> a11y` |
|
||||
| **Fechar sessão** | `agent-browser --session <modulo>_<contexto?> close` |
|
||||
|
||||
|
|
@ -217,4 +219,4 @@ agent-browser skills get dogfood
|
|||
|
||||
1. **Campos Vuetify (`v-text-field`, `v-select`)**: O `snapshot -i` mapeia diretamente o `textbox` e o `combobox`. Utilize `agent-browser --session "${MODULO}_${CONTEXTO}" fill @ref` ou `click @ref`.
|
||||
2. **Modais e Diálogos**: Após clicar no botão que abre o modal (`v-dialog`), execute `agent-browser --session "${MODULO}_${CONTEXTO}" wait 500 && agent-browser --session "${MODULO}_${CONTEXTO}" snapshot -i` para interagir com o conteúdo do diálogo.
|
||||
3. **Reporte de Teste**: Apresente ao operador o roteiro executado, evidências de screenshot e verificação de logs do console.
|
||||
3. **Reporte de Teste e Evidências em `.evidencias/`**: Salve obrigatoriamente todas as evidências geradas na pasta `.evidencias/` e apresente ao operador o roteiro executado, os links das evidências em `.evidencias/` e a verificação de logs do console.
|
||||
|
|
|
|||
|
|
@ -142,7 +142,7 @@ Conforme as diretrizes de **Layout (`Panes` e `Canonical Layouts`), `Dialogs` e
|
|||
- Inserir links de navegação cruzada e *empty states* guiados entre telas dependentes.
|
||||
- Garantir que quadros Kanban sejam horizontais e responsivos.
|
||||
5. **Validar Visualmente com `agent-browser`:**
|
||||
- Inspecionar o fluxo ponta a ponta em modo visível (`agent-browser --session <modulo-id>_<contexto?> --headed`) conforme `rules/testes-interface-agent-browser.md`.
|
||||
- Inspecionar o fluxo ponta a ponta em modo visível (`agent-browser --session <modulo-id>_<contexto?> --headed`) e salvar as evidências geradas em `.evidencias/`, conforme `rules/testes-interface-agent-browser.md`.
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@ Quando o comando for executado:
|
|||
- Preenche:
|
||||
- Frontmatter com `id: AAAA-MM-DD-HH-mm-<slug>`, `data-criacao: "AAAA-MM-DD HH:mm"`, `status: pendente` e tags do domínio.
|
||||
- Objetivo & Contexto (visão funcional).
|
||||
- Diagnóstico Técnico & Evidências (repro steps, arquivos mapeados e **Raio de Impacto & Dependências via Graphify**).
|
||||
- Diagnóstico Técnico & Evidências (repro steps, evidências em `.evidencias/`, arquivos mapeados e **Raio de Impacto & Dependências via Graphify**).
|
||||
- Critérios de Aceite (Definition of Done).
|
||||
- Especificação Técnica passo a passo para orientar o desenvolvedor.
|
||||
- Plano de Verificação & Testes.
|
||||
|
|
@ -101,7 +101,7 @@ O Orquestrador divide as tarefas entre os especialistas:
|
|||
- **`@front`**: Implementa telas Vue 3, composables e formulários consumindo `*-comuns`.
|
||||
- **`@ux`**: Aplica as Heurísticas de Nielsen (visibilidade de loading/erro, feedback imediato).
|
||||
- **`@refatorar`**: Governança de Código Limpo (limite estrito de 250 linhas, Dispatch Tables).
|
||||
- **`@testes`**: Roda `typecheck`, `biome check` e validação visual via `agent-browser --session <modulo>_<contexto?> --headed`.
|
||||
- **`@testes`**: Roda `typecheck`, `biome check` e validação visual via `agent-browser --session <modulo>_<contexto?> --headed` (salvando evidências obrigatoriamente em `.evidencias/`).
|
||||
- **`@documentacao`**: Documenta a memória da sessão (Pilar 6) e regras de negócio.
|
||||
|
||||
### 3. Modos de Invocação
|
||||
|
|
@ -120,7 +120,7 @@ Ao confirmar que a implementação está verde e validada:
|
|||
- `status: executado`
|
||||
- `data-execucao: "AAAA-MM-DD HH:mm"`
|
||||
- `executor: "Orquestrador /goal + Multiagentes (@back, @front, @ux, @refatorar, @testes, @documentacao)"`
|
||||
- Preenche a Seção 6 (`Histórico de Execução`) com o resumo das modificações feitas e evidências de validação.
|
||||
- Preenche a Seção 6 (`Histórico de Execução`) com o resumo das modificações feitas e evidências de validação salvas em `.evidencias/`.
|
||||
|
||||
2. **Movimentação do Arquivo:**
|
||||
- Move o arquivo preservando o nome original:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue