# Prova manual guiada — orçamento versus realizado **Actualização de encerramento:** em 28/10/2026, o utilizador aceitou expressamente a entrega com esta limitação de evidência e autorizou checkpoint local. Ver [aceitação](INDUSTRIAL_BUDGET_ACCEPTANCE.md). Menções anteriores a aceitação/checkpoint pendentes são históricas. Capturas continuam indisponíveis e automação bloqueada; nenhuma prova pendente é dada por realizada. ## Resultado do percurso manual confirmado pelo utilizador Em 28/10/2026, após a preparação abaixo, o utilizador executou o percurso no navegador e enviou os textos dos painéis. Confirmou no final que, na consulta como Samira sintética, não aparecem os formulários de preparação de orçamento e de comparação. Não se atribui esta observação ao agente nem se declara recuperação da automação do Edge. - Orçamento #9 v1 preservado como histórico sem decisão, sucedido por #10 v2 com os mesmos valores 900/600/300. Não foi determinada a causa da segunda submissão. - Orçamento #10 v2 validado, com fundamento «Conferidos 900/600/300 MZN, 10 UN, mesmo lote e período». Consulta read-only à base de testes confirmou preparador #509 e validador distinto #510. - Comparação #8 v1 referencia orçamento #10 v2 e realizado #23 v1: previsto/realizado 1 800/1 800, desvios +100/−100/0, total 0 e residual separado 300. O utilizador observou posteriormente o aviso de comparação histórica/desactualizada, mantendo os números anteriores. - Resultado #24 v2 observado e validado apenas para 800 conhecidos, material pendente e total/custo unitário indisponíveis; residual 300, reconciliação parcial 1 100 = 800 + 300. - Comparação #9 v2 referencia o mesmo orçamento #10 v2 e realizado #24 v2. Material e respectivo desvio indisponíveis; trabalho −100, indirectos 0; comparação incompleta, sem desvio total conclusivo. Pares conhecidos: 900 + (−100) = 800, sem tratar ausência como poupança. Residual 300 separado. - Consulta read-only confirmou os IDs/versões do orçamento, decisão e referências das duas comparações. Não houve alteração de contas ou dados por essa consulta. **Limitação da evidência:** os textos foram enviados pelo utilizador; não foram recebidas nem inspeccionadas capturas de ecrã. Os nomes de PNG sugeridos abaixo continuam a ser apenas destinos previstos. Percurso manual confirmado por relato e conferência parcial read-only, não prova visual automática. Aceitação e checkpoint permanecem pendentes; nenhuma concessão/migração em desenvolvimento ou activação real decorre desta confirmação. A instância de prova permanece ligada para eventual captura manual. ### Revisão técnica posterior solicitada pelo utilizador Executado `scripts/sgf.ps1 php scripts/industrial-budget-manual-verify.php --env=browser-testing`, sem alterar registos ou credenciais. A conferência adicional confirmou as duas fotografias contra as fórmulas exactas, referências ID/versão, aprovações por identidade distinta, cadeia resultado/comparação v1→v2, mesmo orçamento, residual 300 e reconciliações completa/parcial, ausência de duplicação de origens de oficina/custo directo e distribuição efectiva dos direitos. Ver [resultado estruturado](proofs/industrial-budget-manual-results.json). Isto completa a reconciliação técnica das fotografias descritas pelo utilizador; não constitui inspecção de capturas ou nova prova de navegador. Corrigido o resumo de provas para identificar os campos de navegador falhado/parado como a tentativa automática histórica, acrescentando separadamente o percurso manual posterior. Não se alteraram cálculo, resultados, decisões ou acessos. Sintaxe do novo verificador conferida e execução aprovada; a comparação normaliza apenas a ordem das chaves JSON para conferir conteúdos com tipos exactos, sem mudar os dados. Não se repetiram testes destrutivos ou build por estas alterações de verificação/documentação; preservada a fixture manual. Consulta de desenvolvimento reconfirmou `110000` e sete concessões ausentes e guarda real bloqueada. Aceitação e checkpoint continuam pendentes. ## Registo histórico da preparação 28/10/2026. Preparação verificada, percurso **ainda não executado pelo utilizador**. Sem aceitação ou checkpoint. Não repetir a automação bloqueada do Edge. ## Entrada e isolamento confirmados Endereço: `http://127.0.0.1:8002`. Resposta HTTP de `/api/industrial-budget-proof/environment` confirmou `browser-testing`, `sgf_tempo_test`, `sgf_test_runner`, PostgreSQL 55432, sessão `file`/`sgf_browser_proof` e cache `file`. Ver [prova de ambiente](proofs/industrial-budget-manual-environment.json). Endpoint read-only, sem dados de negócio/credenciais, disponível apenas em `browser-testing` e sob as guardas existentes; 404 fora desse ambiente. Retomada a fixture existente por `scripts/browser-proof.ps1 start -Port 8002 -ResumeIndustrialBudget`. Sem reset, migração ou concessões; lote #20, realizado #23 v1 validado, nenhuma proposta/comparação no início. O preparador não tem validação de orçamento; a validadora não tem preparação de orçamento/comparação. IDs descrevem esta execução, não constantes do módulo. Contas sintéticas: `gestor@example.test` representa Osmane; `consulta@example.test` representa Samira. Palavras-passe distintas renovadas apenas nestas contas da base de testes porque o manifesto anterior fora removido ao parar a prova. Instruções de entrada em `C:\laragon\data\sgf-tempo\secrets\industrial-budget-manual-entry.txt`, com ACL apenas do utilizador local e SYSTEM, fora do repositório. Abrir localmente; não copiar palavras-passe para chat, capturas ou relatório. Não guardar no navegador. ## Percurso a executar no navegador pelo utilizador 1. Entrar como `gestor@example.test`, seleccionar **Empresa Horizonte — Demonstração / Unidade Central — Demonstração**, abrir **Orçamento versus realizado**, lote #20. Confirmar que existe preparação e não validação do orçamento. 2. Preparar material **900**, trabalho **600**, indirectos **300**, com fundamento «Hipótese sintética retrospectiva 900/600/300, 10 UN, mesmo lote/período, sem causas presumidas». Submeter orçamento e anotar ID/versão. Não criar outra proposta por repetir o clique. 3. Sair da aplicação. Entrar como `consulta@example.test` no mesmo contexto. Confirmar ausência de preparação de orçamento/comparação e presença da decisão. Validar a versão exacta submetida, com fundamento explícito. Anotar ID/versão e guardar captura sem campos de entrada de credenciais. 4. Sair e entrar como preparador. Seleccionar explicitamente o orçamento aprovado e o **realizado #23 v1**, comparar. Confirmar previsto/realizado **1 800/1 800 MZN**, desvios **+100/−100/0**, total **0**, reconciliação **1 800 + 0 = 1 800**, residual separado **300 por imputar**, origens **2 100 = 1 800 + 300**. Guardar captura da comparação. 5. Para a variante, no menu **Custos industriais de teste**, mesmo lote #20, usar **Seleccionar versões para cálculo**: escolher explicitamente as versões validadas de material, trabalho, conjunto, máquina, produção boa, taxa de trabalho e critério; manter **taxa material ausente**. Calcular a sucessora do resultado #23 v1. Não alterar origens, taxas, produção, critério ou orçamento. Anotar novo ID/versão. 6. Sair; entrar como validadora. No menu industrial, validar apenas essa versão incompleta, com fundamento «Só 800 MZN conhecidos; material pendente, total e custo unitário indisponíveis». Confirmar **800 conhecidos**, total/unitário indisponíveis e residual 300 separado; guardar captura. 7. Sair; entrar como preparador. Em **Orçamento versus realizado**, actualizar explicitamente, seleccionar o mesmo orçamento aprovado e o novo realizado validado incompleto, criar a comparação sucessora. Confirmar material/desvio indisponíveis, trabalho −100, indirectos 0, **sem desvio total conclusivo** ou percentagem global, realizado conhecido **800** e residual **300** separado. A comparação anterior permanece histórica/desactualizada. Guardar captura. 8. Sair; entrar como validadora. Consultar as duas comparações e confirmar que não recebe formulário para criar/editar orçamento ou preparar comparação. Guardar captura dessa separação de acessos. Capturas sugeridas em `docs/proofs/industrial-budget-manual-approval.png`, `industrial-budget-manual-full.png`, `industrial-budget-manual-partial-result.png`, `industrial-budget-manual-partial-comparison.png` e `industrial-budget-manual-reader.png`. São nomes de destino, **não ficheiros já produzidos**. Capturar apenas os painéis de negócio, sem palavras-passe, ficheiro de entrada ou outras aplicações. Anotar os IDs/versões, o que foi observado e qualquer divergência; não declarar êxito antes da conferência. Se houver erro, conservar a mensagem e não tentar corrigir montantes ou substituir a referência aprovada para o contornar. ## Estado e validação desta preparação Sintaxe PHP do preparador e de `routes/web.php` aprovada; arranque PowerShell e diagnóstico HTTP efectivos aprovados. Não se alterou cálculo ou interface, nem se repetiu a bateria de 169 testes já aprovada. Preparação manual não comprova login, submissão, decisão ou comparação pela interface. A instância fica ligada para o percurso; não executar testes destrutivos enquanto estiver activa. Após a prova, parar apenas a instância SGF com `scripts/browser-proof.ps1 stop`. Aceitação, eventual encerramento e checkpoint permanecem posteriores à prova.