diff --git a/docs/investmoz/unification/traceability-and-manual.md b/docs/investmoz/unification/traceability-and-manual.md index c0e8941d..0c91450a 100644 --- a/docs/investmoz/unification/traceability-and-manual.md +++ b/docs/investmoz/unification/traceability-and-manual.md @@ -9849,3 +9849,12 @@ Backup/restauro fresco de 193 tabelas/411 ficheiros, com contagens e hashes conf Reutilizadas as provas aceites: três testes backend/21 asserções, cinco frontend afectados, análise/tipos/lint/build e conferência visual sintética do componente; o CI obrigatório do executor correu normalmente, sem nova ronda manual dos percursos aceites. HTTPS do mapa, instituições, demografia e entrada privada conferido. Os originais e a pesquisa, suporte e relatórios de 8854b292 foram preservados. Não foram criadas observações sintéticas na homologação para fazer aparecer a comparação. Recibo: `outputs/observation-nature-20261113/homologation-installed.json`; pacote QA selado inalterado. Estado do incremento: instalado. ACT-02/V2-07/V2-10 permanecem parciais quanto à cobertura factual, séries estatisticamente comparáveis, oferta laboral, classificação factual do legado e metodologia económica. Esta entrega fecha a capacidade de declarar/recuperar/consultar a natureza das observações, não esses requisitos amplos. + + +## 13/11/2026 — ACT-02: conferência temporal da comparação, QA + +Continuidade após a natureza das observações instalada em 42b9324a. A comparação existente mostra a duração dos períodos de referência em dias de calendário, com ambos os limites incluídos. Durações diferentes exigem conferência; períodos distintos com sobreposição, incluindo um único dia comum, mostram aviso próprio. Datas incompletas, inválidas ou invertidas continuam por confirmar, sem duração inferida da data da fonte. Não anualiza, calcula taxas/evolução, soma observações ou declara comparabilidade estatística. Valores textuais, zeros, fontes, versões, filtros e âmbito territorial preservados. + +QA: dois testes novos de duração/ano bissexto/sobreposição/limites e datas inválidas; sete testes afectados passaram. Tipos, lint e compilação aprovados. Edge com componente real compilado e dados sintéticos: duração inclusiva de 366/365 dias e aviso de sobreposição de um dia conferidos. Sem API, base de dados, migração, importação ou publicação. Provas: outputs/observation-period-20261113/. Provas aceites dos restantes percursos reutilizadas. + +Estado: implementado em QA, sem instalação. ACT-02 permanece parcial: cobertura factual, classificação documental do legado, séries estatisticamente comparáveis, oferta laboral e metodologia económica conservam o saldo próprio. Esta entrega encerra a conferência automática de duração e sobreposição das datas recebidas, não a comparabilidade factual das séries. diff --git a/docs/investmoz/v2/auditoria-portal/matriz-requisitos.csv b/docs/investmoz/v2/auditoria-portal/matriz-requisitos.csv index ddaafb3a..7a9f0123 100644 --- a/docs/investmoz/v2/auditoria-portal/matriz-requisitos.csv +++ b/docs/investmoz/v2/auditoria-portal/matriz-requisitos.csv @@ -373,10 +373,10 @@ V2-03,"Mesmo dossier, pedido, conversa e tarefa interna; ciclo completo demonstr V2-04,Regras internas e recomendações explicáveis; evidência scoped com autoria/data/hash; aceitação distinta de tarefa,"backlog-mestre.md; § 3.2.3.1, p. 2472–2532; § 5.2, p. 7009–7190",Balcão/orientação,/balcao-virtual/contextos; /balcao-virtual/dossiers; /balcao-virtual/dossiers/{id}; /balcao-virtual/dossiers/{id}/documentos; /balcao-virtual/dossiers/{id}/documentos/{document}; /balcao-virtual/dossiers/{id}/documentos/{document}/conferencia; /balcao-virtual/dossiers/{id}/etapas; /balcao-virtual/dossiers/{id}/fontes; /balcao-virtual/dossiers/{id}/orientacao; /balcao-virtual/dossiers/{id}/pedidos; /balcao-virtual/dossiers/{id}/pressupostos; /balcao-virtual/dossiers/{id}/recomendacoes,"VirtualDesk, pedidos/casos, anexos, contexto dossier e acompanhamento. Capacidade existente associada ao domínio; correspondência integral desta cláusula só quando demonstrada na prova individual.","Ativo investemoz:5432, 295 tabelas, COUNTRY02/030000/040000 instalados; seis categorias e administração habilitadas. Leitura atual não demonstra esta cláusula individual. Legado, percurso integrado, modulares/ofertas e notificações desabilitados.",outputs/investmoz-audit-current-20261012/runtime-active.json; runtime-qa18445.json. Inventário/GET do domínio não demonstra esta cláusula individual.,Sem evidência suficiente,"Pedido contextual→gravar→submeter→nova sessão→gestor→mensagem/documentos/resultado, reaproveitando A/B. Critério individual original preservado; cobertura atual ainda não individualizada.","Perfis próprios do Balcão; serviços/campos e decisões externas aplicáveis, sem inventar destinatário/prazo. Nenhuma nova decisão identificada para reconciliar/demonstrar esta cláusula. Decisões específicas só após localizar a regra correspondente.","V2-04: Expandir consistência entre mercado, capacidade, recursos e calendário com fontes verificáveis; IA externa continua opcional",P2,V2-04: Estado da primeira entrega; confirmações posteriores permanecem separadas,V2-04,1,"[{""id"":""V2-04"",""pedido"":""Regras internas e recomendações explicáveis; evidência scoped com autoria/data/hash; aceitação distinta de tarefa"",""fontes"":[""backlog-mestre.md; § 3.2.3.1, p. 2472–2532; § 5.2, p. 7009–7190""],""aceitacao"":""Expandir consistência entre mercado, capacidade, recursos e calendário com fontes verificáveis; IA externa continua opcional"",""estado"":""parcial"",""variantes"":""Estado da primeira entrega; confirmações posteriores permanecem separadas"",""modulo"":""Balcão/orientação""}]",Não demonstrado individualmente; localizar critério e executar em QA.,Não demonstrado individualmente; localizar critério e executar em QA.,Não demonstrado individualmente; localizar critério e executar em QA.,Não demonstrado individualmente; localizar critério e executar em QA.,Não demonstrado individualmente; localizar critério e executar em QA.,Texto exatamente equivalente no mesmo módulo; sem fusão semântica aproximada,parcial,public.desk_cases: 1 registos; public.desk_requests: 0 registos; public.desk_institutional_links: 0 registos; public.desk_messages: 0 registos,"A evidência existente é do domínio ou uma declaração histórica; não identifica a demonstração integral desta cláusula. Não afirmar implementado/parcial apenas por componente, menu ou teste global.","Pedido contextual→gravar→submeter→nova sessão→gestor→mensagem/documentos/resultado, reaproveitando A/B. Critério individual original preservado; cobertura atual ainda não individualizada.","VirtualDesk, pedidos/casos, anexos, contexto dossier e acompanhamento","Perfis próprios do Balcão; serviços/campos e decisões externas aplicáveis, sem inventar destinatário/prazo.",Nenhuma nova decisão identificada para reconciliar/demonstrar esta cláusula. Decisões específicas só após localizar a regra correspondente.,Reconciliação e prova individual antes de estimar alteração,Estimativa partilhada no lote correspondente de visao-consolidada-modulos.md; não somar por linha/cláusula/campo. Grupo: balcão. Esforço de código adicional só após lacuna reproduzida.,outputs/investmoz-audit-current-20261012/runtime-active.json; runtime-qa18445.json. Inventário/GET do domínio não demonstra esta cláusula individual.,balcão,12/10/2026 — reconciliação e HTTP; nova inspeção visual bloqueada,,,Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.,"QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.",app/Services/VirtualDesk.php; app/Services/Ai/InvestorGuidance.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida,InvestorGuidanceTest; suite global QA e GET por perfil disponíveis. Evidência do domínio não demonstra integralmente esta cláusula; UI individual pendente.,Não demonstrado individualmente; localizar critério e executar em QA.,,,,"0,5–2 h de análise/prova por cláusula sem correspondência, agrupada por contrato/consumidor; não somar estas faixas como projetos independentes. Implementação indeterminada até localizar lacuna.",,, V2-05,Calculadores existentes preservados; fronteira entre explicação e cálculo determinístico mantida,"backlog-mestre.md; § 3.2.3.2, p. 2533–2576; § 3.2.1.5, p. 1746–2160",simuladores,/api/v1/questionnaires/{code}; /api/v1/simulation-drafts; /api/v1/simulation-drafts/claim; /api/v1/simulation-drafts/claim-preview; /api/v1/simulation-drafts/current; /api/v1/simulation-drafts/linkable-businesses; /api/v1/simulation-drafts/{id}; /api/v1/simulation-drafts/{id}/business-link; /api/v1/simulation-drafts/{id}/conversions; /api/v1/simulation-drafts/{id}/touch; /api/v1/simulations; /api/v1/simulations/history,"SimulationExecution, resultados/cenários/fontes, rascunhos e dossier existentes. Capacidade existente associada ao domínio; correspondência integral desta cláusula só quando demonstrada na prova individual.","Ativo investemoz:5432, 295 tabelas, COUNTRY02/030000/040000 instalados; seis categorias e administração habilitadas. Leitura atual não demonstra esta cláusula individual. Legado, percurso integrado, modulares/ofertas e notificações desabilitados.",outputs/investmoz-audit-current-20261012/runtime-active.json; runtime-qa18445.json. Inventário/GET do domínio não demonstra esta cláusula individual.,Sem evidência suficiente,Cenário→cálculo→gravação→resultado/dossier correto→nova sessão→PDF/derivadas autorizadas. Sem aprovação/score inventado. Critério individual original preservado; cobertura atual ainda não individualizada.,"Regras financeiras/fiscais separadas; fonte oficial aceite, parâmetros/âmbito/período podem faltar; não substituir por0/taxa atual. Nenhuma nova decisão identificada para reconciliar/demonstrar esta cláusula. Decisões específicas só após localizar a regra correspondente.",V2-05: Reconciliar diplomas/artigos e parâmetros ausentes; nenhuma publicação documental ativa cálculos; não substituir desconhecidos por zero,P2,V2-05: Estado da primeira entrega; confirmações posteriores permanecem separadas,V2-05,1,"[{""id"":""V2-05"",""pedido"":""Calculadores existentes preservados; fronteira entre explicação e cálculo determinístico mantida"",""fontes"":[""backlog-mestre.md; § 3.2.3.2, p. 2533–2576; § 3.2.1.5, p. 1746–2160""],""aceitacao"":""Reconciliar diplomas/artigos e parâmetros ausentes; nenhuma publicação documental ativa cálculos; não substituir desconhecidos por zero"",""estado"":""parcial"",""variantes"":""Estado da primeira entrega; confirmações posteriores permanecem separadas"",""modulo"":""simuladores""}]",Não demonstrado individualmente; localizar critério e executar em QA.,Não demonstrado individualmente; localizar critério e executar em QA.,Não demonstrado individualmente; localizar critério e executar em QA.,Não demonstrado individualmente; localizar critério e executar em QA.,Não demonstrado individualmente; localizar critério e executar em QA.,Texto exatamente equivalente no mesmo módulo; sem fusão semântica aproximada,parcial,public.simulation_form_drafts: 22 registos; public.simulation_scenarios: 16 registos; public.simulations: 16 registos; public.simulation_tax_rules: tabela ausente,"A evidência existente é do domínio ou uma declaração histórica; não identifica a demonstração integral desta cláusula. Não afirmar implementado/parcial apenas por componente, menu ou teste global.",Cenário→cálculo→gravação→resultado/dossier correto→nova sessão→PDF/derivadas autorizadas. Sem aprovação/score inventado. Critério individual original preservado; cobertura atual ainda não individualizada.,"SimulationExecution, resultados/cenários/fontes, rascunhos e dossier existentes","Regras financeiras/fiscais separadas; fonte oficial aceite, parâmetros/âmbito/período podem faltar; não substituir por0/taxa atual.",Nenhuma nova decisão identificada para reconciliar/demonstrar esta cláusula. Decisões específicas só após localizar a regra correspondente.,Reconciliação e prova individual antes de estimar alteração,Estimativa partilhada no lote correspondente de visao-consolidada-modulos.md; não somar por linha/cláusula/campo. Grupo: simuladores. Esforço de código adicional só após lacuna reproduzida.,outputs/investmoz-audit-current-20261012/runtime-active.json; runtime-qa18445.json. Inventário/GET do domínio não demonstra esta cláusula individual.,simuladores,12/10/2026 — reconciliação e HTTP; nova inspeção visual bloqueada,,,Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.,"QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.",app/Services/SimulationTaxParameterResolver.php; resources/js/components/simulation-form.tsx — componentes do domínio encontrados; correspondência integral deste requisito não presumida,"SimulationExecutionTest, SimulationFormDraftTest, SimulationDraftContinuityTest, SimulationTaxRuleGovernanceTest; suite global QA e GET por perfil disponíveis. Evidência do domínio não demonstra integralmente esta cláusula; UI individual pendente.",Não demonstrado individualmente; localizar critério e executar em QA.,,,,"0,5–2 h de análise/prova por cláusula sem correspondência, agrupada por contrato/consumidor; não somar estas faixas como projetos independentes. Implementação indeterminada até localizar lacuna.",,, V2-06,Bolsa instalada constatada por leitura ativa; acesso e contexto compartilhados,"backlog-mestre.md; § 3.2.3.3, p. 2577–2609; § 3.5, p. 3374–3453",Bolsa/parcerias,/api/v1/partnerships; /api/v1/partnerships/source/{type}/{id}; /management/partnerships-install; /parcerias; /parcerias/candidaturas/{id}; /parcerias/criar; /parcerias/notificacoes/{id}/ler; /parcerias/painel; /parcerias/rascunhos; /parcerias/salas/{id}; /parcerias/salas/{id}/acordo; /parcerias/salas/{id}/documentos,"PartnershipExchange, salas, candidaturas, marcos, acesso/revogação documental. Capacidade existente associada ao domínio; correspondência integral desta cláusula só quando demonstrada na prova individual.","Ativo investemoz:5432, 295 tabelas, COUNTRY02/030000/040000 instalados; seis categorias e administração habilitadas. Leitura atual não demonstra esta cláusula individual. Legado, percurso integrado, modulares/ofertas e notificações desabilitados.",outputs/investmoz-audit-current-20261012/runtime-active.json; runtime-qa18445.json. Inventário/GET do domínio não demonstra esta cláusula individual.,Sem evidência suficiente,"Candidatura/sala→documento autorizado→revogar→URL antigo negado na sessão corrente/nova, preservar proprietário/original. Critério individual original preservado; cobertura atual ainda não individualizada.","ACL da sala específica; autoria/membros/marcos e documentos privados, independente da ACL de oportunidade. Nenhuma nova decisão identificada para reconciliar/demonstrar esta cláusula. Decisões específicas só após localizar a regra correspondente.","V2-06: Avaliar restantes propostas de indicadores, contratos e estados contra implementação real; acordos CTA/câmaras/associações dependem de decisões humanas",P2,V2-06: Estado da primeira entrega; confirmações posteriores permanecem separadas,V2-06,1,"[{""id"":""V2-06"",""pedido"":""Bolsa instalada constatada por leitura ativa; acesso e contexto compartilhados"",""fontes"":[""backlog-mestre.md; § 3.2.3.3, p. 2577–2609; § 3.5, p. 3374–3453""],""aceitacao"":""Avaliar restantes propostas de indicadores, contratos e estados contra implementação real; acordos CTA/câmaras/associações dependem de decisões humanas"",""estado"":""parcial"",""variantes"":""Estado da primeira entrega; confirmações posteriores permanecem separadas"",""modulo"":""Bolsa/parcerias""}]",Não demonstrado individualmente; localizar critério e executar em QA.,Não demonstrado individualmente; localizar critério e executar em QA.,Não demonstrado individualmente; localizar critério e executar em QA.,Não demonstrado individualmente; localizar critério e executar em QA.,Não demonstrado individualmente; localizar critério e executar em QA.,Texto exatamente equivalente no mesmo módulo; sem fusão semântica aproximada,parcial,public.portal_partnerships: 0 registos; public.partnership_rooms: 0 registos; public.partnership_interests: 0 registos,"A evidência existente é do domínio ou uma declaração histórica; não identifica a demonstração integral desta cláusula. Não afirmar implementado/parcial apenas por componente, menu ou teste global.","Candidatura/sala→documento autorizado→revogar→URL antigo negado na sessão corrente/nova, preservar proprietário/original. Critério individual original preservado; cobertura atual ainda não individualizada.","PartnershipExchange, salas, candidaturas, marcos, acesso/revogação documental","ACL da sala específica; autoria/membros/marcos e documentos privados, independente da ACL de oportunidade.",Nenhuma nova decisão identificada para reconciliar/demonstrar esta cláusula. Decisões específicas só após localizar a regra correspondente.,Reconciliação e prova individual antes de estimar alteração,Estimativa partilhada no lote correspondente de visao-consolidada-modulos.md; não somar por linha/cláusula/campo. Grupo: parcerias. Esforço de código adicional só após lacuna reproduzida.,outputs/investmoz-audit-current-20261012/runtime-active.json; runtime-qa18445.json. Inventário/GET do domínio não demonstra esta cláusula individual.,parcerias,12/10/2026 — reconciliação e HTTP; nova inspeção visual bloqueada,,,Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.,"QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.",app/Services/PartnershipExchange.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida,PartnershipExchangeTest; suite global QA e GET por perfil disponíveis. Evidência do domínio não demonstra integralmente esta cláusula; UI individual pendente.,Não demonstrado individualmente; localizar critério e executar em QA.,,,,"0,5–2 h de análise/prova por cláusula sem correspondência, agrupada por contrato/consumidor; não somar estas faixas como projetos independentes. Implementação indeterminada até localizar lacuna.",,, -V2-07,Menu de gestão preserva rotas e permissões existentes,"backlog-mestre.md; § 3.2.3.4–3.2.3.10, p. 2610–3339",dashboard/perfis,/api/v1/investment/companies/{id?}; /api/v1/investment/notifications; /api/v1/investment/notifications/{id}/read; /api/v1/investment/profile; /api/v1/investment/submissions/{id}/messages; /api/v1/investment/submissions/{id}/revisions/{version}; /dashboard; /investidor/companies/{id?}; /investidor/manifestacoes/{id}/messages; /investidor/manifestacoes/{id}/revisions/{version}; /investidor/notifications; /investidor/notifications/{id}/read,"Fortify, PortalProfileAdministration/Access, grants, policies, portal_security_approvals e menus atuais. Capacidade existente associada ao domínio; correspondência integral desta cláusula só quando demonstrada na prova individual. [MAP-COMPARISON-20261113] Comparação progressiva de duas observações públicas do mapa: valores/fontes/versões preservados; metadados confrontados; sem evolução ou índice inferido. Instalado na homologação em 1263b4f6. [OBSERVATION-NATURE-20261113] Natureza observada/planeada/projectada/por confirmar no editor, recuperação privada e consulta/comparação; Instalado na homologação em 42b9324a.","Ativo investemoz:5432, 295 tabelas, COUNTRY02/030000/040000 instalados; seis categorias e administração habilitadas. Leitura atual não demonstra esta cláusula individual. Legado, percurso integrado, modulares/ofertas e notificações desabilitados.10/11 QA posteriord5cb41b1: cabeçalho horizontal comum sem sidebar global concorrente em todos os146layouts; Descoberta sem cinco atalhos da entrada principal,que conserva os seus links. Não instalado. Menus instaladosd216830b em10/11/2026; visual mantém-se pendente.",28/10:6 tests/617 assertions;shared province/location filters;prior types/build reused. History: outputs/investmoz-audit-current-20261012/runtime-active.json; runtime-qa18445.json. Inventário/GET do domínio não demonstra esta cláusula individual.,"28/10:789fffd0 instalado e delta técnico conferido;conferência visual/sessão real e formulário fiscal concreto pendentes. Histórico: 28/10:usabilidade/fluxo/formulários e filtro de zonas corrigidos em QA,sem instalação;recusa Turismo/sessão real pendente. Histórico: 28/10:resultados por sector/localização separados do apoio educativo em QA,sem instalação. Histórico: 28/10:selector territorial único em QA,sem instalação;preservação e cobertura nacional mantidas. Histórico: 28/10:national QA;11 provincial units,6 corridors,2 sectors;not installed. History: 28/10:consulta provincial corrigida em QA,sem instalação;Maputo Agronegócio 0→5;histórico preservado. Histórico: 28/10:menus 6e8de43a instalados e delta técnico conferido;conferência visual autenticada pendente;aceitações anteriores preservadas. Histórico: 28/10:reorganização implementada/verificada estruturalmente em QA,sem instalação;validação visual/sessão real pendente;âmbito anterior preservado. Histórico: Sem evidência suficiente | Registo da linha entregue (continuacao): 28/10:revisão de apresentação emQA após relato Tempo;verificação do delta pendente,aceitação anterior preservada no seu âmbito. Histórico: Sem evidência suficiente","28/10:falta entrega e conferência visual do delta provincial;outros menus não declarados integralmente auditados. Lacuna anterior: 28/10:omissões/ocultação corrigidas no código instalado;resta observar a sessão real e responsividade sem presumir perda de permissões. Lacuna anterior: 28/10:omissão de subdestinos e ocultação da área de trabalho corrigidas no candidato QA;falta conferência visual e capacidades reais da sessão,sem presumir perda de permissões. Lacuna histórica: Reutilizar provas existentes; suplementar autorização/revogação/elevação por ação/consumidor, sem sistema paralelo. Critério individual original preservado; cobertura atual ainda não individualizada. | Registo da linha entregue (continuacao): 28/10:confirmadas omissão de subdestinos na barra lateral e ocultação da área de trabalho no menu da conta;props/acesso da sessão real não demonstrados,sem presumir falta de permissões. Lacuna histórica: Reutilizar provas existentes; suplementar autorização/revogação/elevação por ação/consumidor, sem sistema paralelo. Critério individual original preservado; cobertura atual ainda não individualizada.","030000→040000 instalados, seis categorias ON; contas/grants reais concluídos. Autorizações por tipo/org e independência mantidas. Nenhuma nova decisão identificada para reconciliar/demonstrar esta cláusula. Decisões específicas só após localizar a regra correspondente.","V2-07: Dashboard integral, workflow editorial, métricas e APIs adicionais: reconciliação individual pendente; não criar tabelas paralelas a entidades existentes",P2,V2-07: Estado da primeira entrega; confirmações posteriores permanecem separadas,V2-07,1,"[{""id"":""V2-07"",""pedido"":""Menu de gestão preserva rotas e permissões existentes"",""fontes"":[""backlog-mestre.md; § 3.2.3.4–3.2.3.10, p. 2610–3339""],""aceitacao"":""Dashboard integral, workflow editorial, métricas e APIs adicionais: reconciliação individual pendente; não criar tabelas paralelas a entidades existentes"",""estado"":""parcial"",""variantes"":""Estado da primeira entrega; confirmações posteriores permanecem separadas"",""modulo"":""dashboard/perfis""}]",Não demonstrado individualmente; localizar critério e executar em QA.,Não demonstrado individualmente; localizar critério e executar em QA.,Não demonstrado individualmente; localizar critério e executar em QA.,Não demonstrado individualmente; localizar critério e executar em QA.,Não demonstrado individualmente; localizar critério e executar em QA.,Texto exatamente equivalente no mesmo módulo; sem fusão semântica aproximada,parcial,public.investment_accounts: 0 registos; public.investment_company_declarations: 0 registos; public.investment_submissions: 3 registos,"A evidência existente é do domínio ou uma declaração histórica; não identifica a demonstração integral desta cláusula. Não afirmar implementado/parcial apenas por componente, menu ou teste global.","Reutilizar provas existentes; suplementar autorização/revogação/elevação por ação/consumidor, sem sistema paralelo. Critério individual original preservado; cobertura atual ainda não individualizada. [MAP-COMPARISON-20261113] Ferramenta de confronto instalada em 1263b4f6. Mantidos os restantes critérios amplos, cobertura factual, séries comparáveis, oferta laboral e metodologia económica; não encerra ACT-02/V2-07/V2-10. [OBSERVATION-NATURE-20261113] Delta instalado na homologação em 42b9324a; capacidade estruturada pronta, legado sem classificação permanece por confirmar. Mantidos cobertura factual, comparabilidade estatística, oferta laboral e metodologia económica; ACT-02 parcial.","Fortify, PortalProfileAdministration/Access, grants, policies, portal_security_approvals e menus atuais","030000→040000 instalados, seis categorias ON; contas/grants reais concluídos. Autorizações por tipo/org e independência mantidas.",Nenhuma nova decisão identificada para reconciliar/demonstrar esta cláusula. Decisões específicas só após localizar a regra correspondente.,Reconciliação e prova individual antes de estimar alteração,Estimativa partilhada no lote correspondente de visao-consolidada-modulos.md; não somar por linha/cláusula/campo. Grupo: perfis. Esforço de código adicional só após lacuna reproduzida.,"28/10:investor-usability-git-delivery-20261028.json;backup/restauro176,ficheiros369,Git normal,APIs/assets,pipeline;provas QA anteriores reutilizadas;dados/permissões preservados. Histórico: 28/10:correcção do CTA sectorial por capacidade efectiva;frontend9,Feature3/14,Unit1/13;pipeline502e3ec4 preservou6e8de43a ao falhar;retoma sem enfraquecer guardas. Histórico: 28/10:investor-usability-qa-20261028.json;frontend8,feature3/12,tipos/build/PHP;fontes/permissões/histórico preservados;provas anteriores reutilizadas. Histórico: 28/10:catalogue_result_presentation;API pública Turismo/Cabo0 versus sector16/Inhambane;2testes SSR,tipos/build;provas nacionais/selector preservadas. Histórico: 28/10:selector_delta em catalogue-province-coverage-qa-20261028.json;4testes de eventos/estado,tipos/build;provas nacionais6/617 reutilizadas. Histórico: 28/10:catalogue-province-coverage-qa-20261028.json;4testes/70verificações,tipos/build/PHP;contexto aprovado em23/10 reutilizado;sem novas publicações/permissões. Evidência anterior: 28/10:navigation-git-delivery-20261028.json;Git normal,backup/restauro176tabelas,369ficheiros/configuração preservados,base interna preservada,16testes QA reutilizados;prova técnica não equivale a visual. Evidência anterior: 28/10:navigation-reconciliation-qa-20261028.json;inventário antes dos testes,16testes/0falhas,4cenários/todos destinos preservados,tipos/build/PHP;SSR não é prova visual activa;6d147693/dados/fontes/perfis/históricos conservados. Evidência histórica: outputs/investmoz-audit-current-20261012/runtime-active.json; runtime-qa18445.json. Inventário/GET do domínio não demonstra esta cláusula individual. | Registo da linha entregue (continuacao): 28/10:inventário anterior em outputs/navigation-reconciliation-20261028/preservation-before.json;6d147693/base435Gurué e provas aceites preservados;fonteAppSidebar/PortalGroupedMenu/ContentManagement conferida antes dos testes do delta. Evidências anteriores: outputs/investmoz-audit-current-20261012/runtime-active.json; runtime-qa18445.json. Inventário/GET do domínio não demonstra esta cláusula individual. tests/frontend/portal-horizontal-shell.test.mjs; 146composiçõesSSR/23casos dirigidos. Visual não inferido; conector browser access host unavailable. outputs/horizontal-menu-delivery-20261110/verification.json; 10hashes eHTTPS conferidos, backup/restauro190tabelas e369ficheiros. [MAP-COMPARISON-20261113] outputs/map-comparison-20261113/verification.json; browser-verification.json; três testes novos, tipos/lint/build QA. Provas anteriores preservadas, sem repetição. Instalação/preservação verificadas: outputs/map-comparison-20261113/homologation-installed.json. [OBSERVATION-NATURE-20261113] outputs/observation-nature-20261113/verification.json; 3 testes backend/21 asserções, 5 frontend afectados; análise, tipos, lint, build e Edge aprovados. Instalação/preservação verificadas: outputs/observation-nature-20261113/homologation-installed.json.",perfis,12/10/2026 — reconciliação e HTTP; nova inspeção visual bloqueada,,,Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.,"QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.",app/Http/Controllers/DashboardController.php; app/Services/CountryCatalogue.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida,"InvestmentWorkspaceTest, InvestorGuidanceTest; suite global QA e GET por perfil disponíveis. Evidência do domínio não demonstra integralmente esta cláusula; UI individual pendente.",Não demonstrado individualmente; localizar critério e executar em QA.,,,,"0,5–2 h de análise/prova por cláusula sem correspondência, agrupada por contrato/consumidor; não somar estas faixas como projetos independentes. Implementação indeterminada até localizar lacuna.",,, +V2-07,Menu de gestão preserva rotas e permissões existentes,"backlog-mestre.md; § 3.2.3.4–3.2.3.10, p. 2610–3339",dashboard/perfis,/api/v1/investment/companies/{id?}; /api/v1/investment/notifications; /api/v1/investment/notifications/{id}/read; /api/v1/investment/profile; /api/v1/investment/submissions/{id}/messages; /api/v1/investment/submissions/{id}/revisions/{version}; /dashboard; /investidor/companies/{id?}; /investidor/manifestacoes/{id}/messages; /investidor/manifestacoes/{id}/revisions/{version}; /investidor/notifications; /investidor/notifications/{id}/read,"Fortify, PortalProfileAdministration/Access, grants, policies, portal_security_approvals e menus atuais. Capacidade existente associada ao domínio; correspondência integral desta cláusula só quando demonstrada na prova individual. [MAP-COMPARISON-20261113] Comparação progressiva de duas observações públicas do mapa: valores/fontes/versões preservados; metadados confrontados; sem evolução ou índice inferido. Instalado na homologação em 1263b4f6. [OBSERVATION-NATURE-20261113] Natureza observada/planeada/projectada/por confirmar no editor, recuperação privada e consulta/comparação; Instalado na homologação em 42b9324a. [OBSERVATION-PERIOD-20261113] Comparação temporal: duração inclusiva e avisos de duração desigual/sobreposição; datas inválidas por confirmar. QA, sem instalação.","Ativo investemoz:5432, 295 tabelas, COUNTRY02/030000/040000 instalados; seis categorias e administração habilitadas. Leitura atual não demonstra esta cláusula individual. Legado, percurso integrado, modulares/ofertas e notificações desabilitados.10/11 QA posteriord5cb41b1: cabeçalho horizontal comum sem sidebar global concorrente em todos os146layouts; Descoberta sem cinco atalhos da entrada principal,que conserva os seus links. Não instalado. Menus instaladosd216830b em10/11/2026; visual mantém-se pendente.",28/10:6 tests/617 assertions;shared province/location filters;prior types/build reused. History: outputs/investmoz-audit-current-20261012/runtime-active.json; runtime-qa18445.json. Inventário/GET do domínio não demonstra esta cláusula individual.,"28/10:789fffd0 instalado e delta técnico conferido;conferência visual/sessão real e formulário fiscal concreto pendentes. Histórico: 28/10:usabilidade/fluxo/formulários e filtro de zonas corrigidos em QA,sem instalação;recusa Turismo/sessão real pendente. Histórico: 28/10:resultados por sector/localização separados do apoio educativo em QA,sem instalação. Histórico: 28/10:selector territorial único em QA,sem instalação;preservação e cobertura nacional mantidas. Histórico: 28/10:national QA;11 provincial units,6 corridors,2 sectors;not installed. History: 28/10:consulta provincial corrigida em QA,sem instalação;Maputo Agronegócio 0→5;histórico preservado. Histórico: 28/10:menus 6e8de43a instalados e delta técnico conferido;conferência visual autenticada pendente;aceitações anteriores preservadas. Histórico: 28/10:reorganização implementada/verificada estruturalmente em QA,sem instalação;validação visual/sessão real pendente;âmbito anterior preservado. Histórico: Sem evidência suficiente | Registo da linha entregue (continuacao): 28/10:revisão de apresentação emQA após relato Tempo;verificação do delta pendente,aceitação anterior preservada no seu âmbito. Histórico: Sem evidência suficiente","28/10:falta entrega e conferência visual do delta provincial;outros menus não declarados integralmente auditados. Lacuna anterior: 28/10:omissões/ocultação corrigidas no código instalado;resta observar a sessão real e responsividade sem presumir perda de permissões. Lacuna anterior: 28/10:omissão de subdestinos e ocultação da área de trabalho corrigidas no candidato QA;falta conferência visual e capacidades reais da sessão,sem presumir perda de permissões. Lacuna histórica: Reutilizar provas existentes; suplementar autorização/revogação/elevação por ação/consumidor, sem sistema paralelo. Critério individual original preservado; cobertura atual ainda não individualizada. | Registo da linha entregue (continuacao): 28/10:confirmadas omissão de subdestinos na barra lateral e ocultação da área de trabalho no menu da conta;props/acesso da sessão real não demonstrados,sem presumir falta de permissões. Lacuna histórica: Reutilizar provas existentes; suplementar autorização/revogação/elevação por ação/consumidor, sem sistema paralelo. Critério individual original preservado; cobertura atual ainda não individualizada.","030000→040000 instalados, seis categorias ON; contas/grants reais concluídos. Autorizações por tipo/org e independência mantidas. Nenhuma nova decisão identificada para reconciliar/demonstrar esta cláusula. Decisões específicas só após localizar a regra correspondente.","V2-07: Dashboard integral, workflow editorial, métricas e APIs adicionais: reconciliação individual pendente; não criar tabelas paralelas a entidades existentes",P2,V2-07: Estado da primeira entrega; confirmações posteriores permanecem separadas,V2-07,1,"[{""id"":""V2-07"",""pedido"":""Menu de gestão preserva rotas e permissões existentes"",""fontes"":[""backlog-mestre.md; § 3.2.3.4–3.2.3.10, p. 2610–3339""],""aceitacao"":""Dashboard integral, workflow editorial, métricas e APIs adicionais: reconciliação individual pendente; não criar tabelas paralelas a entidades existentes"",""estado"":""parcial"",""variantes"":""Estado da primeira entrega; confirmações posteriores permanecem separadas"",""modulo"":""dashboard/perfis""}]",Não demonstrado individualmente; localizar critério e executar em QA.,Não demonstrado individualmente; localizar critério e executar em QA.,Não demonstrado individualmente; localizar critério e executar em QA.,Não demonstrado individualmente; localizar critério e executar em QA.,Não demonstrado individualmente; localizar critério e executar em QA.,Texto exatamente equivalente no mesmo módulo; sem fusão semântica aproximada,parcial,public.investment_accounts: 0 registos; public.investment_company_declarations: 0 registos; public.investment_submissions: 3 registos,"A evidência existente é do domínio ou uma declaração histórica; não identifica a demonstração integral desta cláusula. Não afirmar implementado/parcial apenas por componente, menu ou teste global.","Reutilizar provas existentes; suplementar autorização/revogação/elevação por ação/consumidor, sem sistema paralelo. Critério individual original preservado; cobertura atual ainda não individualizada. [MAP-COMPARISON-20261113] Ferramenta de confronto instalada em 1263b4f6. Mantidos os restantes critérios amplos, cobertura factual, séries comparáveis, oferta laboral e metodologia económica; não encerra ACT-02/V2-07/V2-10. [OBSERVATION-NATURE-20261113] Delta instalado na homologação em 42b9324a; capacidade estruturada pronta, legado sem classificação permanece por confirmar. Mantidos cobertura factual, comparabilidade estatística, oferta laboral e metodologia económica; ACT-02 parcial. [OBSERVATION-PERIOD-20261113] Instalação do delta temporal pendente; não encerra comparabilidade estatística, cobertura factual, oferta laboral, legado documental ou metodologia económica.","Fortify, PortalProfileAdministration/Access, grants, policies, portal_security_approvals e menus atuais","030000→040000 instalados, seis categorias ON; contas/grants reais concluídos. Autorizações por tipo/org e independência mantidas.",Nenhuma nova decisão identificada para reconciliar/demonstrar esta cláusula. Decisões específicas só após localizar a regra correspondente.,Reconciliação e prova individual antes de estimar alteração,Estimativa partilhada no lote correspondente de visao-consolidada-modulos.md; não somar por linha/cláusula/campo. Grupo: perfis. Esforço de código adicional só após lacuna reproduzida.,"28/10:investor-usability-git-delivery-20261028.json;backup/restauro176,ficheiros369,Git normal,APIs/assets,pipeline;provas QA anteriores reutilizadas;dados/permissões preservados. Histórico: 28/10:correcção do CTA sectorial por capacidade efectiva;frontend9,Feature3/14,Unit1/13;pipeline502e3ec4 preservou6e8de43a ao falhar;retoma sem enfraquecer guardas. Histórico: 28/10:investor-usability-qa-20261028.json;frontend8,feature3/12,tipos/build/PHP;fontes/permissões/histórico preservados;provas anteriores reutilizadas. Histórico: 28/10:catalogue_result_presentation;API pública Turismo/Cabo0 versus sector16/Inhambane;2testes SSR,tipos/build;provas nacionais/selector preservadas. Histórico: 28/10:selector_delta em catalogue-province-coverage-qa-20261028.json;4testes de eventos/estado,tipos/build;provas nacionais6/617 reutilizadas. Histórico: 28/10:catalogue-province-coverage-qa-20261028.json;4testes/70verificações,tipos/build/PHP;contexto aprovado em23/10 reutilizado;sem novas publicações/permissões. Evidência anterior: 28/10:navigation-git-delivery-20261028.json;Git normal,backup/restauro176tabelas,369ficheiros/configuração preservados,base interna preservada,16testes QA reutilizados;prova técnica não equivale a visual. Evidência anterior: 28/10:navigation-reconciliation-qa-20261028.json;inventário antes dos testes,16testes/0falhas,4cenários/todos destinos preservados,tipos/build/PHP;SSR não é prova visual activa;6d147693/dados/fontes/perfis/históricos conservados. Evidência histórica: outputs/investmoz-audit-current-20261012/runtime-active.json; runtime-qa18445.json. Inventário/GET do domínio não demonstra esta cláusula individual. | Registo da linha entregue (continuacao): 28/10:inventário anterior em outputs/navigation-reconciliation-20261028/preservation-before.json;6d147693/base435Gurué e provas aceites preservados;fonteAppSidebar/PortalGroupedMenu/ContentManagement conferida antes dos testes do delta. Evidências anteriores: outputs/investmoz-audit-current-20261012/runtime-active.json; runtime-qa18445.json. Inventário/GET do domínio não demonstra esta cláusula individual. tests/frontend/portal-horizontal-shell.test.mjs; 146composiçõesSSR/23casos dirigidos. Visual não inferido; conector browser access host unavailable. outputs/horizontal-menu-delivery-20261110/verification.json; 10hashes eHTTPS conferidos, backup/restauro190tabelas e369ficheiros. [MAP-COMPARISON-20261113] outputs/map-comparison-20261113/verification.json; browser-verification.json; três testes novos, tipos/lint/build QA. Provas anteriores preservadas, sem repetição. Instalação/preservação verificadas: outputs/map-comparison-20261113/homologation-installed.json. [OBSERVATION-NATURE-20261113] outputs/observation-nature-20261113/verification.json; 3 testes backend/21 asserções, 5 frontend afectados; análise, tipos, lint, build e Edge aprovados. Instalação/preservação verificadas: outputs/observation-nature-20261113/homologation-installed.json. [OBSERVATION-PERIOD-20261113] outputs/observation-period-20261113/verification.json; dois testes novos/sete afectados, tipos/lint/build e Edge aprovados.",perfis,12/10/2026 — reconciliação e HTTP; nova inspeção visual bloqueada,,,Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.,"QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.",app/Http/Controllers/DashboardController.php; app/Services/CountryCatalogue.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida,"InvestmentWorkspaceTest, InvestorGuidanceTest; suite global QA e GET por perfil disponíveis. Evidência do domínio não demonstra integralmente esta cláusula; UI individual pendente.",Não demonstrado individualmente; localizar critério e executar em QA.,,,,"0,5–2 h de análise/prova por cláusula sem correspondência, agrupada por contrato/consumidor; não somar estas faixas como projetos independentes. Implementação indeterminada até localizar lacuna.",,, V2-08,Projetos/clusters/zonas pesquisáveis e fichas navegáveis em QA; esquema territorial ativo constatado,"backlog-mestre.md; § 4.6.1, p. 3740–6267",cartografia/relações,/api/v1/geo/drafts; /api/v1/geo/search; /api/v1/geo/sources; /api/v1/geo/sources/{id}/transitions; /api/v1/geo/territories; /api/v1/geo/territories/{id}; /api/v1/geo/territories/{id}/transitions; /api/v1/geo/territories/{type}/{id}; /api/v1/geo/{collection}; /api/v1/investment/compare; /api/v1/investment/export; /api/v1/investment/favourites/{id},"InvestmentGeography, campos TerritoryFields/ProvinceSelect, geo_locations/geo_geometries e importador autenticado. Capacidade existente associada ao domínio; correspondência integral desta cláusula só quando demonstrada na prova individual.","Ativo investemoz:5432, 295 tabelas, COUNTRY02/030000/040000 instalados; seis categorias e administração habilitadas. Leitura atual não demonstra esta cláusula individual. Legado, percurso integrado, modulares/ofertas e notificações desabilitados.",outputs/investmoz-audit-current-20261012/runtime-active.json; runtime-qa18445.json. Inventário/GET do domínio não demonstra esta cláusula individual.,Sem evidência suficiente,"Demonstrar consumidor: pesquisar→selecionar→gravar→nova sessão→renderizar limite correto; conservar pai, código e fonte. Critério individual original preservado; cobertura atual ainda não individualizada.","QA408/581INE; ativo0geometrias;173correspondências por nome/edição/pai, Mandie ambíguo. Publicação é ação separada. Nenhuma nova decisão identificada para reconciliar/demonstrar esta cláusula. Decisões específicas só após localizar a regra correspondente.","V2-08: Revisão documental de cada área, limites/polígonos oficiais, disponibilidade, capacidade e histórico; links territoriais existentes não certificam todas as correções propostas",P2,V2-08: Estado da primeira entrega; confirmações posteriores permanecem separadas,V2-08,1,"[{""id"":""V2-08"",""pedido"":""Projetos/clusters/zonas pesquisáveis e fichas navegáveis em QA; esquema territorial ativo constatado"",""fontes"":[""backlog-mestre.md; § 4.6.1, p. 3740–6267""],""aceitacao"":""Revisão documental de cada área, limites/polígonos oficiais, disponibilidade, capacidade e histórico; links territoriais existentes não certificam todas as correções propostas"",""estado"":""parcial"",""variantes"":""Estado da primeira entrega; confirmações posteriores permanecem separadas"",""modulo"":""cartografia/relações""}]",Não demonstrado individualmente; localizar critério e executar em QA.,Não demonstrado individualmente; localizar critério e executar em QA.,Não demonstrado individualmente; localizar critério e executar em QA.,Não demonstrado individualmente; localizar critério e executar em QA.,Não demonstrado individualmente; localizar critério e executar em QA.,Texto exatamente equivalente no mesmo módulo; sem fusão semântica aproximada,parcial,public.geo_locations: 1990 registos; public.geo_geometries: 0 registos; public.project_locations: 28 registos; public.cluster_projects: 13 registos; public.opportunity_projects: 0 registos; public.opportunity_clusters: 0 registos,"A evidência existente é do domínio ou uma declaração histórica; não identifica a demonstração integral desta cláusula. Não afirmar implementado/parcial apenas por componente, menu ou teste global.","Demonstrar consumidor: pesquisar→selecionar→gravar→nova sessão→renderizar limite correto; conservar pai, código e fonte. Critério individual original preservado; cobertura atual ainda não individualizada.","InvestmentGeography, campos TerritoryFields/ProvinceSelect, geo_locations/geo_geometries e importador autenticado","QA408/581INE; ativo0geometrias;173correspondências por nome/edição/pai, Mandie ambíguo. Publicação é ação separada.",Nenhuma nova decisão identificada para reconciliar/demonstrar esta cláusula. Decisões específicas só após localizar a regra correspondente.,Reconciliação e prova individual antes de estimar alteração,Estimativa partilhada no lote correspondente de visao-consolidada-modulos.md; não somar por linha/cláusula/campo. Grupo: território. Esforço de código adicional só após lacuna reproduzida.,outputs/investmoz-audit-current-20261012/runtime-active.json; runtime-qa18445.json. Inventário/GET do domínio não demonstra esta cláusula individual.,território,12/10/2026 — reconciliação e HTTP; nova inspeção visual bloqueada,,,Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.,"QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.",resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida,"InvestmentTerritoryTest, TerritorialRegistryTest, InvestmentTerritorialTraceabilityTest, InvestmentZoneTest; suite global QA e GET por perfil disponíveis. Evidência do domínio não demonstra integralmente esta cláusula; UI individual pendente.",Não demonstrado individualmente; localizar critério e executar em QA.,,,,"0,5–2 h de análise/prova por cláusula sem correspondência, agrupada por contrato/consumidor; não somar estas faixas como projetos independentes. Implementação indeterminada até localizar lacuna.",,, V2-09,"Nenhum score de sucesso, disponibilidade ou elegibilidade inventado","backlog-mestre.md; § 4.6.1.14–4.6.1.18, p. 4252–6267",governação/outros,/api/v1/investment/admin/interests/{interest}/status; /management/history; /management/interests; /management/interests/{interest}; /management/interests/{interest}/consent/contact; /management/interests/{interest}/consent/proponent; /management/opportunities; /management/opportunities/create; /management/opportunities/drafts; /management/opportunities/{id}/draft; /management/opportunities/{id}/edit; /management/opportunities/{id}/lifecycle,"Entidades, schema/configuração e serviços existentes; correspondência individual por estabelecer. Capacidade existente associada ao domínio; correspondência integral desta cláusula só quando demonstrada na prova individual.","Ativo investemoz:5432, 295 tabelas, COUNTRY02/030000/040000 instalados; seis categorias e administração habilitadas. Leitura atual não demonstra esta cláusula individual. Legado, percurso integrado, modulares/ofertas e notificações desabilitados.",outputs/investmoz-audit-current-20261012/runtime-active.json; runtime-qa18445.json. Inventário/GET do domínio não demonstra esta cláusula individual.,Sem evidência suficiente,Localizar obrigação verificável e consumidores/contrato atuais antes de estimar implementação ou declarar conclusão. Critério individual original preservado; cobertura atual ainda não individualizada.,"Ler secção/versão correspondente; distinguir requisito funcional, decisão e exemplo. Fontes oficiais já aceites. Nenhuma nova decisão identificada para reconciliar/demonstrar esta cláusula. Decisões específicas só após localizar a regra correspondente.","V2-09: Validar pesos, lacunas, condicionantes e saídas explicáveis; não executar seeds demonstrativos contra dados ativos",P2,V2-09: Estado da primeira entrega; confirmações posteriores permanecem separadas,V2-09,1,"[{""id"":""V2-09"",""pedido"":""Nenhum score de sucesso, disponibilidade ou elegibilidade inventado"",""fontes"":[""backlog-mestre.md; § 4.6.1.14–4.6.1.18, p. 4252–6267""],""aceitacao"":""Validar pesos, lacunas, condicionantes e saídas explicáveis; não executar seeds demonstrativos contra dados ativos"",""estado"":""parcial"",""variantes"":""Estado da primeira entrega; confirmações posteriores permanecem separadas"",""modulo"":""governação/outros""}]",Não demonstrado individualmente; localizar critério e executar em QA.,Não demonstrado individualmente; localizar critério e executar em QA.,Não demonstrado individualmente; localizar critério e executar em QA.,Não demonstrado individualmente; localizar critério e executar em QA.,Não demonstrado individualmente; localizar critério e executar em QA.,Texto exatamente equivalente no mesmo módulo; sem fusão semântica aproximada,parcial,Requisito transversal; consultar estado-ativo-after.json,"A evidência existente é do domínio ou uma declaração histórica; não identifica a demonstração integral desta cláusula. Não afirmar implementado/parcial apenas por componente, menu ou teste global.",Localizar obrigação verificável e consumidores/contrato atuais antes de estimar implementação ou declarar conclusão. Critério individual original preservado; cobertura atual ainda não individualizada.,"Entidades, schema/configuração e serviços existentes; correspondência individual por estabelecer","Ler secção/versão correspondente; distinguir requisito funcional, decisão e exemplo. Fontes oficiais já aceites.",Nenhuma nova decisão identificada para reconciliar/demonstrar esta cláusula. Decisões específicas só após localizar a regra correspondente.,Reconciliação e prova individual antes de estimar alteração,Estimativa partilhada no lote correspondente de visao-consolidada-modulos.md; não somar por linha/cláusula/campo. Grupo: governação e demais cláusulas. Esforço de código adicional só após lacuna reproduzida.,outputs/investmoz-audit-current-20261012/runtime-active.json; runtime-qa18445.json. Inventário/GET do domínio não demonstra esta cláusula individual.,governação e demais cláusulas,12/10/2026 — reconciliação e HTTP; nova inspeção visual bloqueada,,,Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.,"QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.",AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida,; suite global QA e GET por perfil disponíveis. Evidência do domínio não demonstra integralmente esta cláusula; UI individual pendente.,Não demonstrado individualmente; localizar critério e executar em QA.,,,,"0,5–2 h de análise/prova por cláusula sem correspondência, agrupada por contrato/consumidor; não somar estas faixas como projetos independentes. Implementação indeterminada até localizar lacuna.",,, -V2-10,Menus e preparação não limitados aos pilotos,"backlog-mestre.md; § 4.1–4.7, p. 3646–6994",dashboard/perfis,/api/v1/investment/companies/{id?}; /api/v1/investment/notifications; /api/v1/investment/notifications/{id}/read; /api/v1/investment/profile; /api/v1/investment/submissions/{id}/messages; /api/v1/investment/submissions/{id}/revisions/{version}; /dashboard; /investidor/companies/{id?}; /investidor/manifestacoes/{id}/messages; /investidor/manifestacoes/{id}/revisions/{version}; /investidor/notifications; /investidor/notifications/{id}/read,"Fortify, PortalProfileAdministration/Access, grants, policies, portal_security_approvals e menus atuais. Capacidade existente associada ao domínio; correspondência integral desta cláusula só quando demonstrada na prova individual. [MAP-COMPARISON-20261113] Comparação progressiva de duas observações públicas do mapa: valores/fontes/versões preservados; metadados confrontados; sem evolução ou índice inferido. Instalado na homologação em 1263b4f6. [OBSERVATION-NATURE-20261113] Natureza observada/planeada/projectada/por confirmar no editor, recuperação privada e consulta/comparação; Instalado na homologação em 42b9324a.","Ativo investemoz:5432, 295 tabelas, COUNTRY02/030000/040000 instalados; seis categorias e administração habilitadas. Leitura atual não demonstra esta cláusula individual. Legado, percurso integrado, modulares/ofertas e notificações desabilitados.10/11 QA posteriord5cb41b1: cabeçalho horizontal comum sem sidebar global concorrente em todos os146layouts; Descoberta sem cinco atalhos da entrada principal,que conserva os seus links. Não instalado. Menus instaladosd216830b em10/11/2026; visual mantém-se pendente.",28/10:6 tests/617 assertions;shared province/location filters;prior types/build reused. History: outputs/investmoz-audit-current-20261012/runtime-active.json; runtime-qa18445.json. Inventário/GET do domínio não demonstra esta cláusula individual.,"28/10:789fffd0 instalado e delta técnico conferido;conferência visual/sessão real e formulário fiscal concreto pendentes. Histórico: 28/10:usabilidade/fluxo/formulários e filtro de zonas corrigidos em QA,sem instalação;recusa Turismo/sessão real pendente. Histórico: 28/10:resultados por sector/localização separados do apoio educativo em QA,sem instalação. Histórico: 28/10:selector territorial único em QA,sem instalação;preservação e cobertura nacional mantidas. Histórico: 28/10:national QA;11 provincial units,6 corridors,2 sectors;not installed. History: 28/10:consulta provincial corrigida em QA,sem instalação;Maputo Agronegócio 0→5;histórico preservado. Histórico: 28/10:menus 6e8de43a instalados e delta técnico conferido;conferência visual autenticada pendente;aceitações anteriores preservadas. Histórico: 28/10:reorganização implementada/verificada estruturalmente em QA,sem instalação;validação visual/sessão real pendente;âmbito anterior preservado. Histórico: Sem evidência suficiente | Registo da linha entregue (continuacao): 28/10:revisão de apresentação emQA após relato Tempo;verificação do delta pendente,aceitação anterior preservada no seu âmbito. Histórico: Sem evidência suficiente","28/10:falta entrega e conferência visual do delta provincial;outros menus não declarados integralmente auditados. Lacuna anterior: 28/10:omissões/ocultação corrigidas no código instalado;resta observar a sessão real e responsividade sem presumir perda de permissões. Lacuna anterior: 28/10:omissão de subdestinos e ocultação da área de trabalho corrigidas no candidato QA;falta conferência visual e capacidades reais da sessão,sem presumir perda de permissões. Lacuna histórica: Reutilizar provas existentes; suplementar autorização/revogação/elevação por ação/consumidor, sem sistema paralelo. Critério individual original preservado; cobertura atual ainda não individualizada. | Registo da linha entregue (continuacao): 28/10:confirmadas omissão de subdestinos na barra lateral e ocultação da área de trabalho no menu da conta;props/acesso da sessão real não demonstrados,sem presumir falta de permissões. Lacuna histórica: Reutilizar provas existentes; suplementar autorização/revogação/elevação por ação/consumidor, sem sistema paralelo. Critério individual original preservado; cobertura atual ainda não individualizada.","030000→040000 instalados, seis categorias ON; contas/grants reais concluídos. Autorizações por tipo/org e independência mantidas. Nenhuma nova decisão identificada para reconciliar/demonstrar esta cláusula. Decisões específicas só após localizar a regra correspondente.","V2-10: Pilotos reais de agricultura, indústria e turismo; baseline e métricas com consentimento, responsáveis reais e cobertura inclusiva",P2,V2-10: Estado da primeira entrega; confirmações posteriores permanecem separadas,V2-10,1,"[{""id"":""V2-10"",""pedido"":""Menus e preparação não limitados aos pilotos"",""fontes"":[""backlog-mestre.md; § 4.1–4.7, p. 3646–6994""],""aceitacao"":""Pilotos reais de agricultura, indústria e turismo; baseline e métricas com consentimento, responsáveis reais e cobertura inclusiva"",""estado"":""parcial"",""variantes"":""Estado da primeira entrega; confirmações posteriores permanecem separadas"",""modulo"":""dashboard/perfis""}]",Não demonstrado individualmente; localizar critério e executar em QA.,Não demonstrado individualmente; localizar critério e executar em QA.,Não demonstrado individualmente; localizar critério e executar em QA.,Não demonstrado individualmente; localizar critério e executar em QA.,Não demonstrado individualmente; localizar critério e executar em QA.,Texto exatamente equivalente no mesmo módulo; sem fusão semântica aproximada,parcial,public.investment_accounts: 0 registos; public.investment_company_declarations: 0 registos; public.investment_submissions: 3 registos,"A evidência existente é do domínio ou uma declaração histórica; não identifica a demonstração integral desta cláusula. Não afirmar implementado/parcial apenas por componente, menu ou teste global.","Reutilizar provas existentes; suplementar autorização/revogação/elevação por ação/consumidor, sem sistema paralelo. Critério individual original preservado; cobertura atual ainda não individualizada. [MAP-COMPARISON-20261113] Ferramenta de confronto instalada em 1263b4f6. Mantidos os restantes critérios amplos, cobertura factual, séries comparáveis, oferta laboral e metodologia económica; não encerra ACT-02/V2-07/V2-10. [OBSERVATION-NATURE-20261113] Delta instalado na homologação em 42b9324a; capacidade estruturada pronta, legado sem classificação permanece por confirmar. Mantidos cobertura factual, comparabilidade estatística, oferta laboral e metodologia económica; ACT-02 parcial.","Fortify, PortalProfileAdministration/Access, grants, policies, portal_security_approvals e menus atuais","030000→040000 instalados, seis categorias ON; contas/grants reais concluídos. Autorizações por tipo/org e independência mantidas.",Nenhuma nova decisão identificada para reconciliar/demonstrar esta cláusula. Decisões específicas só após localizar a regra correspondente.,Reconciliação e prova individual antes de estimar alteração,Estimativa partilhada no lote correspondente de visao-consolidada-modulos.md; não somar por linha/cláusula/campo. Grupo: perfis. Esforço de código adicional só após lacuna reproduzida.,"28/10:investor-usability-git-delivery-20261028.json;backup/restauro176,ficheiros369,Git normal,APIs/assets,pipeline;provas QA anteriores reutilizadas;dados/permissões preservados. Histórico: 28/10:correcção do CTA sectorial por capacidade efectiva;frontend9,Feature3/14,Unit1/13;pipeline502e3ec4 preservou6e8de43a ao falhar;retoma sem enfraquecer guardas. Histórico: 28/10:investor-usability-qa-20261028.json;frontend8,feature3/12,tipos/build/PHP;fontes/permissões/histórico preservados;provas anteriores reutilizadas. Histórico: 28/10:catalogue_result_presentation;API pública Turismo/Cabo0 versus sector16/Inhambane;2testes SSR,tipos/build;provas nacionais/selector preservadas. Histórico: 28/10:selector_delta em catalogue-province-coverage-qa-20261028.json;4testes de eventos/estado,tipos/build;provas nacionais6/617 reutilizadas. Histórico: 28/10:catalogue-province-coverage-qa-20261028.json;4testes/70verificações,tipos/build/PHP;contexto aprovado em23/10 reutilizado;sem novas publicações/permissões. Evidência anterior: 28/10:navigation-git-delivery-20261028.json;Git normal,backup/restauro176tabelas,369ficheiros/configuração preservados,base interna preservada,16testes QA reutilizados;prova técnica não equivale a visual. Evidência anterior: 28/10:navigation-reconciliation-qa-20261028.json;inventário antes dos testes,16testes/0falhas,4cenários/todos destinos preservados,tipos/build/PHP;SSR não é prova visual activa;6d147693/dados/fontes/perfis/históricos conservados. Evidência histórica: outputs/investmoz-audit-current-20261012/runtime-active.json; runtime-qa18445.json. Inventário/GET do domínio não demonstra esta cláusula individual. | Registo da linha entregue (continuacao): 28/10:inventário anterior em outputs/navigation-reconciliation-20261028/preservation-before.json;6d147693/base435Gurué e provas aceites preservados;fonteAppSidebar/PortalGroupedMenu/ContentManagement conferida antes dos testes do delta. Evidências anteriores: outputs/investmoz-audit-current-20261012/runtime-active.json; runtime-qa18445.json. Inventário/GET do domínio não demonstra esta cláusula individual. tests/frontend/portal-horizontal-shell.test.mjs; 146composiçõesSSR/23casos dirigidos. Visual não inferido; conector browser access host unavailable. outputs/horizontal-menu-delivery-20261110/verification.json; 10hashes eHTTPS conferidos, backup/restauro190tabelas e369ficheiros. [MAP-COMPARISON-20261113] outputs/map-comparison-20261113/verification.json; browser-verification.json; três testes novos, tipos/lint/build QA. Provas anteriores preservadas, sem repetição. Instalação/preservação verificadas: outputs/map-comparison-20261113/homologation-installed.json. [OBSERVATION-NATURE-20261113] outputs/observation-nature-20261113/verification.json; 3 testes backend/21 asserções, 5 frontend afectados; análise, tipos, lint, build e Edge aprovados. Instalação/preservação verificadas: outputs/observation-nature-20261113/homologation-installed.json.",perfis,12/10/2026 — reconciliação e HTTP; nova inspeção visual bloqueada,,,Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.,"QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.",app/Http/Controllers/DashboardController.php; app/Services/CountryCatalogue.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida,"InvestmentWorkspaceTest, InvestorGuidanceTest; suite global QA e GET por perfil disponíveis. Evidência do domínio não demonstra integralmente esta cláusula; UI individual pendente.",Não demonstrado individualmente; localizar critério e executar em QA.,,,,"0,5–2 h de análise/prova por cláusula sem correspondência, agrupada por contrato/consumidor; não somar estas faixas como projetos independentes. Implementação indeterminada até localizar lacuna.",,, +V2-10,Menus e preparação não limitados aos pilotos,"backlog-mestre.md; § 4.1–4.7, p. 3646–6994",dashboard/perfis,/api/v1/investment/companies/{id?}; /api/v1/investment/notifications; /api/v1/investment/notifications/{id}/read; /api/v1/investment/profile; /api/v1/investment/submissions/{id}/messages; /api/v1/investment/submissions/{id}/revisions/{version}; /dashboard; /investidor/companies/{id?}; /investidor/manifestacoes/{id}/messages; /investidor/manifestacoes/{id}/revisions/{version}; /investidor/notifications; /investidor/notifications/{id}/read,"Fortify, PortalProfileAdministration/Access, grants, policies, portal_security_approvals e menus atuais. Capacidade existente associada ao domínio; correspondência integral desta cláusula só quando demonstrada na prova individual. [MAP-COMPARISON-20261113] Comparação progressiva de duas observações públicas do mapa: valores/fontes/versões preservados; metadados confrontados; sem evolução ou índice inferido. Instalado na homologação em 1263b4f6. [OBSERVATION-NATURE-20261113] Natureza observada/planeada/projectada/por confirmar no editor, recuperação privada e consulta/comparação; Instalado na homologação em 42b9324a. [OBSERVATION-PERIOD-20261113] Comparação temporal: duração inclusiva e avisos de duração desigual/sobreposição; datas inválidas por confirmar. QA, sem instalação.","Ativo investemoz:5432, 295 tabelas, COUNTRY02/030000/040000 instalados; seis categorias e administração habilitadas. Leitura atual não demonstra esta cláusula individual. Legado, percurso integrado, modulares/ofertas e notificações desabilitados.10/11 QA posteriord5cb41b1: cabeçalho horizontal comum sem sidebar global concorrente em todos os146layouts; Descoberta sem cinco atalhos da entrada principal,que conserva os seus links. Não instalado. Menus instaladosd216830b em10/11/2026; visual mantém-se pendente.",28/10:6 tests/617 assertions;shared province/location filters;prior types/build reused. History: outputs/investmoz-audit-current-20261012/runtime-active.json; runtime-qa18445.json. Inventário/GET do domínio não demonstra esta cláusula individual.,"28/10:789fffd0 instalado e delta técnico conferido;conferência visual/sessão real e formulário fiscal concreto pendentes. Histórico: 28/10:usabilidade/fluxo/formulários e filtro de zonas corrigidos em QA,sem instalação;recusa Turismo/sessão real pendente. Histórico: 28/10:resultados por sector/localização separados do apoio educativo em QA,sem instalação. Histórico: 28/10:selector territorial único em QA,sem instalação;preservação e cobertura nacional mantidas. Histórico: 28/10:national QA;11 provincial units,6 corridors,2 sectors;not installed. History: 28/10:consulta provincial corrigida em QA,sem instalação;Maputo Agronegócio 0→5;histórico preservado. Histórico: 28/10:menus 6e8de43a instalados e delta técnico conferido;conferência visual autenticada pendente;aceitações anteriores preservadas. Histórico: 28/10:reorganização implementada/verificada estruturalmente em QA,sem instalação;validação visual/sessão real pendente;âmbito anterior preservado. Histórico: Sem evidência suficiente | Registo da linha entregue (continuacao): 28/10:revisão de apresentação emQA após relato Tempo;verificação do delta pendente,aceitação anterior preservada no seu âmbito. Histórico: Sem evidência suficiente","28/10:falta entrega e conferência visual do delta provincial;outros menus não declarados integralmente auditados. Lacuna anterior: 28/10:omissões/ocultação corrigidas no código instalado;resta observar a sessão real e responsividade sem presumir perda de permissões. Lacuna anterior: 28/10:omissão de subdestinos e ocultação da área de trabalho corrigidas no candidato QA;falta conferência visual e capacidades reais da sessão,sem presumir perda de permissões. Lacuna histórica: Reutilizar provas existentes; suplementar autorização/revogação/elevação por ação/consumidor, sem sistema paralelo. Critério individual original preservado; cobertura atual ainda não individualizada. | Registo da linha entregue (continuacao): 28/10:confirmadas omissão de subdestinos na barra lateral e ocultação da área de trabalho no menu da conta;props/acesso da sessão real não demonstrados,sem presumir falta de permissões. Lacuna histórica: Reutilizar provas existentes; suplementar autorização/revogação/elevação por ação/consumidor, sem sistema paralelo. Critério individual original preservado; cobertura atual ainda não individualizada.","030000→040000 instalados, seis categorias ON; contas/grants reais concluídos. Autorizações por tipo/org e independência mantidas. Nenhuma nova decisão identificada para reconciliar/demonstrar esta cláusula. Decisões específicas só após localizar a regra correspondente.","V2-10: Pilotos reais de agricultura, indústria e turismo; baseline e métricas com consentimento, responsáveis reais e cobertura inclusiva",P2,V2-10: Estado da primeira entrega; confirmações posteriores permanecem separadas,V2-10,1,"[{""id"":""V2-10"",""pedido"":""Menus e preparação não limitados aos pilotos"",""fontes"":[""backlog-mestre.md; § 4.1–4.7, p. 3646–6994""],""aceitacao"":""Pilotos reais de agricultura, indústria e turismo; baseline e métricas com consentimento, responsáveis reais e cobertura inclusiva"",""estado"":""parcial"",""variantes"":""Estado da primeira entrega; confirmações posteriores permanecem separadas"",""modulo"":""dashboard/perfis""}]",Não demonstrado individualmente; localizar critério e executar em QA.,Não demonstrado individualmente; localizar critério e executar em QA.,Não demonstrado individualmente; localizar critério e executar em QA.,Não demonstrado individualmente; localizar critério e executar em QA.,Não demonstrado individualmente; localizar critério e executar em QA.,Texto exatamente equivalente no mesmo módulo; sem fusão semântica aproximada,parcial,public.investment_accounts: 0 registos; public.investment_company_declarations: 0 registos; public.investment_submissions: 3 registos,"A evidência existente é do domínio ou uma declaração histórica; não identifica a demonstração integral desta cláusula. Não afirmar implementado/parcial apenas por componente, menu ou teste global.","Reutilizar provas existentes; suplementar autorização/revogação/elevação por ação/consumidor, sem sistema paralelo. Critério individual original preservado; cobertura atual ainda não individualizada. [MAP-COMPARISON-20261113] Ferramenta de confronto instalada em 1263b4f6. Mantidos os restantes critérios amplos, cobertura factual, séries comparáveis, oferta laboral e metodologia económica; não encerra ACT-02/V2-07/V2-10. [OBSERVATION-NATURE-20261113] Delta instalado na homologação em 42b9324a; capacidade estruturada pronta, legado sem classificação permanece por confirmar. Mantidos cobertura factual, comparabilidade estatística, oferta laboral e metodologia económica; ACT-02 parcial. [OBSERVATION-PERIOD-20261113] Instalação do delta temporal pendente; não encerra comparabilidade estatística, cobertura factual, oferta laboral, legado documental ou metodologia económica.","Fortify, PortalProfileAdministration/Access, grants, policies, portal_security_approvals e menus atuais","030000→040000 instalados, seis categorias ON; contas/grants reais concluídos. Autorizações por tipo/org e independência mantidas.",Nenhuma nova decisão identificada para reconciliar/demonstrar esta cláusula. Decisões específicas só após localizar a regra correspondente.,Reconciliação e prova individual antes de estimar alteração,Estimativa partilhada no lote correspondente de visao-consolidada-modulos.md; não somar por linha/cláusula/campo. Grupo: perfis. Esforço de código adicional só após lacuna reproduzida.,"28/10:investor-usability-git-delivery-20261028.json;backup/restauro176,ficheiros369,Git normal,APIs/assets,pipeline;provas QA anteriores reutilizadas;dados/permissões preservados. Histórico: 28/10:correcção do CTA sectorial por capacidade efectiva;frontend9,Feature3/14,Unit1/13;pipeline502e3ec4 preservou6e8de43a ao falhar;retoma sem enfraquecer guardas. Histórico: 28/10:investor-usability-qa-20261028.json;frontend8,feature3/12,tipos/build/PHP;fontes/permissões/histórico preservados;provas anteriores reutilizadas. Histórico: 28/10:catalogue_result_presentation;API pública Turismo/Cabo0 versus sector16/Inhambane;2testes SSR,tipos/build;provas nacionais/selector preservadas. Histórico: 28/10:selector_delta em catalogue-province-coverage-qa-20261028.json;4testes de eventos/estado,tipos/build;provas nacionais6/617 reutilizadas. Histórico: 28/10:catalogue-province-coverage-qa-20261028.json;4testes/70verificações,tipos/build/PHP;contexto aprovado em23/10 reutilizado;sem novas publicações/permissões. Evidência anterior: 28/10:navigation-git-delivery-20261028.json;Git normal,backup/restauro176tabelas,369ficheiros/configuração preservados,base interna preservada,16testes QA reutilizados;prova técnica não equivale a visual. Evidência anterior: 28/10:navigation-reconciliation-qa-20261028.json;inventário antes dos testes,16testes/0falhas,4cenários/todos destinos preservados,tipos/build/PHP;SSR não é prova visual activa;6d147693/dados/fontes/perfis/históricos conservados. Evidência histórica: outputs/investmoz-audit-current-20261012/runtime-active.json; runtime-qa18445.json. Inventário/GET do domínio não demonstra esta cláusula individual. | Registo da linha entregue (continuacao): 28/10:inventário anterior em outputs/navigation-reconciliation-20261028/preservation-before.json;6d147693/base435Gurué e provas aceites preservados;fonteAppSidebar/PortalGroupedMenu/ContentManagement conferida antes dos testes do delta. Evidências anteriores: outputs/investmoz-audit-current-20261012/runtime-active.json; runtime-qa18445.json. Inventário/GET do domínio não demonstra esta cláusula individual. tests/frontend/portal-horizontal-shell.test.mjs; 146composiçõesSSR/23casos dirigidos. Visual não inferido; conector browser access host unavailable. outputs/horizontal-menu-delivery-20261110/verification.json; 10hashes eHTTPS conferidos, backup/restauro190tabelas e369ficheiros. [MAP-COMPARISON-20261113] outputs/map-comparison-20261113/verification.json; browser-verification.json; três testes novos, tipos/lint/build QA. Provas anteriores preservadas, sem repetição. Instalação/preservação verificadas: outputs/map-comparison-20261113/homologation-installed.json. [OBSERVATION-NATURE-20261113] outputs/observation-nature-20261113/verification.json; 3 testes backend/21 asserções, 5 frontend afectados; análise, tipos, lint, build e Edge aprovados. Instalação/preservação verificadas: outputs/observation-nature-20261113/homologation-installed.json. [OBSERVATION-PERIOD-20261113] outputs/observation-period-20261113/verification.json; dois testes novos/sete afectados, tipos/lint/build e Edge aprovados.",perfis,12/10/2026 — reconciliação e HTTP; nova inspeção visual bloqueada,,,Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.,"QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.",app/Http/Controllers/DashboardController.php; app/Services/CountryCatalogue.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida,"InvestmentWorkspaceTest, InvestorGuidanceTest; suite global QA e GET por perfil disponíveis. Evidência do domínio não demonstra integralmente esta cláusula; UI individual pendente.",Não demonstrado individualmente; localizar critério e executar em QA.,,,,"0,5–2 h de análise/prova por cláusula sem correspondência, agrupada por contrato/consumidor; não somar estas faixas como projetos independentes. Implementação indeterminada até localizar lacuna.",,, V2-11,Inventário acessível atualizado: 248 ficheiros e 63 anexos incorporados; exemplares de formulários mantidos,"backlog-mestre.md; § 5.1; § 5.2 didática–5.6, p. 7007–7008 e 7191–7558",biblioteca,//; /Simulador; /api/v1/ai/documents; /api/v1/documents/recommendations; /api/v2/investment/admin/legal-sources; /api/v2/investment/admin/legal-sources/{id}/{action}; /apoio; /balcao-virtual; /balcao-virtual/dossiers/{id}/documentos/{document}/conferencia; /como-investir; /documentos; /documentos/{id},"documents, biblioteca, importação autenticada, VerifiedDocumentBinary, jobs/derivadas. Capacidade existente associada ao domínio; correspondência integral desta cláusula só quando demonstrada na prova individual.","Ativo investemoz:5432, 295 tabelas, COUNTRY02/030000/040000 instalados; seis categorias e administração habilitadas. Leitura atual não demonstra esta cláusula individual. Legado, percurso integrado, modulares/ofertas e notificações desabilitados.",outputs/investmoz-audit-current-20261012/runtime-active.json; runtime-qa18445.json. Inventário/GET do domínio não demonstra esta cláusula individual.,Sem evidência suficiente,Cobrir consulta/importação/doc/derivada/hash/perfil e revogação; preservar original; divulgação separada. Não inferir relação territorial. Critério individual original preservado; cobertura atual ainda não individualizada.,Scanner/worker/GD/WebP e originais privados; ACL por oportunidade/sala diferente de partilha individual não implementada. LegadoOFF. Nenhuma nova decisão identificada para reconciliar/demonstrar esta cláusula. Decisões específicas só após localizar a regra correspondente.,"V2-11: Reconciliar todo o conteúdo do portal público, guias/árvores, autorização e atualização por ficheiro; inventário local não é crawl integral do site público",P2,V2-11: Estado da primeira entrega; confirmações posteriores permanecem separadas,V2-11,1,"[{""id"":""V2-11"",""pedido"":""Inventário acessível atualizado: 248 ficheiros e 63 anexos incorporados; exemplares de formulários mantidos"",""fontes"":[""backlog-mestre.md; § 5.1; § 5.2 didática–5.6, p. 7007–7008 e 7191–7558""],""aceitacao"":""Reconciliar todo o conteúdo do portal público, guias/árvores, autorização e atualização por ficheiro; inventário local não é crawl integral do site público"",""estado"":""parcial"",""variantes"":""Estado da primeira entrega; confirmações posteriores permanecem separadas"",""modulo"":""biblioteca""}]",Não demonstrado individualmente; localizar critério e executar em QA.,Não demonstrado individualmente; localizar critério e executar em QA.,Não demonstrado individualmente; localizar critério e executar em QA.,Não demonstrado individualmente; localizar critério e executar em QA.,Não demonstrado individualmente; localizar critério e executar em QA.,Texto exatamente equivalente no mesmo módulo; sem fusão semântica aproximada,parcial,public.documents: 4 registos; public.portal_resources: 4 registos; public.portal_resource_links: 19 registos,"A evidência existente é do domínio ou uma declaração histórica; não identifica a demonstração integral desta cláusula. Não afirmar implementado/parcial apenas por componente, menu ou teste global.",Cobrir consulta/importação/doc/derivada/hash/perfil e revogação; preservar original; divulgação separada. Não inferir relação territorial. Critério individual original preservado; cobertura atual ainda não individualizada.,"documents, biblioteca, importação autenticada, VerifiedDocumentBinary, jobs/derivadas",Scanner/worker/GD/WebP e originais privados; ACL por oportunidade/sala diferente de partilha individual não implementada. LegadoOFF.,Nenhuma nova decisão identificada para reconciliar/demonstrar esta cláusula. Decisões específicas só após localizar a regra correspondente.,Reconciliação e prova individual antes de estimar alteração,Estimativa partilhada no lote correspondente de visao-consolidada-modulos.md; não somar por linha/cláusula/campo. Grupo: documentos e legado. Esforço de código adicional só após lacuna reproduzida.,outputs/investmoz-audit-current-20261012/runtime-active.json; runtime-qa18445.json. Inventário/GET do domínio não demonstra esta cláusula individual.,documentos e legado,12/10/2026 — reconciliação e HTTP; nova inspeção visual bloqueada,,,Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.,"QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.",app/Http/Controllers/PortalServicesController.php; app/Jobs/ScanDocumentForMalware.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida,"PortalServicesTest, DocumentLibrarySchemaCompatibilityTest, ImportDocumentBatchTest, ClamDScannerIntegrationTest; suite global QA e GET por perfil disponíveis. Evidência do domínio não demonstra integralmente esta cláusula; UI individual pendente.",Não demonstrado individualmente; localizar critério e executar em QA.,,,,"0,5–2 h de análise/prova por cláusula sem correspondência, agrupada por contrato/consumidor; não somar estas faixas como projetos independentes. Implementação indeterminada até localizar lacuna.",,, V2-12,"Validação interna não equivale a licença, aprovação, benefício fiscal ou ato administrativo","backlog-mestre.md; § 6, p. 7559–7687; § 3.2.1, p. 1453–2171 diff --git a/resources/js/components/investment-map-indicators.tsx b/resources/js/components/investment-map-indicators.tsx index 0cd14177..8e163282 100644 --- a/resources/js/components/investment-map-indicators.tsx +++ b/resources/js/components/investment-map-indicators.tsx @@ -68,6 +68,21 @@ const completeDate = (value?: string | null) => ); type MapObservation = QuantitativeMapContext['records'][number]; +// Calendar metadata only: inclusive source dates, never a rate or annualisation. +function periodDays(row: MapObservation): number | null { + if ( + !completeDate(row.period_start) || + !completeDate(row.period_end) || + row.period_start! > row.period_end! + ) + return null; + return ( + (Date.parse(row.period_end!) - Date.parse(row.period_start!)) / + 86_400_000 + + 1 + ); +} + const observationKey = (row: MapObservation) => JSON.stringify([row.zone_id, row.id, row.zone_version]); @@ -123,6 +138,23 @@ export function compareMapObservations( `${label} observação: data da fonte incompleta ou inválida.`, ); } + const firstDays = periodDays(first); + const secondDays = periodDays(second); + if (firstDays !== null && secondDays !== null) { + if (firstDays !== secondDays) + issues.push( + 'Duração dos períodos diferente; não trate os valores como bases temporais equivalentes.', + ); + if ( + (first.period_start !== second.period_start || + first.period_end !== second.period_end) && + first.period_start! <= second.period_end! && + second.period_start! <= first.period_end! + ) + issues.push( + 'Os períodos sobrepõem-se; as observações podem abranger os mesmos dias.', + ); + } if (measureKind(first) !== measureKind(second)) issues.push( 'Natureza do valor diferente: observado, planeado e projectado não são equivalentes.', @@ -175,6 +207,13 @@ export function MapObservationComparison({ 'Período', (row) => `${text(row.period_start)} — ${text(row.period_end)}`, ], + [ + 'Duração do período (dias, limites incluídos)', + (row) => { + const days = periodDays(row); + return days === null ? 'Por confirmar' : String(days); + }, + ], ['Âmbito', (row) => text(row.scope)], ['População/base', (row) => text(row.population)], ['Metodologia', (row) => text(row.methodology)], diff --git a/tests/frontend/investment-map-indicators.test.mjs b/tests/frontend/investment-map-indicators.test.mjs index ada7ce85..a11d8f5d 100644 --- a/tests/frontend/investment-map-indicators.test.mjs +++ b/tests/frontend/investment-map-indicators.test.mjs @@ -360,3 +360,31 @@ test('comparison delta: progressive selection stays inside the received filters const single = render({ ...context, records: [row] }); assert.ok(!single.includes('Comparar duas observações')); }); + + +test('temporal delta: unequal duration and overlapping boundaries require review without annualising values', () => { + const first = {...row, description:'Synthetic source', measure_kind:'observed', period_start:'2024-01-01', period_end:'2024-12-31', value:'123.4500'}; + const second = {...first, id:'second', period_start:'2025-01-01', period_end:'2025-12-31', value:'0'}; + const before = JSON.stringify([first,second]); + assert.ok(compareObservations(first,second).issues.some(x=>x.includes('Duração dos períodos diferente'))); + const boundary = {...second, period_start:'2024-12-31'}; + assert.ok(compareObservations(first,boundary).issues.some(x=>x.includes('sobrepõem-se'))); + const identical = {...first,id:'same-period'}; + assert.equal(compareObservations(first,identical).state,'metadata_aligned'); + const html = renderToStaticMarkup(React.createElement(Comparison,{first,second})); + assert.match(html,/Duração do período/);assert.match(html,/>3663650 { + const first = {...row, description:'Synthetic', measure_kind:'observed'}; + for (const change of [{period_start:null},{period_start:'2025'},{period_start:'2025-02-30'},{period_start:'2026-01-01'}]) { + const second = {...first,id:'invalid',...change}; + const result = compareObservations(first,second); + assert.ok(result.issues.some(x=>x.includes('período incompleto ou inválido'))); + assert.ok(!result.issues.some(x=>x.includes('Duração dos períodos diferente'))); + const html = renderToStaticMarkup(React.createElement(Comparison,{first,second})); + assert.match(html,/Por confirmar/);assert.ok(!html.includes('NaN')); + } +});