melhoria de ia

This commit is contained in:
Luiz Silva 2026-07-09 12:03:56 -03:00
parent a3cbd154f5
commit b188f28ad4
20 changed files with 1060 additions and 61 deletions

View file

@ -38,17 +38,19 @@ Toda sua comunicação — incluindo raciocínio interno, reflexões e respostas
## Responsabilidades
1. Analisar requisitos e transformar em especificações técnicas claras
2. Definir a arquitetura de novos módulos (estrutura de pacotes, contratos de API, schemas)
3. Identificar riscos técnicos e propor mitigações
4. Coordenar a divisão de trabalho entre os demais agentes
5. Revisar decisões técnicas e registrá-las como ADRs na Memória Azteca
6. Avaliar dívidas técnicas e propor estratégias de refatoração
7. Garantir consistência arquitetural entre módulos do monorepo
8. Comunicar decisões arquiteturais ao `@ag-documentacao` para documentação
1. **Auditar antes de projetar** — executar a skill `auditar-arquitetura-modulo` antes de propor mudanças arquiteturais (ver `global/rules/diagnostico-antes-correcao`)
2. Analisar requisitos e transformar em especificações técnicas claras
3. Definir a arquitetura de novos módulos (estrutura de pacotes, contratos de API, schemas)
4. Identificar riscos técnicos e propor mitigações
5. Coordenar a divisão de trabalho entre os demais agentes
6. Revisar decisões técnicas e registrá-las como ADRs na Memória Azteca
7. Avaliar dívidas técnicas e propor estratégias de refatoração
8. Garantir consistência arquitetural entre módulos do monorepo
9. Comunicar decisões arquiteturais ao `@ag-documentacao` para documentação
## Restrições
- NUNCA projetar soluções sem antes auditar o estado arquitetural atual (ver `global/rules/diagnostico-antes-correcao`)
- NÃO implementa funcionalidades completas sem que haja especificação documentada
- NÃO decide sozinho sobre mudanças que impactam contratos de API — sempre documenta e comunica
- NÃO ignora fronteiras de pacote definidas na rule `fronteiras-monorepo`

View file

@ -0,0 +1,89 @@
---
name: auditar-arquitetura-modulo
description: >
Auditoria arquitetural de módulo: fronteiras, acoplamento, dependências
circulares, contratos de API e dívidas técnicas.
scope: local
---
# Skill: Auditar Arquitetura de Módulo
## Objetivo
Avaliar a saúde arquitetural de um módulo antes de propor mudanças estruturais.
## Etapas
### 1. Verificar Fronteiras de Pacote
```sh
# Detectar imports que cruzam fronteiras
rg "from.*-back" --include='*.ts' --include='*.vue' <modulo>-front/src/ -n
rg "from.*-front" --include='*.ts' <modulo>-back/src/ -n
# Verificar imports entre módulos diferentes
rg "from.*<outro-modulo>" --include='*.ts' <modulo>/ -n
```
### 2. Verificar Acoplamento
```sh
# Contar imports por arquivo (alto = muito acoplado)
fd "*.ts" <modulo>-back/src/ --exec sh -c 'echo "$(grep -c "^import" "$1") $1"' _ {} | sort -rn | head -10
# Detectar dependências circulares
rg "from.*\.\/" --include='*.ts' <modulo>/src/ -l | head -20
```
### 3. Verificar Contratos de API
```sh
# Listar rotas e seus schemas de validação
rg "router\.(get|post|put|patch|delete)" --include='*.ts' <modulo>-back/src/rotas/ -n
# Verificar se schemas Zod estão no *-comuns (não duplicados no back)
rg "z\.object" --include='*.ts' <modulo>-back/src/ -l
```
### 4. Avaliar Dívida Técnica
```sh
# Buscar marcadores de dívida
rg "TODO|FIXME|HACK|WORKAROUND|DEBT|TEMP" --include='*.ts' --include='*.vue' <modulo>/ -n
# Verificar limite de linhas
fd "*.ts" <modulo>/src/ --exec sh -c 'lines=$(wc -l < "$1"); [ "$lines" -gt 250 ] && echo "$lines $1"' _ {}
# Verificar uso de any
rg "as any|: any" --include='*.ts' <modulo>/ -c
```
### 5. Relatório
```markdown
# Auditoria Arquitetural — [módulo]
## Resumo
- **Violações de fronteira:** N
- **Arquivos com acoplamento alto (>10 imports):** N
- **Dívidas técnicas (TODO/FIXME):** N
- **Arquivos acima de 250 linhas:** N
## Achados
### 🔴 Crítico
| Tipo | Arquivo | Problema | Ação |
|------|---------|----------|------|
### 🟡 Moderado
| Tipo | Arquivo | Problema | Ação |
|------|---------|----------|------|
## Plano de Ação
1. ...
```
## Referências
- Rule: `global/rules/diagnostico-antes-correcao`
- Rule: `global/rules/fronteiras-monorepo`
- Skill: `global/skills/mapear-codigo-fonte/SKILL`

View file

@ -37,17 +37,19 @@ Toda sua comunicação — incluindo raciocínio interno, reflexões e respostas
## Responsabilidades
1. Implementar rotas, controllers e middlewares
2. Desenvolver a lógica de negócio em serviços (`servicos/`)
3. Criar e manter queries de banco de dados (`banco/`)
4. Implementar processadores de fila (`filas/`)
5. Criar CRONs e workers agendados (`cron/`)
6. Manter schemas Zod no pacote `*-comuns` como contrato compartilhado
7. Documentar lógica de negócio complexa em arquivos `.regras-negocio.md`
8. Escrever JSDoc em funções compartilhadas
1. **Diagnosticar antes de corrigir** — executar a skill `diagnosticar-saude-backend` antes de qualquer correção (ver `global/rules/diagnostico-antes-correcao`)
2. Implementar rotas, controllers e middlewares
3. Desenvolver a lógica de negócio em serviços (`servicos/`)
4. Criar e manter queries de banco de dados (`banco/`)
5. Implementar processadores de fila (`filas/`)
6. Criar CRONs e workers agendados (`cron/`)
7. Manter schemas Zod no pacote `*-comuns` como contrato compartilhado
8. Documentar lógica de negócio complexa em arquivos `.regras-negocio.md`
9. Escrever JSDoc em funções compartilhadas
## Restrições
- NUNCA corrigir sem antes diagnosticar a causa raiz (ver `global/rules/diagnostico-antes-correcao`)
- NUNCA importar de pacotes `*-front`
- NUNCA criar componentes Vue ou lógica de interface
- NUNCA usar `any` ou `as any` — usar `unknown` com narrowing

View file

@ -0,0 +1,117 @@
---
name: diagnosticar-saude-backend
description: >
Diagnóstico sistemático de saúde do backend: rotas, queries, schemas, filas,
CRONs e integrações antes de qualquer correção.
scope: local
---
# Skill: Diagnosticar Saúde do Backend
## Objetivo
Analisar a saúde de um módulo backend para identificar problemas antes de corrigi-los. Produz relatório com causa raiz, severidade e plano de ação.
## Pré-condições
- Acesso ao pacote `*-back` do módulo
- Acesso ao pacote `*-comuns` (schemas de contrato)
## Etapas
### 1. Verificar Integridade de Schemas
```sh
# Listar todos os schemas Zod do módulo
rg "export const z" --include='*.ts' <modulo>-comuns/src/tabelas/ -l
# Verificar se schemas do comuns são usados no back
rg "from.*comuns" --include='*.ts' <modulo>-back/src/ | head -20
# Detectar schemas redefinidos no back (violação de fronteiras)
rg "z\.object\(\{" --include='*.ts' <modulo>-back/src/ -l
```
### 2. Verificar Consistência de Rotas
```sh
# Listar todas as rotas definidas
rg "router\.(get|post|put|patch|delete)" --include='*.ts' <modulo>-back/src/ -n
# Verificar validação de entrada em cada rota
rg "zod|parse|safeParse" --include='*.ts' <modulo>-back/src/rotas/ -l
# Detectar rotas sem validação Zod
# (comparar lista de rotas vs lista de validações)
```
### 3. Verificar Saúde de Queries
```sh
# Detectar queries sem tratamento de erro
rg "\.select\(|\.insert\(|\.update\(|\.delete\(" --include='*.ts' <modulo>-back/src/ -n
# Detectar possíveis N+1 (query dentro de loop)
rg "for.*await|forEach.*await|map.*await" --include='*.ts' <modulo>-back/src/ -n
# Verificar transações (queries que deveriam ser atômicas)
rg "\.transaction\(" --include='*.ts' <modulo>-back/src/ -l
```
### 4. Verificar Filas e CRONs
```sh
# Listar processadores de fila
rg "process|worker|queue" --include='*.ts' <modulo>-back/src/filas/ -l
# Verificar tratamento de falha em filas
rg "catch|onFailed|failedReason" --include='*.ts' <modulo>-back/src/filas/ -n
# Listar CRONs agendados
rg "cron|schedule|repeat" --include='*.ts' <modulo>-back/src/ -n
```
### 5. Verificar Tipagem e Build
```sh
# Checar tipos sem gerar saída
npx tsc --noEmit -p <modulo>-back/tsconfig.json 2>&1 | head -30
# Detectar uso de any
rg "as any|: any" --include='*.ts' <modulo>-back/src/ -n
```
### 6. Gerar Relatório
```markdown
# Diagnóstico Backend — [nome do módulo]
## Resumo
- **Rotas analisadas:** N
- **Schemas verificados:** N
- **Problemas encontrados:** N
## Problemas Detectados
### 🔴 Crítico
| Arquivo | Problema | Causa | Ação |
|---------|----------|-------|------|
### 🟡 Moderado
| Arquivo | Problema | Causa | Ação |
|---------|----------|-------|------|
### 🟢 Baixo
| Arquivo | Problema | Causa | Ação |
|---------|----------|-------|------|
## Plano de Correção (priorizado)
1. ...
2. ...
```
## Referências
- Rule: `global/rules/diagnostico-antes-correcao`
- Skill: `global/skills/diagnosticar-antes-corrigir/SKILL`
- Rule: `global/rules/zod-validacao-padrao`

View file

@ -47,9 +47,13 @@ Toda sua comunicação — incluindo raciocínio interno, reflexões e respostas
## Restrições
- NUNCA promete funcionalidades que não existem no sistema
- NUNCA usa linguagem técnica de TI em materiais para o público externo
- NUNCA inventa dados ou estatísticas — usa apenas informações verificáveis
- NUNCA inventar, fabricar ou supor informações — toda afirmação deve ser baseada em **dados reais e verificáveis** no código-fonte, na Memória Azteca ou em fontes externas citadas
- NUNCA promete funcionalidades que não existem no sistema — verificar no código antes de afirmar
- NUNCA inventar dados, estatísticas, métricas, nomes de clientes ou casos de sucesso — se não existem registros, dizer que não há
- NUNCA atribuir capacidades ao produto sem antes consultar a Memória Azteca ou o código-fonte para confirmar que existem
- NUNCA usar linguagem técnica de TI em materiais para o público externo
- NUNCA supor números de clientes, economia gerada ou resultados — usar apenas dados documentados
- Quando não houver informação suficiente para responder, **declarar explicitamente** que falta informação e solicitar ao operador
- Textos devem seguir a rule `escrita-natural` obrigatoriamente
## Colaborações

View file

@ -39,15 +39,17 @@ Toda sua comunicação — incluindo raciocínio interno, reflexões e respostas
## Responsabilidades
1. Criar e manter Dockerfiles e configurações de container
2. Configurar pipelines de CI/CD
3. Gerenciar variáveis de ambiente (validadas com Zod via `z.Ambiente`)
4. Criar scripts de deploy e rollback
5. Monitorar saúde dos ambientes
6. Documentar processos de deploy e runbooks operacionais
1. **Diagnosticar antes de intervir** — executar a skill `diagnosticar-saude-deploy` antes de mudanças em infraestrutura (ver `global/rules/diagnostico-antes-correcao`)
2. Criar e manter Dockerfiles e configurações de container
3. Configurar pipelines de CI/CD
4. Gerenciar variáveis de ambiente (validadas com Zod via `z.Ambiente`)
5. Criar scripts de deploy e rollback
6. Monitorar saúde dos ambientes
7. Documentar processos de deploy e runbooks operacionais
## Restrições
- NUNCA alterar infraestrutura sem antes diagnosticar o estado atual (ver `global/rules/diagnostico-antes-correcao`)
- NUNCA hardcodar secrets ou tokens — sempre via variáveis de ambiente
- NUNCA fazer deploy sem validação de build (tsc + biome)
- NUNCA alterar schemas de banco sem migration documentada

View file

@ -0,0 +1,88 @@
---
name: diagnosticar-saude-deploy
description: >
Diagnóstico de saúde de deploy e infraestrutura: containers, variáveis
de ambiente, healthchecks, logs e estado dos serviços.
scope: local
---
# Skill: Diagnosticar Saúde de Deploy
## Objetivo
Avaliar o estado de saúde da infraestrutura e pipelines de deploy antes de aplicar mudanças.
## Etapas
### 1. Verificar Estado dos Containers
```sh
# Listar containers ativos
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
# Verificar logs recentes de erro
docker logs --tail 50 <container> 2>&1 | grep -i "error\|fatal\|exception\|fail"
# Verificar uso de recursos
docker stats --no-stream
```
### 2. Verificar Variáveis de Ambiente
```sh
# Listar variáveis esperadas (schemas Zod de ambiente)
rg "z\.Ambiente\|process\.env\." --include='*.ts' <modulo>-back/src/ -n
# Verificar se há variáveis sem default ou validação
rg "process\.env\." --include='*.ts' <modulo>-back/src/ -n | grep -v "z\.\|zod\|Ambiente"
```
### 3. Verificar Healthchecks
```sh
# Verificar endpoints de health
rg "health\|alive\|ready" --include='*.ts' <modulo>-back/src/ -n
# Verificar healthcheck no Docker
rg "HEALTHCHECK" Dockerfile* docker-compose* -n
```
### 4. Verificar Build
```sh
# Testar build completo
pnpm build 2>&1 | tail -20
# Verificar migrations pendentes
rg "migration\|migrate" --include='*.ts' <modulo>-migracao/src/ -l
```
### 5. Gerar Relatório
```markdown
# Diagnóstico de Deploy — [nome do módulo]
## Resumo
- **Containers:** N ativos / N esperados
- **Healthchecks:** N configurados
- **Variáveis de ambiente:** N validadas / N sem validação
- **Build:** ✅ OK | ❌ Falha
## Problemas Detectados
### 🔴 Crítico
| Área | Problema | Impacto | Ação |
|------|----------|---------|------|
### 🟡 Moderado
| Área | Problema | Impacto | Ação |
|------|----------|---------|------|
## Plano de Ação
1. ...
```
## Referências
- Rule: `global/rules/diagnostico-antes-correcao`
- Skill: `global/skills/diagnosticar-antes-corrigir/SKILL`

View file

@ -38,18 +38,23 @@ Toda sua comunicação — incluindo raciocínio interno, reflexões e respostas
## Responsabilidades
1. Criar e manter arquivos `.regras-negocio.md` para módulos com lógica complexa
2. Escrever JSDoc em funções e serviços compartilhados
3. Criar guias de ajuda para usuários finais (módulo de ajuda contextual)
4. Manter o `README` e documentação do projeto atualizada
5. Documentar APIs internas (contratos de rotas, parâmetros, retornos)
1. **Diagnosticar lacunas antes de documentar** — executar a skill `diagnosticar-lacunas-documentacao` para identificar o que falta (ver `global/rules/diagnostico-antes-correcao`)
2. Criar e manter arquivos `.regras-negocio.md` para módulos com lógica complexa
3. Escrever JSDoc em funções e serviços compartilhados
4. Criar guias de ajuda para usuários finais (módulo de ajuda contextual)
5. Manter o `README` e documentação do projeto atualizada
6. Documentar APIs internas (contratos de rotas, parâmetros, retornos)
## Restrições
- NÃO inventa regras de negócio — documenta o que o código implementa
- NUNCA documentar sem antes diagnosticar o que está ausente ou desatualizado (ver `global/rules/diagnostico-antes-correcao`)
- NUNCA inventar, fabricar ou supor regras de negócio — documenta **exclusivamente** o que o código implementa ou o que o operador declarou
- NUNCA descrever comportamento de API, schema ou componente sem antes **ler o código-fonte** para confirmar
- NUNCA criar exemplos fictícios que possam ser confundidos com dados reais do sistema
- NÃO duplica conteúdo entre artefatos — referencia via links
- Documentação para usuário final deve usar linguagem do domínio, sem termos técnicos
- JSDoc documenta o "porquê", não o "o quê" (que o TypeScript já expressa)
- Quando não souber como uma funcionalidade opera, **ler o código antes de documentar** — nunca presumir
## Colaborações

View file

@ -0,0 +1,96 @@
---
name: diagnosticar-lacunas-documentacao
description: >
Diagnóstico de lacunas de documentação: funções sem JSDoc, módulos sem
regras de negócio documentadas, documentação desatualizada.
scope: local
---
# Skill: Diagnosticar Lacunas de Documentação
## Objetivo
Identificar proativamente onde a documentação está ausente, incompleta ou desatualizada antes de criar ou corrigir documentação.
## Etapas
### 1. Verificar JSDoc em Funções Compartilhadas
```sh
# Listar funções exportadas sem JSDoc
rg "^export (const|function|async function)" --include='*.ts' <modulo>-comuns/src/ -n | while read line; do
file=$(echo "$line" | cut -d: -f1)
lineno=$(echo "$line" | cut -d: -f2)
prev=$((lineno - 1))
if ! sed -n "${prev}p" "$file" | grep -q "*/"; then
echo "SEM JSDOC: $line"
fi
done
```
### 2. Verificar Regras de Negócio Documentadas
```sh
# Listar módulos com lógica complexa
rg "if.*&&|switch|\.length\s*>" --include='*.ts' <modulo>-back/src/servicos/ -c | awk -F: '$2>5' | sort -t: -k2 -rn
# Verificar quais têm .regras-negocio.md
fd ".regras-negocio.md" <modulo>/ -l
# Detectar lógica complexa sem documentação de regras
# (comparar os dois resultados acima)
```
### 3. Verificar Documentação de API
```sh
# Listar rotas sem comentário explicativo
rg "router\.(get|post|put|patch|delete)" --include='*.ts' <modulo>-back/src/rotas/ -n
# Verificar quais rotas têm JSDoc
rg "/\*\*" --include='*.ts' <modulo>-back/src/rotas/ -c
```
### 4. Detectar Dessincronia Código ↔ Docs
```sh
# Buscar campos mencionados em .regras-negocio.md que não existem no código
# (verificação manual por arquivo)
# Buscar decisões técnicas que deveriam estar na Memória
rg "DECISÃO|ADR|NOTA|IMPORTANTE" --include='*.ts' --include='*.md' <modulo>/ -n
```
### 5. Gerar Relatório
```markdown
# Diagnóstico de Documentação — [nome do módulo]
## Resumo
- **Funções compartilhadas sem JSDoc:** N
- **Módulos complexos sem .regras-negocio.md:** N
- **Rotas sem documentação:** N
## Lacunas Encontradas
### 🔴 Crítico — Lógica Complexa Não Documentada
| Arquivo | Complexidade | O que documentar |
|---------|-------------|-----------------|
### 🟡 Moderado — JSDoc Ausente
| Arquivo | Função | Tipo |
|---------|--------|------|
### 🟢 Baixo — Melhorias
| Arquivo | O que melhorar |
|---------|---------------|
## Plano de Documentação (priorizado)
1. ...
```
## Referências
- Rule: `global/rules/diagnostico-antes-correcao`
- Rule: `global/rules/jsdoc-padrao`
- Rule: `global/rules/regras-negocio-md`

View file

@ -37,16 +37,18 @@ Toda sua comunicação — incluindo raciocínio interno, reflexões e respostas
## Responsabilidades
1. Implementar páginas e componentes Vue 3 (`paginas/`, `componentes/`)
2. Criar composables reutilizáveis (`composables/use*.ts`)
3. Integrar com APIs do backend via `*-comuns` (schemas compartilhados)
4. Garantir mensagens de UI no vocabulário do domínio (não técnico)
5. Extrair CSS para arquivos co-localizados quando necessário
6. Manter componentes dentro do limite de 250 linhas
7. Implementar fluxos de navegação e estados de interface
1. **Diagnosticar antes de corrigir** — executar a skill `diagnosticar-saude-frontend` antes de qualquer correção (ver `global/rules/diagnostico-antes-correcao`)
2. Implementar páginas e componentes Vue 3 (`paginas/`, `componentes/`)
3. Criar composables reutilizáveis (`composables/use*.ts`)
4. Integrar com APIs do backend via `*-comuns` (schemas compartilhados)
5. Garantir mensagens de UI no vocabulário do domínio (não técnico)
6. Extrair CSS para arquivos co-localizados quando necessário
7. Manter componentes dentro do limite de 250 linhas
8. Implementar fluxos de navegação e estados de interface
## Restrições
- NUNCA corrigir sem antes diagnosticar a causa raiz (ver `global/rules/diagnostico-antes-correcao`)
- NUNCA importar de pacotes `*-back` diretamente
- NUNCA usar `any` ou `as any`
- Todo componente Vue deve usar `defineComponent` com `setup()`

View file

@ -0,0 +1,108 @@
---
name: diagnosticar-saude-frontend
description: >
Diagnóstico sistemático de saúde do frontend: componentes, composables,
estados de UI, acessibilidade e integração com API.
scope: local
---
# Skill: Diagnosticar Saúde do Frontend
## Objetivo
Analisar a saúde de um módulo frontend Vue 3 para identificar problemas antes de corrigi-los.
## Etapas
### 1. Verificar Estrutura de Componentes
```sh
# Listar componentes e tamanho
fd "*.vue" <modulo>-front/src/ --exec wc -l {} | sort -rn | head -20
# Detectar componentes acima do limite (250 linhas)
fd "*.vue" <modulo>-front/src/ --exec sh -c 'lines=$(wc -l < "$1"); [ "$lines" -gt 250 ] && echo "$lines $1"' _ {}
# Verificar se usam defineComponent com setup()
rg "defineComponent" --include='*.vue' <modulo>-front/src/ -l
```
### 2. Verificar Estados de Interface
```sh
# Detectar componentes sem estado de loading
rg "loading|carregando|isLoading" --include='*.vue' <modulo>-front/src/ -l
# Detectar componentes sem tratamento de erro
rg "erro|error|catch" --include='*.vue' <modulo>-front/src/ -l
# Detectar componentes sem estado vazio
rg "vazio|empty|sem.*dados|nenhum" --include='*.vue' <modulo>-front/src/ -l
```
### 3. Verificar Integração com Schemas
```sh
# Verificar se schemas são importados do *-comuns
rg "from.*comuns" --include='*.ts' --include='*.vue' <modulo>-front/src/ | head -20
# Detectar schemas redefinidos no front (violação)
rg "z\.object\(\{" --include='*.ts' --include='*.vue' <modulo>-front/src/ -l
# Detectar uso de any
rg "as any|: any" --include='*.ts' --include='*.vue' <modulo>-front/src/ -n
```
### 4. Verificar Composables
```sh
# Listar composables existentes
fd "use*.ts" <modulo>-front/src/composables/ -l
# Verificar composables duplicando lógica
rg "ref\(|reactive\(|computed\(" --include='*.vue' <modulo>-front/src/ -c | sort -t: -k2 -rn | head -10
```
### 5. Verificar Mensagens ao Usuário
```sh
# Detectar mensagens técnicas expostas ao usuário
rg "Error:|Exception:|null|undefined|NaN" --include='*.vue' <modulo>-front/src/ -n
# Verificar se mensagens usam linguagem do domínio
rg "snackbar\|toast\|notify\|mensagem\|alerta" --include='*.vue' --include='*.ts' <modulo>-front/src/ -n
```
### 6. Gerar Relatório
```markdown
# Diagnóstico Frontend — [nome do módulo]
## Resumo
- **Componentes analisados:** N
- **Composables verificados:** N
- **Problemas encontrados:** N
## Problemas Detectados
### 🔴 Crítico
| Componente | Problema | Impacto | Ação |
|------------|----------|---------|------|
### 🟡 Moderado
| Componente | Problema | Impacto | Ação |
|------------|----------|---------|------|
### 🟢 Baixo
| Componente | Problema | Impacto | Ação |
|------------|----------|---------|------|
## Plano de Correção (priorizado)
1. ...
```
## Referências
- Rule: `global/rules/diagnostico-antes-correcao`
- Skill: `global/skills/diagnosticar-antes-corrigir/SKILL`
- Rule: `global/rules/estrutura-vue` (via ag-front)

View file

@ -59,11 +59,15 @@ A memória perde valor se estiver fragmentada. É sua responsabilidade garantir
## Restrições
- **NUNCA executar `git commit`, `git push` ou qualquer comando que altere o histórico do repositório** — o controle de versão é responsabilidade exclusiva do usuário humano (ver `global/rules/proibido-commit-ia`)
- NUNCA inventar, fabricar, presumir ou extrapolar conhecimento — registrar e recuperar **exclusivamente** informações reais e verificáveis
- NUNCA registre informações sem um `resumo` significativo
- NUNCA registre dados sensíveis (senhas, tokens reais, dados pessoais de terceiros)
- NÃO invente conhecimento — se a busca não retornar resultados, informe que não há registros
- NUNCA criar memórias com conteúdo inventado, hipotético ou especulativo — todo registro deve refletir algo que **realmente aconteceu** ou foi **decidido explicitamente**
- NUNCA responder uma consulta com informações fabricadas — se a busca não retornar resultados, informar que **não há registros** e nunca preencher lacunas com suposições
- NUNCA atribuir decisões, regras ou funcionalidades ao projeto sem evidência concreta na memória ou no código-fonte
- NÃO atue como desenvolvedor (escrevendo código de features) ou arquiteto (definindo padrões do ecossistema) — seu foco é **consultar e persistir o conhecimento**
- NÃO duplique memórias — busque antes de criar e edite quando a informação já existir
- Quando houver dúvida sobre a veracidade de uma informação, **perguntar ao operador** em vez de registrar
## Colaborações

View file

@ -154,6 +154,7 @@ Você nunca refatora por vaidade. Toda refatoração deve ter um **motivo claro*
## Restrições
- NUNCA refatorar sem antes diagnosticar code smells e violações — executar `diagnosticar-code-smells` (ver `global/rules/diagnostico-antes-correcao`)
- NUNCA alterar comportamento externo durante refatoração — se o comportamento precisa mudar, é feature, não refatoração
- NUNCA refatorar por estética — toda mudança deve ter justificativa técnica (acoplamento, duplicação, complexidade, violação SOLID)
- NUNCA introduzir padrão sem problema que o justifique — "Generalidade Especulativa" é um code smell

View file

@ -37,16 +37,18 @@ Toda sua comunicação — incluindo raciocínio interno, reflexões e respostas
## Responsabilidades
1. Criar e manter testes unitários para lógica de negócio crítica
2. Criar testes de integração para rotas de API
3. Elaborar roteiros de teste manual (cenários passo a passo)
4. Definir critérios de aceite para cada feature
5. Identificar casos extremos e cenários de falha não cobertos
6. Validar schemas Zod contra dados reais de produção
7. Documentar bugs encontrados com passos de reprodução
1. **Diagnosticar antes de testar** — executar a skill `diagnosticar-cobertura-testes` para mapear gaps antes de criar testes (ver `global/rules/diagnostico-antes-correcao`)
2. Criar e manter testes unitários para lógica de negócio crítica
3. Criar testes de integração para rotas de API
4. Elaborar roteiros de teste manual (cenários passo a passo)
5. Definir critérios de aceite para cada feature
6. Identificar casos extremos e cenários de falha não cobertos
7. Validar schemas Zod contra dados reais de produção
8. Documentar bugs encontrados com passos de reprodução
## Restrições
- NUNCA criar testes sem antes diagnosticar a cobertura existente (ver `global/rules/diagnostico-antes-correcao`)
- 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
- Testes devem ser independentes e repetíveis

View file

@ -0,0 +1,97 @@
---
name: diagnosticar-cobertura-testes
description: >
Diagnóstico de cobertura de testes: identificar áreas sem cobertura,
priorizar criação de testes e mapear cenários ausentes.
scope: local
---
# Skill: Diagnosticar Cobertura de Testes
## Objetivo
Mapear a cobertura de testes de um módulo para identificar gaps críticos antes de criar novos testes ou validar correções.
## Etapas
### 1. Inventariar Testes Existentes
```sh
# Listar arquivos de teste
fd "*.spec.ts" <modulo>/ -l
fd "*.test.ts" <modulo>/ -l
# Contar testes por pacote
echo "=== Back ===" && fd "*.spec.ts" <modulo>-back/ | wc -l
echo "=== Front ===" && fd "*.spec.ts" <modulo>-front/ | wc -l
echo "=== Comuns ===" && fd "*.spec.ts" <modulo>-comuns/ | wc -l
```
### 2. Mapear Código Sem Testes
```sh
# Listar arquivos de código sem arquivo de teste correspondente
for f in $(fd "*.ts" <modulo>-back/src/ --exclude "*.spec.ts" --exclude "*.test.ts" --exclude "*.d.ts"); do
base=$(basename "$f" .ts)
if ! fd "${base}.spec.ts" <modulo>/ -q && ! fd "${base}.test.ts" <modulo>/ -q; then
echo "SEM TESTE: $f"
fi
done
```
### 3. Classificar por Criticidade
| Criticidade | O que testar primeiro |
|-------------|----------------------|
| 🔴 Crítico | Lógica de negócio em `servicos/`, schemas Zod, máquinas de estado |
| 🟡 Importante | Rotas de API, processadores de fila, composables complexos |
| 🟢 Desejável | Utils, helpers, componentes de UI puros |
### 4. Verificar Qualidade dos Testes Existentes
```sh
# Detectar testes sem assertions
rg "expect\(|assert\(|toBe\(|toEqual\(" --include='*.spec.ts' <modulo>/ -c | awk -F: '$2==0'
# Detectar testes com descrições vagas
rg "it\('" --include='*.spec.ts' <modulo>/ -n | grep -i "should work\|test\|funciona"
# Verificar mocks sem documentação
rg "mock\(|jest\.fn\(|vi\.fn\(" --include='*.spec.ts' <modulo>/ -n
```
### 5. Gerar Relatório
```markdown
# Diagnóstico de Cobertura — [nome do módulo]
## Resumo
- **Arquivos de código:** N
- **Arquivos de teste:** N
- **Cobertura estimada:** N%
- **Gaps críticos:** N
## Gaps de Cobertura
### 🔴 Sem teste — Lógica Crítica
| Arquivo | Responsabilidade | Risco |
|---------|-----------------|-------|
### 🟡 Sem teste — Funcionalidade Importante
| Arquivo | Responsabilidade | Risco |
|---------|-----------------|-------|
## Testes Existentes com Problemas
| Arquivo de Teste | Problema | Ação |
|-----------------|----------|------|
## Plano de Priorização
1. [Crítico] Criar testes para ...
2. [Crítico] Criar testes para ...
3. [Importante] Criar testes para ...
```
## Referências
- Rule: `global/rules/diagnostico-antes-correcao`
- Skill: `global/skills/diagnosticar-antes-corrigir/SKILL`

View file

@ -37,16 +37,18 @@ Toda sua comunicação — incluindo raciocínio interno, reflexões e respostas
## Responsabilidades
1. Revisar telas implementadas e propor melhorias de usabilidade
2. Definir fluxos de navegação claros e intuitivos
3. Garantir que mensagens de interface estejam em linguagem do domínio
4. Propor estados visuais para todos os cenários (loading, erro, vazio, sucesso)
5. Organizar a hierarquia de informação das telas
6. Revisar labels, placeholders e textos de ajuda
7. Identificar inconsistências de UX entre módulos
1. **Auditar antes de propor** — executar a skill `auditar-ux-heuristicas` antes de sugerir mudanças de UX (ver `global/rules/diagnostico-antes-correcao`)
2. Revisar telas implementadas e propor melhorias de usabilidade
3. Definir fluxos de navegação claros e intuitivos
4. Garantir que mensagens de interface estejam em linguagem do domínio
5. Propor estados visuais para todos os cenários (loading, erro, vazio, sucesso)
6. Organizar a hierarquia de informação das telas
7. Revisar labels, placeholders e textos de ajuda
8. Identificar inconsistências de UX entre módulos
## Restrições
- NUNCA propor mudanças de UX sem antes auditar o estado atual (ver `global/rules/diagnostico-antes-correcao`)
- NÃO implementa código Vue diretamente — orienta o `@ag-front`
- NÃO usa jargões técnicos de TI em textos de interface
- NÃO propõe fluxos que violem regras de negócio documentadas

View file

@ -0,0 +1,63 @@
---
name: auditar-ux-heuristicas
description: >
Auditoria de UX baseada em heurísticas de Nielsen e verificação de estados de UI.
scope: local
---
# Skill: Auditar UX por Heurísticas
## Objetivo
Avaliar UX de tela ou fluxo antes de propor mudanças.
## Etapas
### 1. Heurísticas de Nielsen
| # | Heurística | Pergunta |
|---|-----------|----------|
| 1 | Visibilidade do status | Sistema informa o que acontece? |
| 2 | Compatibilidade | Mensagens usam linguagem do domínio? |
| 3 | Controle e liberdade | Pode desfazer, voltar, cancelar? |
| 4 | Consistência | Mesmos conceitos, mesma aparência? |
| 5 | Prevenção de erros | Campos obrigatórios claros? Confirmação em ações destrutivas? |
| 6 | Reconhecimento > Lembrança | Labels descritivos? |
| 7 | Flexibilidade | Ações frequentes acessíveis? |
| 8 | Estética minimalista | Info desnecessária? |
| 9 | Recuperação de erros | Mensagens orientam correção? |
| 10 | Ajuda | Ajuda contextual disponível? |
### 2. Estados de Interface
Para cada componente: `□ Loading □ Vazio □ Sucesso □ Erro □ Desabilitado`
### 3. Acessibilidade Básica
```sh
rg "<img" --include='*.vue' <modulo>-front/src/ -n | grep -v "alt="
rg "<v-btn\|<button" --include='*.vue' <modulo>-front/src/ -n | grep -v "aria-label\|title"
```
### 4. Relatório
```markdown
# Auditoria UX — [tela/fluxo]
## Achados por Heurística
| # | Heurística | Status | Problema | Recomendação |
|---|-----------|--------|----------|--------------|
## Estados de Interface
| Componente | Loading | Vazio | Erro | Sucesso |
|------------|---------|-------|------|---------|
## Plano de Melhoria
1. ...
```
## Referências
- Rule: `global/rules/diagnostico-antes-correcao`
- Rule: `global/rules/mensagens-usuario`
- Rule: `global/rules/feedback-visivel`