7.0 KiB
Baseline e gate — 28/09/2026
Registo histórico da Fase 0. O proprietário autorizou depois a progressão automática; o gate de aprovação abaixo foi ultrapassado por essa instrução. Consultar implementation-status.md e validation.md para a execução e métricas actuais.
Execução e resultados
| Verificação executada | Resultado |
|---|---|
| PHPUnit completo em PostgreSQL/PostGIS isolado | 138 testes, 1.463 verificações, todos aprovados; 27,943 s |
| PHPStan completo | Zero erros |
TypeScript --noEmit |
Aprovado |
| Lint páginas investment/portfolio e PortalNavigation | Aprovado |
| Pint do script de inventário | Primeira verificação encontrou estilo; formatado; verificação final aprovada, assim como php -l |
| Build Vite | Aprovado, 2.354 módulos, 11,78 s; aviso de dependência opcional fontaine, sem falha |
| Inventário agregado | Executado em transacção READ ONLY/REPEATABLE READ; 93 tabelas; JSON adjacente |
| Backup da base | SHA-256 conferido; manifesto regista restauro verificado em 93 tabelas |
Backup privado da base: storage/app/private/portfolio-version-backup-20260928-011346/. O backup antecede a migration de versão editorial; a reconciliação existente documenta apenas migrations 34→35. Backup completo anterior da aplicação: C:/laragon/backups/portal-investidor-20260927-101224/RESTAURO.md. Não publicar estes backups nem as configurações privadas. Esta fase não fez alterações de esquema ou conteúdo de negócio.
As versões instaladas foram lidas de composer.lock e dos pacotes em node_modules; as versões PostgreSQL/PostGIS foram consultadas na base local. O JSON contém contagens, nunca registos pessoais ou credenciais.
Comandos reproduzíveis (PowerShell)
$validationPhp = 'C:/Users/macbook/AppData/Local/Temp/investmoz-validation-20260924/php/php.exe'
& $validationPhp tools/zones-baseline.php
& $validationPhp vendor/bin/phpstan analyse --no-progress --memory-limit=512M
& $validationPhp vendor/bin/pint --test tools/zones-baseline.php
node node_modules/typescript/bin/tsc --noEmit
node_modules/.bin/vp.cmd lint resources/js/pages/investment resources/js/pages/portfolio resources/js/components/PortalNavigation.tsx
Em outra sessão, exclusivamente para testes, com PostgreSQL QA disponível na porta 55441:
$validationPhp = 'C:/Users/macbook/AppData/Local/Temp/investmoz-validation-20260924/php/php.exe'
$env:DB_CONNECTION='pgsql'
$env:DB_DATABASE='portal_services_test'
$env:DB_HOST='127.0.0.1'
$env:DB_PORT='55441'
$env:DB_USERNAME='education_test'
$env:DB_URL=''
& $validationPhp vendor/bin/phpunit --do-not-cache-result
Depois de terminar PHPUnit, executar npm.cmd run build na sessão normal. Não substituir o manifesto Vite enquanto testes Inertia o lêem. O PHP padrão do PATH não é adequado ao baseline PostgreSQL; não executar composer setup, que altera configuração e base.
Ficheiros e reversão
Criados: tools/zones-baseline.php, docs/investmoz/zones/README.md, diagnosis-and-adr.md, plan-and-traceability.md, baseline.md, baseline-data.json. Nenhum ficheiro aplicacional removido. Build regenera artefactos derivados em public/build e ficheiros Wayfinder. Endpoints, componentes de produto e dados de negócio permanecem funcionalmente iguais; nenhuma migration criada nesta fase. Rollback da fase consiste em retirar os novos artefactos de documentação/inventário, preservando os backups; não exige rollback de base.
Não havia .git. Foi inicializado repositório local na branch feature/zee-zfi-catalogue, usando C:/laragon/bin/git/cmd/git.exe. Não há identidade Git configurada; commits não executados e nenhum ficheiro sensível adicionado ao índice. Antes de versionar a aplicação inteira, rever exclusões de anexos, dumps e storage privado. Não confundir branch sem commit inicial com histórico de recuperação completo.
Limites e riscos
- Testes passam para o código actual; não comprovam requisitos ZEE/ZFI ainda não implementados.
- Nenhum novo ensaio de navegador, carga, leitor de ecrã, falha de rede ou UAT foi executado nesta fase. Evidências anteriores estão em
../unification/validation.mde não são homologação do novo catálogo. - Ausência de geometrias impede demonstrar cobertura territorial real. Não inventar coordenadas ou perímetros.
- Fontes jurídicas, entidades competentes, validade e nomes das zonas exigem conferência documental na Fase 1. Não foram carregadas regras fiscais ou certificados.
- R2–R5 da revisão arquitectural continuam abertos; a Fase 0 não os resolve.
- A aprovação editorial anterior pelo próprio gestor conflita com o novo requisito de segregação. Novo domínio seguirá revisão independente; a transição do legado precisa decisão explícita e migração de permissões.
- SLO/SLA, retenção, responsáveis nominais e calendário de UAT não foram fornecidos. Devem ser decisões registadas, não valores inventados.
Checklist de gate
| Condição | Estado |
|---|---|
| Código acessível e versões/comandos identificados | Sim |
| Backup existente com restauro documentado e checksum conferido | Sim |
| Baseline de testes reproduzido | Sim |
| Diagnóstico, matriz de decisões, ADR e backlog preparados | Sim |
| Escopo piloto aprovado pelo proprietário | Pendente — proposta no README |
| Identidade Git e primeiro commit | Pendente |
| Transição de permissões e responsáveis de validação | Pendente |
| Autorização para iniciar Fase 1 | A aguardar decisão no gate |
Recomendação: Go condicionado. Próxima fase proposta: ER/dicionário, matriz jurídica, identidade canónica e relações tipadas, migrations aditivas e testes GIS/integridade/reversão em base isolada. Não iniciada.