chore(agent): padronizar salvamento obrigatorio de evidencias de testes em .evidencias

This commit is contained in:
Luiz Silva 2026-10-30 11:02:09 -03:00
parent 51261563a4
commit 2e6db7dda6
30 changed files with 91 additions and 69 deletions

3
.gitignore vendored
View file

@ -14,7 +14,8 @@ node_modules/
.idea/ .idea/
*.swp *.swp
# Graphify Knowledge Graph # Graphify Knowledge Graph & Evidências de Testes
.graphify/ .graphify/
.engram/ .engram/
graphify-out/ graphify-out/
.evidencias/

View file

@ -46,7 +46,7 @@ executor: null
### Passos para Reproduzir (Repro Steps) / Evidência Visual ### Passos para Reproduzir (Repro Steps) / Evidência Visual
1. <Passo 1> 1. <Passo 1>
2. <Passo 2> 2. <Passo 2>
3. <Evidência: link para screenshot em evidencias/ ou anotação do tester> 3. <Evidência: link para screenshot em .evidencias/ ou anotação do tester>
### Análise de Causa Raiz & Arquivos Mapeados ### Análise de Causa Raiz & Arquivos Mapeados
<Diagnóstico técnico preliminar apontando causas prováveis no código> <Diagnóstico técnico preliminar apontando causas prováveis no código>
@ -100,7 +100,7 @@ executor: null
1. Abrir aplicação: `agent-browser --session <modulo-id>_<contexto?> open --headed <url>` 1. Abrir aplicação: `agent-browser --session <modulo-id>_<contexto?> open --headed <url>`
2. Mapear interações: `agent-browser --session <modulo-id>_<contexto?> snapshot -i` 2. Mapear interações: `agent-browser --session <modulo-id>_<contexto?> snapshot -i`
3. Executar ações: `agent-browser --session <modulo-id>_<contexto?> fill @ref "..." && agent-browser --session <modulo-id>_<contexto?> click @ref` 3. Executar ações: `agent-browser --session <modulo-id>_<contexto?> fill @ref "..." && agent-browser --session <modulo-id>_<contexto?> click @ref`
4. Capturar evidência: `agent-browser --session <modulo-id>_<contexto?> screenshot evidencias/<slug>.png` 4. Capturar evidência em `.evidencias/`: `mkdir -p .evidencias && agent-browser --session <modulo-id>_<contexto?> screenshot .evidencias/<slug>.png`
5. Encerrar: `agent-browser --session <modulo-id>_<contexto?> close` 5. Encerrar: `agent-browser --session <modulo-id>_<contexto?> close`
--- ---
@ -113,5 +113,5 @@ executor: null
- `<caminho/arquivo>` - `<caminho/arquivo>`
- **Resumo da Solução Implementada:** - **Resumo da Solução Implementada:**
- <Descrição das mudanças realizadas e desafios superados> - <Descrição das mudanças realizadas e desafios superados>
- **Evidências de Teste / Screenshots:** - **Evidências de Teste / Screenshots (`.evidencias/`):**
- <Links ou descrições dos testes executados com sucesso> - <Links para as evidências salvas em `.evidencias/` e descrições dos testes executados com sucesso>

2
README
View file

@ -29,6 +29,7 @@ O repositório `.agent` fornece a estrutura genérica de inteligência (regras u
├── PLANOS/ ← Fila de Planos Técnicos (Tester ➔ Dev): ├── PLANOS/ ← Fila de Planos Técnicos (Tester ➔ Dev):
│ ├── pendente/ ← Planos criados por testers aguardando dev (/plano <instrução>) │ ├── pendente/ ← Planos criados por testers aguardando dev (/plano <instrução>)
│ └── executado/ ← Planos implementados, testados e arquivados (/plano.executar <slug>) │ └── executado/ ← Planos implementados, testados e arquivados (/plano.executar <slug>)
├── .evidencias/ ← Pasta obrigatória para evidências geradas pelos testes automatizados (screenshots, logs, traces)
├── .agent/ ← Polimórfico: Submódulo genérico compartilhado ├── .agent/ ← Polimórfico: Submódulo genérico compartilhado
│ ├── DOCUMENTACAO/ ← Hub DDD: Manifesto e templates padronizados │ ├── DOCUMENTACAO/ ← Hub DDD: Manifesto e templates padronizados
│ ├── global/ ← Rules, workflows e skills globais │ ├── global/ ← Rules, workflows e skills globais
@ -50,6 +51,7 @@ memorias-ia/ ← armazenamento de memórias das ações d
PLANOS/ ← fila de planos técnicos de implementação (Tester ➔ Dev) PLANOS/ ← fila de planos técnicos de implementação (Tester ➔ Dev)
├── pendente/ ← gerados via /plano pelo tester em reviews ├── pendente/ ← gerados via /plano pelo tester em reviews
└── executado/ ← arquivados após implementação pelo dev └── executado/ ← arquivados após implementação pelo dev
.evidencias/ ← evidências geradas pelos testes automatizados (screenshots, capturas E2E, relatórios)
.agent/ ← raiz do repositório de agentes (submódulo) .agent/ ← raiz do repositório de agentes (submódulo)
├── DOCUMENTACAO/ ← hub DDD — matriz canônica dos 6 pilares ├── DOCUMENTACAO/ ← hub DDD — matriz canônica dos 6 pilares
│ ├── README ← manifesto DDD: princípios e workflow │ ├── README ← manifesto DDD: princípios e workflow

View file

@ -29,6 +29,7 @@ O repositório `.agent` fornece a estrutura genérica de inteligência (regras u
├── PLANOS/ ← Fila de Planos Técnicos (Tester ➔ Dev): ├── PLANOS/ ← Fila de Planos Técnicos (Tester ➔ Dev):
│ ├── pendente/ ← Planos criados por testers aguardando dev (/plano <instrução>) │ ├── pendente/ ← Planos criados por testers aguardando dev (/plano <instrução>)
│ └── executado/ ← Planos implementados, testados e arquivados (/plano.executar <slug>) │ └── executado/ ← Planos implementados, testados e arquivados (/plano.executar <slug>)
├── .evidencias/ ← Pasta obrigatória para evidências geradas pelos testes automatizados (screenshots, logs, traces)
├── .agent/ ← Polimórfico: Submódulo genérico compartilhado ├── .agent/ ← Polimórfico: Submódulo genérico compartilhado
│ ├── DOCUMENTACAO/ ← Hub DDD: Manifesto e templates padronizados │ ├── DOCUMENTACAO/ ← Hub DDD: Manifesto e templates padronizados
│ ├── global/ ← Rules, workflows e skills globais │ ├── global/ ← Rules, workflows e skills globais
@ -50,6 +51,7 @@ memorias-ia/ ← armazenamento de memórias das ações d
PLANOS/ ← fila de planos técnicos de implementação (Tester ➔ Dev) PLANOS/ ← fila de planos técnicos de implementação (Tester ➔ Dev)
├── pendente/ ← gerados via /plano pelo tester em reviews ├── pendente/ ← gerados via /plano pelo tester em reviews
└── executado/ ← arquivados após implementação pelo dev └── executado/ ← arquivados após implementação pelo dev
.evidencias/ ← evidências geradas pelos testes automatizados (screenshots, capturas E2E, relatórios)
.agent/ ← raiz do repositório de agentes (submódulo) .agent/ ← raiz do repositório de agentes (submódulo)
├── DOCUMENTACAO/ ← hub DDD — matriz canônica dos 6 pilares ├── DOCUMENTACAO/ ← hub DDD — matriz canônica dos 6 pilares
│ ├── README ← manifesto DDD: princípios e workflow │ ├── README ← manifesto DDD: princípios e workflow

1
TOOLS
View file

@ -96,6 +96,7 @@ Este documento lista ferramentas de linha de comando (CLI) e utilitários que ot
- **Por que ajuda as IAs:** Utiliza representação compacta da árvore de acessibilidade com referências determinísticas (`@e1`, `@e2`), consumindo 200–400 tokens (até 90% menos tokens que a leitura do DOM completo). Permite executar testes E2E, interagir com telas, validar fluxos e registrar evidências visuais. - **Por que ajuda as IAs:** Utiliza representação compacta da árvore de acessibilidade com referências determinísticas (`@e1`, `@e2`), consumindo 200–400 tokens (até 90% menos tokens que a leitura do DOM completo). Permite executar testes E2E, interagir com telas, validar fluxos e registrar evidências visuais.
- **Modo Visível Obrigatório:** Para que o operador acompanhe cada teste em tempo real na tela, execute sempre com a flag `--headed` (ex: `agent-browser --session <modulo>_<contexto?> open --headed <url>`) ou defina `export AGENT_BROWSER_HEADED=true`. - **Modo Visível Obrigatório:** Para que o operador acompanhe cada teste em tempo real na tela, execute sempre com a flag `--headed` (ex: `agent-browser --session <modulo>_<contexto?> open --headed <url>`) ou defina `export AGENT_BROWSER_HEADED=true`.
- **Isolamento Mandatório de Sessão e Contexto:** Toda execução DEVE acompanhar a flag `--session <modulo>_<contexto?>` (onde `<modulo>` é o `modulo-id` extraído de `memorias-ia/modulo.yml` e `<contexto?>` discrimina acessos como `interno`, `externo`, `cliente`, `anonimo`) ou garantir `export AGENT_BROWSER_SESSION=<modulo>_<contexto?>`. Previne fechamento indevido de processos e contaminação cruzada de cookies e tokens JWT entre diferentes perfis de usuário. - **Isolamento Mandatório de Sessão e Contexto:** Toda execução DEVE acompanhar a flag `--session <modulo>_<contexto?>` (onde `<modulo>` é o `modulo-id` extraído de `memorias-ia/modulo.yml` e `<contexto?>` discrimina acessos como `interno`, `externo`, `cliente`, `anonimo`) ou garantir `export AGENT_BROWSER_SESSION=<modulo>_<contexto?>`. Previne fechamento indevido de processos e contaminação cruzada de cookies e tokens JWT entre diferentes perfis de usuário.
- **Pasta Obrigatória de Evidências (`.evidencias/`):** Todas as evidências geradas pelos testes automatizados (screenshots, capturas anotadas, vídeos, traces, relatórios) devem ser salvas obrigatoriamente na pasta `.evidencias/` na raiz do projeto (`mkdir -p .evidencias`).
- **Instalação:** - **Instalação:**
- Com Bun (padrão): `bun i -g agent-browser && agent-browser install` - Com Bun (padrão): `bun i -g agent-browser && agent-browser install`
- Com NPM: `npm install -g agent-browser && agent-browser install` - Com NPM: `npm install -g agent-browser && agent-browser install`

View file

@ -96,6 +96,7 @@ Este documento lista ferramentas de linha de comando (CLI) e utilitários que ot
- **Por que ajuda as IAs:** Utiliza representação compacta da árvore de acessibilidade com referências determinísticas (`@e1`, `@e2`), consumindo 200–400 tokens (até 90% menos tokens que a leitura do DOM completo). Permite executar testes E2E, interagir com telas, validar fluxos e registrar evidências visuais. - **Por que ajuda as IAs:** Utiliza representação compacta da árvore de acessibilidade com referências determinísticas (`@e1`, `@e2`), consumindo 200–400 tokens (até 90% menos tokens que a leitura do DOM completo). Permite executar testes E2E, interagir com telas, validar fluxos e registrar evidências visuais.
- **Modo Visível Obrigatório:** Para que o operador acompanhe cada teste em tempo real na tela, execute sempre com a flag `--headed` (ex: `agent-browser --session <modulo>_<contexto?> open --headed <url>`) ou defina `export AGENT_BROWSER_HEADED=true`. - **Modo Visível Obrigatório:** Para que o operador acompanhe cada teste em tempo real na tela, execute sempre com a flag `--headed` (ex: `agent-browser --session <modulo>_<contexto?> open --headed <url>`) ou defina `export AGENT_BROWSER_HEADED=true`.
- **Isolamento Mandatório de Sessão e Contexto:** Toda execução DEVE acompanhar a flag `--session <modulo>_<contexto?>` (onde `<modulo>` é o `modulo-id` extraído de `memorias-ia/modulo.yml` e `<contexto?>` discrimina acessos como `interno`, `externo`, `cliente`, `anonimo`) ou garantir `export AGENT_BROWSER_SESSION=<modulo>_<contexto?>`. Previne fechamento indevido de processos e contaminação cruzada de cookies e tokens JWT entre diferentes perfis de usuário. - **Isolamento Mandatório de Sessão e Contexto:** Toda execução DEVE acompanhar a flag `--session <modulo>_<contexto?>` (onde `<modulo>` é o `modulo-id` extraído de `memorias-ia/modulo.yml` e `<contexto?>` discrimina acessos como `interno`, `externo`, `cliente`, `anonimo`) ou garantir `export AGENT_BROWSER_SESSION=<modulo>_<contexto?>`. Previne fechamento indevido de processos e contaminação cruzada de cookies e tokens JWT entre diferentes perfis de usuário.
- **Pasta Obrigatória de Evidências (`.evidencias/`):** Todas as evidências geradas pelos testes automatizados (screenshots, capturas anotadas, vídeos, traces, relatórios) devem ser salvas obrigatoriamente na pasta `.evidencias/` na raiz do projeto (`mkdir -p .evidencias`).
- **Instalação:** - **Instalação:**
- Com Bun (padrão): `bun i -g agent-browser && agent-browser install` - Com Bun (padrão): `bun i -g agent-browser && agent-browser install`
- Com NPM: `npm install -g agent-browser && agent-browser install` - Com NPM: `npm install -g agent-browser && agent-browser install`

File diff suppressed because one or more lines are too long

View file

@ -48,7 +48,7 @@ Toda sua comunicação — incluindo raciocínio interno, reflexões e respostas
9. Criar e manter arquivo `{componente}.ajuda.md` co-localizado (para `modalX.vue` $\rightarrow$ `modalX.ajuda.md`) sempre que houver ajuda contextual (ver `skills/adicionar-ajuda`) 9. Criar e manter arquivo `{componente}.ajuda.md` co-localizado (para `modalX.vue` $\rightarrow$ `modalX.ajuda.md`) sempre que houver ajuda contextual (ver `skills/adicionar-ajuda`)
10. Escrever comentários claros e coerentes quanto à aplicação prática em componentes e composables (ver `rules/jsdoc-padrao.md`) 10. Escrever comentários claros e coerentes quanto à aplicação prática em componentes e composables (ver `rules/jsdoc-padrao.md`)
11. **Garantir Despoluição Visual e Hierarquia (*Refactoring UI*)** — construir telas limpas, sem excesso de bordas/divisores ou *cards* aninhados (*Card-ception*), com pirâmide de ações estrita (apenas 1 botão primário sólido por vista e botões destrutivos discretos fora do modal de confirmação), consolidação de colunas correlatas em tabelas (2 linhas por célula) e espaçamento regido pela Lei da Proximidade (ver `rules/refactoring-ui-hierarquia-despoluicao.md` e `https://adm.paiol.idz.one/estaticos/Refactoring-UI-Steve-Schoger-Adam-Wathan.pdf`) 11. **Garantir Despoluição Visual e Hierarquia (*Refactoring UI*)** — construir telas limpas, sem excesso de bordas/divisores ou *cards* aninhados (*Card-ception*), com pirâmide de ações estrita (apenas 1 botão primário sólido por vista e botões destrutivos discretos fora do modal de confirmação), consolidação de colunas correlatas em tabelas (2 linhas por célula) e espaçamento regido pela Lei da Proximidade (ver `rules/refactoring-ui-hierarquia-despoluicao.md` e `https://adm.paiol.idz.one/estaticos/Refactoring-UI-Steve-Schoger-Adam-Wathan.pdf`)
12. Validar comportamento interativo e renderização visual de telas utilizando `agent-browser`, **sempre em modo visível (`--headed`) e com isolamento por sessão e contexto (`--session <modulo-id>_<contexto?>`)** para acompanhamento do operador e prevenção de mistura de tokens e conflitos de sessão (ver `rules/testes-interface-agent-browser.md`) 12. Validar comportamento interativo e renderização visual de telas utilizando `agent-browser`, **sempre em modo visível (`--headed`), com isolamento por sessão e contexto (`--session <modulo-id>_<contexto?>`) e salvando obrigatoriamente todas as evidências geradas na pasta `.evidencias/`** para acompanhamento do operador e prevenção de mistura de tokens e conflitos de sessão (ver `rules/testes-interface-agent-browser.md`)
## Restrições ## Restrições

View file

@ -48,7 +48,7 @@ Toda sua comunicação — incluindo raciocínio interno, reflexões e respostas
9. Criar e manter arquivo `{componente}.ajuda.md` co-localizado (para `modalX.vue` $\rightarrow$ `modalX.ajuda.md`) sempre que houver ajuda contextual (ver `skills/adicionar-ajuda`) 9. Criar e manter arquivo `{componente}.ajuda.md` co-localizado (para `modalX.vue` $\rightarrow$ `modalX.ajuda.md`) sempre que houver ajuda contextual (ver `skills/adicionar-ajuda`)
10. Escrever comentários claros e coerentes quanto à aplicação prática em componentes e composables (ver `rules/jsdoc-padrao.md`) 10. Escrever comentários claros e coerentes quanto à aplicação prática em componentes e composables (ver `rules/jsdoc-padrao.md`)
11. **Garantir Despoluição Visual e Hierarquia (*Refactoring UI*)** — construir telas limpas, sem excesso de bordas/divisores ou *cards* aninhados (*Card-ception*), com pirâmide de ações estrita (apenas 1 botão primário sólido por vista e botões destrutivos discretos fora do modal de confirmação), consolidação de colunas correlatas em tabelas (2 linhas por célula) e espaçamento regido pela Lei da Proximidade (ver `rules/refactoring-ui-hierarquia-despoluicao.md` e `https://adm.paiol.idz.one/estaticos/Refactoring-UI-Steve-Schoger-Adam-Wathan.pdf`) 11. **Garantir Despoluição Visual e Hierarquia (*Refactoring UI*)** — construir telas limpas, sem excesso de bordas/divisores ou *cards* aninhados (*Card-ception*), com pirâmide de ações estrita (apenas 1 botão primário sólido por vista e botões destrutivos discretos fora do modal de confirmação), consolidação de colunas correlatas em tabelas (2 linhas por célula) e espaçamento regido pela Lei da Proximidade (ver `rules/refactoring-ui-hierarquia-despoluicao.md` e `https://adm.paiol.idz.one/estaticos/Refactoring-UI-Steve-Schoger-Adam-Wathan.pdf`)
12. Validar comportamento interativo e renderização visual de telas utilizando `agent-browser`, **sempre em modo visível (`--headed`) e com isolamento por sessão e contexto (`--session <modulo-id>_<contexto?>`)** para acompanhamento do operador e prevenção de mistura de tokens e conflitos de sessão (ver `rules/testes-interface-agent-browser.md`) 12. Validar comportamento interativo e renderização visual de telas utilizando `agent-browser`, **sempre em modo visível (`--headed`), com isolamento por sessão e contexto (`--session <modulo-id>_<contexto?>`) e salvando obrigatoriamente todas as evidências geradas na pasta `.evidencias/`** para acompanhamento do operador e prevenção de mistura de tokens e conflitos de sessão (ver `rules/testes-interface-agent-browser.md`)
## Restrições ## Restrições

File diff suppressed because one or more lines are too long

View file

@ -45,12 +45,13 @@ Toda sua comunicação — incluindo raciocínio interno, reflexões e respostas
6. Identificar casos extremos e cenários de falha não cobertos 6. Identificar casos extremos e cenários de falha não cobertos
7. Validar schemas Zod contra dados reais de produção 7. Validar schemas Zod contra dados reais de produção
8. Documentar bugs encontrados com passos de reprodução 8. Documentar bugs encontrados com passos de reprodução
9. Realizar testes automatizados de interface (E2E) com `agent-browser`, **sempre em modo visível (`--headed`) e com isolamento por sessão e contexto (`--session <modulo-id>_<contexto?>`)** para que o operador acompanhe cada ação na tela e evitar mistura de tokens/cookies entre acessos interno, cliente, externo e anônimo (ver `rules/testes-interface-agent-browser.md` e skill `testar-interface-agent-browser`) 9. Realizar testes automatizados de interface (E2E) com `agent-browser`, **sempre em modo visível (`--headed`), com isolamento por sessão e contexto (`--session <modulo-id>_<contexto?>`) e salvando obrigatoriamente todas as evidências geradas na pasta `.evidencias/`** para que o operador acompanhe cada ação na tela e evitar mistura de tokens/cookies entre acessos interno, cliente, externo e anônimo (ver `rules/testes-interface-agent-browser.md` e skill `testar-interface-agent-browser`)
10. **Gerar Planos Técnicos via `/plano`** — durante homologações, reviews ou testes, formalizar bugs, melhorias e gaps em planos estruturados em `PLANOS/pendente/` para posterior implementação pelo time de desenvolvimento (ver `global/workflows/plano.md`). 10. **Gerar Planos Técnicos via `/plano`** — durante homologações, reviews ou testes, formalizar bugs, melhorias e gaps em planos estruturados em `PLANOS/pendente/` para posterior implementação pelo time de desenvolvimento (ver `global/workflows/plano.md`).
## Restrições ## Restrições
- NUNCA criar testes sem antes diagnosticar a cobertura existente (ver `global/rules/diagnostico-antes-correcao`) - NUNCA criar testes sem antes diagnosticar a cobertura existente (ver `global/rules/diagnostico-antes-correcao`)
- NUNCA salvar evidências geradas pelos testes automatizados (screenshots, vídeos, traces, logs ou relatórios) fora da pasta `.evidencias/` (proibido salvar solto na raiz, em `/tmp/` ou em `evidencias/` sem ponto)
- NÃO modifica código de produção — apenas cria/modifica arquivos de teste - NÃO modifica código de produção — apenas cria/modifica arquivos de teste
- NÃO aprova uma feature sem cobertura dos cenários críticos - NÃO aprova uma feature sem cobertura dos cenários críticos
- Testes devem ser independentes e repetíveis - Testes devem ser independentes e repetíveis
@ -114,7 +115,7 @@ Artefatos em `.agent-local/` sempre têm prioridade sobre os herdados de `.agent
- [ ] Casos extremos (null, vazio, limite) testados? - [ ] Casos extremos (null, vazio, limite) testados?
- [ ] Erros de rede/banco simulados? - [ ] Erros de rede/banco simulados?
- [ ] Performance em volume realista de dados? - [ ] Performance em volume realista de dados?
- [ ] Teste de interface E2E via `agent-browser` executado em modo visível (`--headed`) e com sessão isolada por contexto (`--session <modulo-id>_<contexto?>`), com screenshots comprobatórios? - [ ] Teste de interface E2E via `agent-browser` executado em modo visível (`--headed`) e com sessão isolada por contexto (`--session <modulo-id>_<contexto?>`), com screenshots e evidências comprobatórias salvos obrigatoriamente na pasta `.evidencias/`?
## Memória Persistente & Identidade do Projeto ## Memória Persistente & Identidade do Projeto

View file

@ -45,12 +45,13 @@ Toda sua comunicação — incluindo raciocínio interno, reflexões e respostas
6. Identificar casos extremos e cenários de falha não cobertos 6. Identificar casos extremos e cenários de falha não cobertos
7. Validar schemas Zod contra dados reais de produção 7. Validar schemas Zod contra dados reais de produção
8. Documentar bugs encontrados com passos de reprodução 8. Documentar bugs encontrados com passos de reprodução
9. Realizar testes automatizados de interface (E2E) com `agent-browser`, **sempre em modo visível (`--headed`) e com isolamento por sessão e contexto (`--session <modulo-id>_<contexto?>`)** para que o operador acompanhe cada ação na tela e evitar mistura de tokens/cookies entre acessos interno, cliente, externo e anônimo (ver `rules/testes-interface-agent-browser.md` e skill `testar-interface-agent-browser`) 9. Realizar testes automatizados de interface (E2E) com `agent-browser`, **sempre em modo visível (`--headed`), com isolamento por sessão e contexto (`--session <modulo-id>_<contexto?>`) e salvando obrigatoriamente todas as evidências geradas na pasta `.evidencias/`** para que o operador acompanhe cada ação na tela e evitar mistura de tokens/cookies entre acessos interno, cliente, externo e anônimo (ver `rules/testes-interface-agent-browser.md` e skill `testar-interface-agent-browser`)
10. **Gerar Planos Técnicos via `/plano`** — durante homologações, reviews ou testes, formalizar bugs, melhorias e gaps em planos estruturados em `PLANOS/pendente/` para posterior implementação pelo time de desenvolvimento (ver `global/workflows/plano.md`). 10. **Gerar Planos Técnicos via `/plano`** — durante homologações, reviews ou testes, formalizar bugs, melhorias e gaps em planos estruturados em `PLANOS/pendente/` para posterior implementação pelo time de desenvolvimento (ver `global/workflows/plano.md`).
## Restrições ## Restrições
- NUNCA criar testes sem antes diagnosticar a cobertura existente (ver `global/rules/diagnostico-antes-correcao`) - NUNCA criar testes sem antes diagnosticar a cobertura existente (ver `global/rules/diagnostico-antes-correcao`)
- NUNCA salvar evidências geradas pelos testes automatizados (screenshots, vídeos, traces, logs ou relatórios) fora da pasta `.evidencias/` (proibido salvar solto na raiz, em `/tmp/` ou em `evidencias/` sem ponto)
- NÃO modifica código de produção — apenas cria/modifica arquivos de teste - NÃO modifica código de produção — apenas cria/modifica arquivos de teste
- NÃO aprova uma feature sem cobertura dos cenários críticos - NÃO aprova uma feature sem cobertura dos cenários críticos
- Testes devem ser independentes e repetíveis - Testes devem ser independentes e repetíveis
@ -114,7 +115,7 @@ Artefatos em `.agent-local/` sempre têm prioridade sobre os herdados de `.agent
- [ ] Casos extremos (null, vazio, limite) testados? - [ ] Casos extremos (null, vazio, limite) testados?
- [ ] Erros de rede/banco simulados? - [ ] Erros de rede/banco simulados?
- [ ] Performance em volume realista de dados? - [ ] Performance em volume realista de dados?
- [ ] Teste de interface E2E via `agent-browser` executado em modo visível (`--headed`) e com sessão isolada por contexto (`--session <modulo-id>_<contexto?>`), com screenshots comprobatórios? - [ ] Teste de interface E2E via `agent-browser` executado em modo visível (`--headed`) e com sessão isolada por contexto (`--session <modulo-id>_<contexto?>`), com screenshots e evidências comprobatórias salvos obrigatoriamente na pasta `.evidencias/`?
## Memória Persistente & Identidade do Projeto ## Memória Persistente & Identidade do Projeto

File diff suppressed because one or more lines are too long

View file

@ -47,7 +47,7 @@ Toda sua comunicação — incluindo raciocínio interno, reflexões e respostas
8. Organizar a hierarquia de informação das telas (3 níveis de cor de texto, 2 faixas de peso `400/500` e `600/700`, títulos contidos `16px–20px` em *Sentence case*) 8. Organizar a hierarquia de informação das telas (3 níveis de cor de texto, 2 faixas de peso `400/500` e `600/700`, títulos contidos `16px–20px` em *Sentence case*)
9. Revisar labels, placeholders, textos de ajuda e acessibilidade textual (`alt` conciso até 125 caracteres sem `"Imagem de..."`, `alt=""` para decorativos e proibição de `text-truncate` sem tooltip/expansão) 9. Revisar labels, placeholders, textos de ajuda e acessibilidade textual (`alt` conciso até 125 caracteres sem `"Imagem de..."`, `alt=""` para decorativos e proibição de `text-truncate` sem tooltip/expansão)
10. Identificar inconsistências de UX entre módulos 10. Identificar inconsistências de UX entre módulos
11. Auditar a usabilidade e inspeção de telas em tempo de execução com `agent-browser`, **sempre em modo visível (`--headed`) e com isolamento por sessão e contexto (`--session <modulo-id>_<contexto?>`)** para que o operador acompanhe a validação visual e evitar mistura de tokens e estados de interface (ver `rules/testes-interface-agent-browser.md`) 11. Auditar a usabilidade e inspeção de telas em tempo de execução com `agent-browser`, **sempre em modo visível (`--headed`), com isolamento por sessão e contexto (`--session <modulo-id>_<contexto?>`) e salvando obrigatoriamente todas as evidências geradas na pasta `.evidencias/`** para que o operador acompanhe a validação visual e evitar mistura de tokens e estados de interface (ver `rules/testes-interface-agent-browser.md`)
## Restrições ## Restrições

View file

@ -47,7 +47,7 @@ Toda sua comunicação — incluindo raciocínio interno, reflexões e respostas
8. Organizar a hierarquia de informação das telas (3 níveis de cor de texto, 2 faixas de peso `400/500` e `600/700`, títulos contidos `16px–20px` em *Sentence case*) 8. Organizar a hierarquia de informação das telas (3 níveis de cor de texto, 2 faixas de peso `400/500` e `600/700`, títulos contidos `16px–20px` em *Sentence case*)
9. Revisar labels, placeholders, textos de ajuda e acessibilidade textual (`alt` conciso até 125 caracteres sem `"Imagem de..."`, `alt=""` para decorativos e proibição de `text-truncate` sem tooltip/expansão) 9. Revisar labels, placeholders, textos de ajuda e acessibilidade textual (`alt` conciso até 125 caracteres sem `"Imagem de..."`, `alt=""` para decorativos e proibição de `text-truncate` sem tooltip/expansão)
10. Identificar inconsistências de UX entre módulos 10. Identificar inconsistências de UX entre módulos
11. Auditar a usabilidade e inspeção de telas em tempo de execução com `agent-browser`, **sempre em modo visível (`--headed`) e com isolamento por sessão e contexto (`--session <modulo-id>_<contexto?>`)** para que o operador acompanhe a validação visual e evitar mistura de tokens e estados de interface (ver `rules/testes-interface-agent-browser.md`) 11. Auditar a usabilidade e inspeção de telas em tempo de execução com `agent-browser`, **sempre em modo visível (`--headed`), com isolamento por sessão e contexto (`--session <modulo-id>_<contexto?>`) e salvando obrigatoriamente todas as evidências geradas na pasta `.evidencias/`** para que o operador acompanhe a validação visual e evitar mistura de tokens e estados de interface (ver `rules/testes-interface-agent-browser.md`)
## Restrições ## Restrições

View file

@ -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. - Inserir links de navegação cruzada e *empty states* guiados entre telas dependentes.
- Garantir que quadros Kanban sejam horizontais e responsivos. - Garantir que quadros Kanban sejam horizontais e responsivos.
5. **Validar Visualmente com `agent-browser`:** 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`.
--- ---

View file

@ -1,10 +1,10 @@
--- ---
type: rule type: rule
name: testes-interface-agent-browser 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 scope: global
trigger: always_on trigger: always_on
updatedAt: "2026-10-08" updatedAt: "2026-10-30"
--- ---
# Regra: Testes Automatizados de Interface e Navegação com agent-browser # 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`)**: 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`. - 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"`). - Executar ações determinísticas referenciando os IDs gerados (`click @e1`, `fill @e2 "texto"`).
5. **Registrar evidências e fechar sessão**: 5. **Registrar evidências obrigatoriamente na pasta `.evidencias/` e fechar sessão**:
- Registrar comprovações visuais com `agent-browser --session <modulo>_<contexto?> screenshot <arquivo.png>`. - 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. - Encerrar graciosamente o navegador com `agent-browser --session <modulo>_<contexto?> close` ao término do fluxo.
6. **Credenciais Canônicas por Contexto (`modulo-acesso`)**: 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.). - 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 # Obter novo snapshot para verificar estado pós-ação
agent-browser --session "${MODULO}_${CONTEXTO}" snapshot -i agent-browser --session "${MODULO}_${CONTEXTO}" snapshot -i
# Capturar evidência gráfica do teste # Garantir pasta .evidencias e capturar evidência gráfica do teste
agent-browser --session "${MODULO}_${CONTEXTO}" screenshot evidencias/teste-login-sucesso.png mkdir -p .evidencias
agent-browser --session "${MODULO}_${CONTEXTO}" screenshot .evidencias/teste-login-sucesso.png
# Verificar erros no console do navegador # Verificar erros no console do navegador
agent-browser --session "${MODULO}_${CONTEXTO}" console 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 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 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 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 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 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`). - **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 ✅ ### Permitido e Recomendado ✅
- Manter sessões persistentes por contexto quando necessário via `--session <modulo>_<contexto> --restore`. - 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. - 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`. - Consultar guias embutidos do próprio binário via `agent-browser skills get core --full` ou `agent-browser skills get dogfood`.
--- ---

View file

@ -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. - 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. - 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. - 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`). | | **`@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. | | **`@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. | | **`@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>/`). | | **`@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 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) ↓ (Loop /goal de auto-correção se houver falhas)
6. [@documentacao] Atualiza memórias-ia/, historico-acoes.md e arquiva o plano 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:** 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)"`. - 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:** 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). - 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):** 3. **Atualizar Grafo de Conhecimento (Graphify):**

View file

@ -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. - **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. - **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). - **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. - **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`. - Salve o arquivo em `./PLANOS/pendente/AAAA-MM-DD-HH-mm-<slug>.md` usando `write_to_file`.

View file

@ -2,8 +2,9 @@
name: testar-interface-agent-browser name: testar-interface-agent-browser
description: > description: >
Executar testes automatizados de interface (E2E), navegação e validação visual 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) 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?>). isolamento mandatório de sessão e contexto (--session <modulo>_<contexto?>) e
salvamento obrigatório das evidências na pasta .evidencias/.
scope: global scope: global
--- ---
@ -125,12 +126,13 @@ agent-browser --session "${MODULO}_${CONTEXTO}" console
agent-browser --session "${MODULO}_${CONTEXTO}" network agent-browser --session "${MODULO}_${CONTEXTO}" network
``` ```
### 6. Registrar Evidência Visual ### 6. Registrar Evidência Visual (Pasta Obrigatória `.evidencias/`)
Capture um screenshot para comprovação do resultado do teste: Capture um screenshot na pasta `.evidencias/` para comprovação do resultado do teste (é proibido salvar evidências fora de `.evidencias/`):
```bash ```bash
# Screenshot padrão ou anotado com identificadores visuais # Garantir a pasta .evidencias/ e capturar screenshot padrão ou anotado
agent-browser --session "${MODULO}_${CONTEXTO}" screenshot evidencias/resultado-sucesso.png mkdir -p .evidencias
# agent-browser --session "${MODULO}_${CONTEXTO}" screenshot --annotate evidencias/resultado-anotado.png 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 ### 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>"` | | **Aguardar seletor** | `agent-browser --session <modulo>_<contexto?> wait --selector "<seletor>"` |
| **Inspecionar console** | `agent-browser --session <modulo>_<contexto?> console` | | **Inspecionar console** | `agent-browser --session <modulo>_<contexto?> console` |
| **Inspecionar rede** | `agent-browser --session <modulo>_<contexto?> network` | | **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` | | **Auditoria a11y (WCAG)** | `agent-browser --session <modulo>_<contexto?> a11y` |
| **Fechar sessão** | `agent-browser --session <modulo>_<contexto?> close` | | **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`. 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. 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.

View file

@ -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. - Inserir links de navegação cruzada e *empty states* guiados entre telas dependentes.
- Garantir que quadros Kanban sejam horizontais e responsivos. - Garantir que quadros Kanban sejam horizontais e responsivos.
5. **Validar Visualmente com `agent-browser`:** 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`.
--- ---

View file

@ -69,7 +69,7 @@ Quando o comando for executado:
- Preenche: - Preenche:
- Frontmatter com `id: AAAA-MM-DD-HH-mm-<slug>`, `data-criacao: "AAAA-MM-DD HH:mm"`, `status: pendente` e tags do domínio. - 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). - 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). - Critérios de Aceite (Definition of Done).
- Especificação Técnica passo a passo para orientar o desenvolvedor. - Especificação Técnica passo a passo para orientar o desenvolvedor.
- Plano de Verificação & Testes. - 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`. - **`@front`**: Implementa telas Vue 3, composables e formulários consumindo `*-comuns`.
- **`@ux`**: Aplica as Heurísticas de Nielsen (visibilidade de loading/erro, feedback imediato). - **`@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). - **`@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. - **`@documentacao`**: Documenta a memória da sessão (Pilar 6) e regras de negócio.
### 3. Modos de Invocação ### 3. Modos de Invocação
@ -120,7 +120,7 @@ Ao confirmar que a implementação está verde e validada:
- `status: executado` - `status: executado`
- `data-execucao: "AAAA-MM-DD HH:mm"` - `data-execucao: "AAAA-MM-DD HH:mm"`
- `executor: "Orquestrador /goal + Multiagentes (@back, @front, @ux, @refatorar, @testes, @documentacao)"` - `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:** 2. **Movimentação do Arquivo:**
- Move o arquivo preservando o nome original: - Move o arquivo preservando o nome original:

View file

@ -1,6 +1,6 @@
{ {
"versao": "3.4.0", "versao": "3.4.1",
"atualizadoEm": "2026-10-26", "atualizadoEm": "2026-10-30",
"projeto": "agnostico-submodulo", "projeto": "agnostico-submodulo",
"identidade": "memorias-ia/modulo.yml", "identidade": "memorias-ia/modulo.yml",
"artefatos": { "artefatos": {

View file

@ -1,10 +1,10 @@
--- ---
type: rule type: rule
name: testes-interface-agent-browser 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 scope: global
trigger: always_on trigger: always_on
updatedAt: "2026-10-08" updatedAt: "2026-10-30"
--- ---
# Regra: Testes Automatizados de Interface e Navegação com agent-browser # 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`)**: 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`. - 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"`). - Executar ações determinísticas referenciando os IDs gerados (`click @e1`, `fill @e2 "texto"`).
5. **Registrar evidências e fechar sessão**: 5. **Registrar evidências obrigatoriamente na pasta `.evidencias/` e fechar sessão**:
- Registrar comprovações visuais com `agent-browser --session <modulo>_<contexto?> screenshot <arquivo.png>`. - 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. - Encerrar graciosamente o navegador com `agent-browser --session <modulo>_<contexto?> close` ao término do fluxo.
6. **Credenciais Canônicas por Contexto (`modulo-acesso`)**: 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.). - 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 # Obter novo snapshot para verificar estado pós-ação
agent-browser --session "${MODULO}_${CONTEXTO}" snapshot -i agent-browser --session "${MODULO}_${CONTEXTO}" snapshot -i
# Capturar evidência gráfica do teste # Garantir pasta .evidencias e capturar evidência gráfica do teste
agent-browser --session "${MODULO}_${CONTEXTO}" screenshot evidencias/teste-login-sucesso.png mkdir -p .evidencias
agent-browser --session "${MODULO}_${CONTEXTO}" screenshot .evidencias/teste-login-sucesso.png
# Verificar erros no console do navegador # Verificar erros no console do navegador
agent-browser --session "${MODULO}_${CONTEXTO}" console 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 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 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 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 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 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`). - **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 ✅ ### Permitido e Recomendado ✅
- Manter sessões persistentes por contexto quando necessário via `--session <modulo>_<contexto> --restore`. - 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. - 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`. - Consultar guias embutidos do próprio binário via `agent-browser skills get core --full` ou `agent-browser skills get dogfood`.
--- ---

View file

@ -45,7 +45,7 @@ garantir_gitignore() {
adicionou_cabecalho=1 adicionou_cabecalho=1
fi fi
for entrada in ".graphify/" ".engram/" "graphify-out/"; do for entrada in ".graphify/" ".engram/" "graphify-out/" ".evidencias/"; do
if ! grep -qxF "$entrada" "$gitignore_file" 2>/dev/null; then if ! grep -qxF "$entrada" "$gitignore_file" 2>/dev/null; then
if [ "$adicionou_cabecalho" -eq 0 ]; then if [ "$adicionou_cabecalho" -eq 0 ]; then
printf "\n# Graphify Knowledge Graph\n" >> "$gitignore_file" printf "\n# Graphify Knowledge Graph\n" >> "$gitignore_file"

View file

@ -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. - 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. - 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. - 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`). | | **`@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. | | **`@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. | | **`@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>/`). | | **`@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 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) ↓ (Loop /goal de auto-correção se houver falhas)
6. [@documentacao] Atualiza memórias-ia/, historico-acoes.md e arquiva o plano 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:** 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)"`. - 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:** 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). - 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):** 3. **Atualizar Grafo de Conhecimento (Graphify):**

View file

@ -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. - **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. - **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). - **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. - **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`. - Salve o arquivo em `./PLANOS/pendente/AAAA-MM-DD-HH-mm-<slug>.md` usando `write_to_file`.

View file

@ -2,8 +2,9 @@
name: testar-interface-agent-browser name: testar-interface-agent-browser
description: > description: >
Executar testes automatizados de interface (E2E), navegação e validação visual 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) 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?>). isolamento mandatório de sessão e contexto (--session <modulo>_<contexto?>) e
salvamento obrigatório das evidências na pasta .evidencias/.
scope: global scope: global
--- ---
@ -125,12 +126,13 @@ agent-browser --session "${MODULO}_${CONTEXTO}" console
agent-browser --session "${MODULO}_${CONTEXTO}" network agent-browser --session "${MODULO}_${CONTEXTO}" network
``` ```
### 6. Registrar Evidência Visual ### 6. Registrar Evidência Visual (Pasta Obrigatória `.evidencias/`)
Capture um screenshot para comprovação do resultado do teste: Capture um screenshot na pasta `.evidencias/` para comprovação do resultado do teste (é proibido salvar evidências fora de `.evidencias/`):
```bash ```bash
# Screenshot padrão ou anotado com identificadores visuais # Garantir a pasta .evidencias/ e capturar screenshot padrão ou anotado
agent-browser --session "${MODULO}_${CONTEXTO}" screenshot evidencias/resultado-sucesso.png mkdir -p .evidencias
# agent-browser --session "${MODULO}_${CONTEXTO}" screenshot --annotate evidencias/resultado-anotado.png 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 ### 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>"` | | **Aguardar seletor** | `agent-browser --session <modulo>_<contexto?> wait --selector "<seletor>"` |
| **Inspecionar console** | `agent-browser --session <modulo>_<contexto?> console` | | **Inspecionar console** | `agent-browser --session <modulo>_<contexto?> console` |
| **Inspecionar rede** | `agent-browser --session <modulo>_<contexto?> network` | | **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` | | **Auditoria a11y (WCAG)** | `agent-browser --session <modulo>_<contexto?> a11y` |
| **Fechar sessão** | `agent-browser --session <modulo>_<contexto?> close` | | **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`. 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. 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.

View file

@ -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. - Inserir links de navegação cruzada e *empty states* guiados entre telas dependentes.
- Garantir que quadros Kanban sejam horizontais e responsivos. - Garantir que quadros Kanban sejam horizontais e responsivos.
5. **Validar Visualmente com `agent-browser`:** 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`.
--- ---

View file

@ -20,6 +20,7 @@ RESULTADO=$(
-name .output -o \ -name .output -o \
-name .nuxt -o \ -name .nuxt -o \
-name .cache -o \ -name .cache -o \
-name .evidencias -o \
-name build \ -name build \
\) -prune \ \) -prune \
-o \ -o \