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
3
.gitignore
vendored
3
.gitignore
vendored
|
|
@ -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/
|
||||||
|
|
|
||||||
|
|
@ -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
2
README
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
1
TOOLS
|
|
@ -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`
|
||||||
|
|
|
||||||
1
TOOLS.md
1
TOOLS.md
|
|
@ -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
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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`.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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`.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
|
||||||
|
|
@ -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):**
|
||||||
|
|
|
||||||
|
|
@ -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`.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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.
|
||||||
|
|
|
||||||
|
|
@ -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`.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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:
|
||||||
|
|
|
||||||
|
|
@ -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": {
|
||||||
|
|
|
||||||
|
|
@ -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`.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
|
||||||
|
|
@ -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"
|
||||||
|
|
|
||||||
|
|
@ -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):**
|
||||||
|
|
|
||||||
|
|
@ -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`.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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.
|
||||||
|
|
|
||||||
|
|
@ -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`.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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 \
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue