Build: a524951 | Data: 06/06/2026 | Agente: Claude Sonnet 4.6
Ambiente: http://localhost:3000 + produção sslip.io
Reproduzir: Login gestor@teste.pt → clicar "Processos" no menu lateral
Observado: Redireciona para /juri — interface do Júri (página de outro role)
Esperado: Redireciona para /gestor — dashboard de processos do gestor
{ label: 'Processos', href: '/juri', ... } → deve ser href: '/gestor'
Impacto: O gestor fica perdido na interface do júri. Afeta também a produção (mesmo código).
Fix de 1 linha: Alterar /juri para /gestor em layout.tsx:31.
Observado: Dashboard mostra label simples Score — 90%
Esperado: Score provisório (não auditado): 90%
Nota: O questionário submetido JÁ mostra corretamente "Score provisório (não auditado): 90%". Só o dashboard está errado.
Fix: Em dashboard/page.tsx linha 310, alterar "Score" para "Score provisório (não auditado)".
Observado: Layout card vertical por questão. Apenas "Resultado" e "Comentários" têm labels visíveis.
Esperado pelo cliente: Colunas explícitas: DOCUMENTO → VALIDAÇÃO (instrução) → RESULTADO → COMENTÁRIOS
Detalhe: "Resultado" ✅ (linha 1261), "Comentários" ✅. Mas "DOCUMENTO" e "VALIDAÇÃO" não têm labels visuais.
Fix: Adicionar cabeçalho "VALIDAÇÃO" antes da secção "Aspetos a auditar", e label "DOCUMENTO" ou código antes do texto da questão.
Contexto: Cliente reportou às 10:00 que a Empresa Demo não aparecia disponível para auditor. Commit a524951 diz "fix ESG workflow".
Código atual: Estado vai para 'submetido' na submissão ✅. Gestor vê "Atribuir auditor" quando estado === 'submetido' ✅.
'submetido' na BD de teste.
A Empresa Demo ESG foi submetida hoje e já está "Em auditoria" com Ana Auditora — o fix parece ter funcionado.
Ação: Submeter o BFO da Empresa Demo (está pronto em pending_docs) e confirmar que o gestor vê "Submetido" com opção de atribuir auditor.
Ambos os botões existem no código com condições corretas, mas os processos de teste não têm as condições necessárias:
Não com classificação não bloqueada. Todos os processos em auditoria ativa têm N/A.scoreFinalCalculated && !isConcluida.Recomendação: Verificar manualmente com um processo que tenha respostas "Não" em auditoria ativa.
O botão "Submeter decisão" estava desabilitado no teste automático. O código mostra que fica ativo após selecionar "Aprovar" ou "Rejeitar" no RadioGroup. Pode ser que o júri já tenha votado neste processo (mostra card diferente sem formulário).
Verificar: Abrir manualmente /juri/processo/f1970b56... com juri@teste.pt e confirmar se o formulário de decisão está visível.
O sistema de upload existe e funciona (empresa@teste.pt BFO está em pending_docs). Mas não foi possível confirmar:
Ambas as funcionalidades existem como rotas API. Sem caixa de email real foi impossível confirmar que o email de rejeição chega. O certificado PDF requer um processo em estado aprovado.
| Ficheiro | Texto atual | Correção |
|---|---|---|
| layout.tsx:106 | Gestao 360 | Gestão 360 |
| layout.tsx:170 | Terminar sessao | Terminar sessão |
| gestor/processos/[id]/page.tsx:312 | Decisoes do juri | Decisões do júri |
| juri/processo/[id]/page.tsx:439 | Ja registou a sua decisao | Já registou a sua decisão |
| juri/processo/[id]/page.tsx:505 | Submeter decisao | Submeter decisão |
| auditor/processo/[id]/page.tsx:1303 | Reverter para Sim | Reverter para sim |
| auditor/processo/[id]/page.tsx:1321 | Reverter para Não | Reverter para não |
| # | Pedido | Estado | Notas |
|---|---|---|---|
| 1 | Colunas DOCUMENTO/VALIDAÇÃO/RESULTADO/COMENTÁRIOS | ❌ Em falta | Layout card vertical; sem cabeçalhos explícitos |
| 2 | Aspetos a auditar formato compacto | ✅ OK | |
| 3 | Botão "Calcular Score Parcial Auditor" com nota (?) | ✅ OK | |
| 4 | Score Final: desabilitado até tudo classificado | ✅ OK | |
| 5 | "Submeter auditoria" só depois de Score Final + parecer | ✅ OK | |
| 6 | Resumo: contadores de questões | ✅ OK | |
| 7 | "Não": botão "Inverter para sim" | ⚠️ Parcial | No código, condicional — sem dados para verificar |
| 8 | N/A: 3 botões Válida/Reverter sim/Reverter não | ⚠️ Parcial | Funcionam; capitalização incorreta (Sim/Não) |
| 9 | 4 filtros da grelha | ✅ OK | Todos presentes |
| 10 | Documentos: badges verde/aviso | ✅ OK | |
| 11 | Não válido sem doc → remove de "doc em falta" | ✅ OK | |
| 12 | "Solicitar desbloqueio" + justificação | ⚠️ Parcial | No código, condicional — sem dados para verificar |
| 13 | Bloco "Reuniões de auditoria" | ✅ OK | |
| 14 | Menu: "Processos" e "Júris" | ⚠️ Parcial | Labels corretos mas "Processos" aponta para /juri (P0) |
| 15 | Criar Júri: tabela FIN/ESG/BFO + Editar | ✅ OK | |
| 16 | Tópicos CV sem overflow | ✅ OK | |
| 17 | Atribuir processo a júri com competência do pilar | ✅ OK | |
| 18 | Atribuição de auditor pelo gestor | ⚠️ A verificar | Código correto; sem processo 'submetido' para testar |
| 19 | Upload PDF sem erro | ⚠️ Parcial | Sistema existe; upload real não testado |
| 20 | Docs já anexados não aparecem pendentes | ⚠️ A verificar | Não verificado com dados reais |
| 21 | Dashboard score: "Score provisório (não auditado)" | ❌ Em falta | Só mostra "Score" |
| 22 | Botão "Imprimir grelha de respostas" | ✅ OK | Presente na fase pending_docs |
| 23 | ESG: perguntas duplicadas corrigidas | ✅ OK | Nenhum duplicado detetado |
| 24 | SASB removido | ✅ OK | SASB não encontrado |
| 25 | Pagamento antes do certificado | ✅ OK | |
| 26 | Aprovação admin depois do júri | ✅ OK | |
| 27 | 1 pilar → 1 júri; 3 pilares → 3 júris | ✅ OK | |
| 28 | Mensagem negativa ao dashboard E email | ⚠️ A verificar | Sistema notify() existe; email não testado |
| 29 | Certificado PDF gerado corretamente | ⚠️ A verificar | Rota existe; não gerado em teste |
src/app/(backoffice)/layout.tsx:31, mudar href: '/juri' para href: '/gestor'dashboard/page.tsx:310 — alterar "Score" para "Score provisório (não auditado)"auditor/processo/[id]/page.tsx — adicionar label "VALIDAÇÃO" antes da secção Aspetos a auditar