- {c.kind === 'website' ? ( - - {c.value} - - ) : ( - c.value - )} -
-diff --git a/AGENTS.md b/AGENTS.md index d693d3f9..6a1b3886 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,3 +1,8 @@ +## Uniformização pública e menu — decisão expressa do proprietário,11/11/2026 + +Lista e detalhe das instituições financeiras devem usar a mesma apresentação:descrição única,categoria/tipo sem repetição,produtos/serviços,contactos e moradas úteis apenas quando disponíveis. Não apresentar secções vazias,avisos genéricos repetidos,notas de publicação/importação,preços antigos por reconfirmar ou a mesma informação várias vezes. Deduplicar apenas a apresentação,conservando dados e fontes no editor. Usar Quorus e Moza Banco como exemplos de conferência. +Menu principal:Início,Descoberta,Realização,Suporte,Sobre nós,Mais. Descoberta:Concursos e anúncios,Localizações,Instituições financeiras,Catálogos relacionados. Realização:Iniciar investimento,Licenciamento,Acesso à terra. Suporte:Biblioteca,Legislação,Serviços ao investidor,Acompanhamento do projecto,Apoio ao investidor. Preservar conteúdo deSobre nós/Mais,contexto dos dossiers e permissões. Escolha de apresentação:acessos de trabalho antes no nível principal passam paraMais,sem novas concessões. + ## Comunicação pública — orientação expressa do proprietário,11/11/2026 Apresentar conteúdos públicos com linguagem profissional,clara e apelativa,centrada na entidade,oportunidade,produtos e serviços úteis ao investidor. Não usar descrições de importação,cadastro,fichas,ficheiros ou documentos geradores como apresentação comercial. Preservar as fontes,versões e rastreabilidade no cadastro/editor;ligações institucionais e datas úteis podem ser consultadas separadamente. Não inventar ofertas,condições,disponibilidade,cobertura ou garantias para preencher lacunas. Esta orientação aplica-se transversalmente aos conteúdos do portal. diff --git a/docs/investmoz/unification/traceability-and-manual.md b/docs/investmoz/unification/traceability-and-manual.md index 2d69ce4b..f288bbdf 100644 --- a/docs/investmoz/unification/traceability-and-manual.md +++ b/docs/investmoz/unification/traceability-and-manual.md @@ -1,3 +1,13 @@ +## 11/11/2026 — uniformização Quorus/Moza e menu de seis grupos em QA + +Correcção orientada pelos exemplos expressos do proprietário:lista e detalhe reutilizam agora **o mesmo componente público**. Descrição única,categoria/tipo numa linha,produtos/serviços uma vez,contactos e moradas apenas quando disponíveis. Quorus:descrição de corretagem eSeguros uma vez;sem secções vazias ou avisos genéricos. Moza:descrição paraPME,CréditoPME/instrumentos uma vez,umtelefone e umamorada;sem notas de publicação,preços antigos,comissões/garantias por reconfirmar,entidade responsável repetida,sectores/cobertura desconhecidos ou referências institucionais duplicadas. Não inventa dados nem altera condições guardadas. Ligações dos produtos/contactos permanecem acessíveis uma vez;moradas diferentes são preservadas. + +Menu principal exactamente **Início–Descoberta–Realização–Suporte–Sobre nós–Mais**. Concursos movido paraDescoberta;Biblioteca eInstituições financeiras com os nomes pedidos;conteúdos deSobre nós/Mais preservados. Acesso de trabalho deslocado paraMais,sem perder permissões;conta/contexto/licenciamentoS08 e filtros preservados. Instruções permanentes actualizadas com o padrão pedido. + +**QA:**33verificações dirigidas aprovadas,com três casos novos:exemplos públicos exactos nas duas páginas,deduplicação conservadora e cabeçalho real com seis entradas em quatro combinações(público/autenticado,móvel/computador). Reutilizadas provas dos fluxos de interesse/dossier/editorial e das permissões,não reexecutadas na base. Fontes de270instituições intactas,sem migração/importação/republicação. Artefactos `outputs/funding-uniform-menu-20261111/verification.json` eHTMLs reais emSSR. Não é conferência visual de navegador;tipos/lint/compilação aprovados;pacote Git com aplicação/reversão conferidas no fecho. + +**Estado:** implementado em QA,não instalado;homologação mantém `a59142ca` e270instituições publicadas. Restam instalação e conferência visual;não requer seleccionar/publicar novamente instituições. Restante saldo de módulos e fiscal preservado. Próximo trabalho:entregar este conjunto compatível e continuar os resíduos de implementação acordados. + ## 11/11/2026 — apresentação financeira profissional instalada ema59142ca Instalação expressamente autorizada,executada pelo processo Git existente e conferida às11:38:54Africa/Johannesburg(09:38:54UTC): `a59142caa2fc277975be82fb550223ff7d949594`. O directório `/fundos` e o detalhe apresentam descrição e produtos/serviços conhecidos,sem usar texto de importação,fichas ou documento gerador como apresentação. Descrições específicas são preservadas;resumo genérico exacto passa a uma descrição pela natureza publicada. Não são inventadas ofertas para instituições sem produtos específicos identificados. Metadados/fontes/histórico mantidos no editor;ligações institucionais e datas úteis acessíveis separadamente. Orientação transversal registada emAGENTS. diff --git a/docs/investmoz/v2/auditoria-portal/backlog.md b/docs/investmoz/v2/auditoria-portal/backlog.md index 50c69d3b..f730ba48 100644 --- a/docs/investmoz/v2/auditoria-portal/backlog.md +++ b/docs/investmoz/v2/auditoria-portal/backlog.md @@ -1,3 +1,13 @@ +## 11/11/2026 — uniformização Quorus/Moza e menu de seis grupos em QA + +Correcção orientada pelos exemplos expressos do proprietário:lista e detalhe reutilizam agora **o mesmo componente público**. Descrição única,categoria/tipo numa linha,produtos/serviços uma vez,contactos e moradas apenas quando disponíveis. Quorus:descrição de corretagem eSeguros uma vez;sem secções vazias ou avisos genéricos. Moza:descrição paraPME,CréditoPME/instrumentos uma vez,umtelefone e umamorada;sem notas de publicação,preços antigos,comissões/garantias por reconfirmar,entidade responsável repetida,sectores/cobertura desconhecidos ou referências institucionais duplicadas. Não inventa dados nem altera condições guardadas. Ligações dos produtos/contactos permanecem acessíveis uma vez;moradas diferentes são preservadas. + +Menu principal exactamente **Início–Descoberta–Realização–Suporte–Sobre nós–Mais**. Concursos movido paraDescoberta;Biblioteca eInstituições financeiras com os nomes pedidos;conteúdos deSobre nós/Mais preservados. Acesso de trabalho deslocado paraMais,sem perder permissões;conta/contexto/licenciamentoS08 e filtros preservados. Instruções permanentes actualizadas com o padrão pedido. + +**QA:**33verificações dirigidas aprovadas,com três casos novos:exemplos públicos exactos nas duas páginas,deduplicação conservadora e cabeçalho real com seis entradas em quatro combinações(público/autenticado,móvel/computador). Reutilizadas provas dos fluxos de interesse/dossier/editorial e das permissões,não reexecutadas na base. Fontes de270instituições intactas,sem migração/importação/republicação. Artefactos `outputs/funding-uniform-menu-20261111/verification.json` eHTMLs reais emSSR. Não é conferência visual de navegador;tipos/lint/compilação aprovados;pacote Git com aplicação/reversão conferidas no fecho. + +**Estado:** implementado em QA,não instalado;homologação mantém `a59142ca` e270instituições publicadas. Restam instalação e conferência visual;não requer seleccionar/publicar novamente instituições. Restante saldo de módulos e fiscal preservado. Próximo trabalho:entregar este conjunto compatível e continuar os resíduos de implementação acordados. + ## 11/11/2026 — apresentação financeira profissional instalada ema59142ca Instalação expressamente autorizada,executada pelo processo Git existente e conferida às11:38:54Africa/Johannesburg(09:38:54UTC): `a59142caa2fc277975be82fb550223ff7d949594`. O directório `/fundos` e o detalhe apresentam descrição e produtos/serviços conhecidos,sem usar texto de importação,fichas ou documento gerador como apresentação. Descrições específicas são preservadas;resumo genérico exacto passa a uma descrição pela natureza publicada. Não são inventadas ofertas para instituições sem produtos específicos identificados. Metadados/fontes/histórico mantidos no editor;ligações institucionais e datas úteis acessíveis separadamente. Orientação transversal registada emAGENTS. diff --git a/docs/investmoz/v2/auditoria-portal/matriz-requisitos.csv b/docs/investmoz/v2/auditoria-portal/matriz-requisitos.csv index 5035d09f..b6634468 100644 --- a/docs/investmoz/v2/auditoria-portal/matriz-requisitos.csv +++ b/docs/investmoz/v2/auditoria-portal/matriz-requisitos.csv @@ -2026,7 +2026,7 @@ MASTER-f167d915-0004,"5. Ligações institucionais de apoio: disponibilizar, no MASTER-f167d915-0005,"Princípio de incorporação: o Balcão Virtual não será uma aplicação isolada. Será incluído no mesmo domínio funcional do Portal do Investidor, partilhando cabeçalho, menus, sessão, perfis, design system, gestão de utilizadores, observabilidade e processos de publicação. A implementação deverá evitar autenticação duplicada, cadastros paralelos e componentes que já existam no portal.",..\..\..\..\..\..\Users\macbook\.codex\attachments\0ad28475-97cc-4263-b611-022f3de5bebc\Pasted text.txt; SHA f167d9156c2572c0253949a6f0ed88aafc28450cce902e8f445e3d979119aa37; linha 30,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.","MASTER-f167d915-0005: Princípio de incorporação: o Balcão Virtual não será uma aplicação isolada. Será incluído no mesmo domínio funcional do Portal do Investidor, partilhando cabeçalho, menus, sessão, perfis, design system, gestão de utilizadores, observabilidade e processos de publicação. A implementação deverá evitar autenticação duplicada, cadastros paralelos e componentes que já existam no portal.",P2,MASTER-f167d915-0005: Todas as ocorrências exatas preservadas nas fontes; variantes de texto têm linhas distintas,MASTER-f167d915-0005,1,"[{""id"":""MASTER-f167d915-0005"",""pedido"":""Princípio de incorporação: o Balcão Virtual não será uma aplicação isolada. Será incluído no mesmo domínio funcional do Portal do Investidor, partilhando cabeçalho, menus, sessão, perfis, design system, gestão de utilizadores, observabilidade e processos de publicação. A implementação deverá evitar autenticação duplicada, cadastros paralelos e componentes que já existam no portal."",""fontes"":[""..\\..\\..\\..\\..\\..\\Users\\macbook\\.codex\\attachments\\0ad28475-97cc-4263-b611-022f3de5bebc\\Pasted text.txt; SHA f167d9156c2572c0253949a6f0ed88aafc28450cce902e8f445e3d979119aa37; linha 30""],""aceitacao"":""Princípio de incorporação: o Balcão Virtual não será uma aplicação isolada. Será incluído no mesmo domínio funcional do Portal do Investidor, partilhando cabeçalho, menus, sessão, perfis, design system, gestão de utilizadores, observabilidade e processos de publicação. A implementação deverá evitar autenticação duplicada, cadastros paralelos e componentes que já existam no portal."",""estado"":""parcial"",""variantes"":""Todas as ocorrências exatas preservadas nas fontes; variantes de texto têm linhas distintas"",""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.",,, MASTER-f167d915-0006,"URL e navegação recomendadas: disponibilizar o módulo através de uma rota própria no Portal do Investidor, por exemplo “/balcao-virtual”, acessível pelo menu principal e pela área autenticada. As rotas internas dos formulários, pedidos e painéis devem permanecer sob o mesmo domínio e respeitar os mecanismos de autorização já existentes.",..\..\..\..\..\..\Users\macbook\.codex\attachments\0ad28475-97cc-4263-b611-022f3de5bebc\Pasted text.txt; SHA f167d9156c2572c0253949a6f0ed88aafc28450cce902e8f445e3d979119aa37; linha 31,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.","MASTER-f167d915-0006: URL e navegação recomendadas: disponibilizar o módulo através de uma rota própria no Portal do Investidor, por exemplo “/balcao-virtual”, acessível pelo menu principal e pela área autenticada. As rotas internas dos formulários, pedidos e painéis devem permanecer sob o mesmo domínio e respeitar os mecanismos de autorização já existentes.",P2,MASTER-f167d915-0006: Todas as ocorrências exatas preservadas nas fontes; variantes de texto têm linhas distintas,MASTER-f167d915-0006,1,"[{""id"":""MASTER-f167d915-0006"",""pedido"":""URL e navegação recomendadas: disponibilizar o módulo através de uma rota própria no Portal do Investidor, por exemplo “/balcao-virtual”, acessível pelo menu principal e pela área autenticada. As rotas internas dos formulários, pedidos e painéis devem permanecer sob o mesmo domínio e respeitar os mecanismos de autorização já existentes."",""fontes"":[""..\\..\\..\\..\\..\\..\\Users\\macbook\\.codex\\attachments\\0ad28475-97cc-4263-b611-022f3de5bebc\\Pasted text.txt; SHA f167d9156c2572c0253949a6f0ed88aafc28450cce902e8f445e3d979119aa37; linha 31""],""aceitacao"":""URL e navegação recomendadas: disponibilizar o módulo através de uma rota própria no Portal do Investidor, por exemplo “/balcao-virtual”, acessível pelo menu principal e pela área autenticada. As rotas internas dos formulários, pedidos e painéis devem permanecer sob o mesmo domínio e respeitar os mecanismos de autorização já existentes."",""estado"":""parcial"",""variantes"":""Todas as ocorrências exatas preservadas nas fontes; variantes de texto têm linhas distintas"",""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.",,, MASTER-f167d915-0007,"A validação pública do portal confirma uma plataforma activa com navegação, conteúdos, área de entrada, dados de mercado, notícias, explorador de activos, carteira, perfil do investidor e simuladores. A reutilização técnica definitiva depende de acesso ao repositório, configuração, base de dados e ambientes; por isso, os itens abaixo distinguem o que pode ser assumido como disponível do que deve ser comprovado na Fase 0.",..\..\..\..\..\..\Users\macbook\.codex\attachments\0ad28475-97cc-4263-b611-022f3de5bebc\Pasted text.txt; SHA f167d9156c2572c0253949a6f0ed88aafc28450cce902e8f445e3d979119aa37; linha 42,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.","MASTER-f167d915-0007: A validação pública do portal confirma uma plataforma activa com navegação, conteúdos, área de entrada, dados de mercado, notícias, explorador de activos, carteira, perfil do investidor e simuladores. A reutilização técnica definitiva depende de acesso ao repositório, configuração, base de dados e ambientes; por isso, os itens abaixo distinguem o que pode ser assumido como disponível do que deve ser comprovado na Fase 0.",P2,MASTER-f167d915-0007: Todas as ocorrências exatas preservadas nas fontes; variantes de texto têm linhas distintas,MASTER-f167d915-0007,1,"[{""id"":""MASTER-f167d915-0007"",""pedido"":""A validação pública do portal confirma uma plataforma activa com navegação, conteúdos, área de entrada, dados de mercado, notícias, explorador de activos, carteira, perfil do investidor e simuladores. A reutilização técnica definitiva depende de acesso ao repositório, configuração, base de dados e ambientes; por isso, os itens abaixo distinguem o que pode ser assumido como disponível do que deve ser comprovado na Fase 0."",""fontes"":[""..\\..\\..\\..\\..\\..\\Users\\macbook\\.codex\\attachments\\0ad28475-97cc-4263-b611-022f3de5bebc\\Pasted text.txt; SHA f167d9156c2572c0253949a6f0ed88aafc28450cce902e8f445e3d979119aa37; linha 42""],""aceitacao"":""A validação pública do portal confirma uma plataforma activa com navegação, conteúdos, área de entrada, dados de mercado, notícias, explorador de activos, carteira, perfil do investidor e simuladores. A reutilização técnica definitiva depende de acesso ao repositório, configuração, base de dados e ambientes; por isso, os itens abaixo distinguem o que pode ser assumido como disponível do que deve ser comprovado na Fase 0."",""estado"":""parcial"",""variantes"":""Todas as ocorrências exatas preservadas nas fontes; variantes de texto têm linhas distintas"",""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.",,, -MASTER-f167d915-0008,"Navegação e identidade visual Observável no portal público. Reutilizar cabeçalho, menus, grelha, tipografia, cores, componentes e padrões responsivos. Inventário de componentes, design tokens e regras de navegação.",..\..\..\..\..\..\Users\macbook\.codex\attachments\0ad28475-97cc-4263-b611-022f3de5bebc\Pasted text.txt; SHA f167d9156c2572c0253949a6f0ed88aafc28450cce902e8f445e3d979119aa37; linha 44,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.","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. | [Identidade Tempo 19/10/2026] Pedido expresso: importar header/footer de tempo-dashboard, remover marca InvesteMoz da navega??o e organizar Descoberta/Realiza??o/Suporte. AGENTS.md 12/10/2026: propriet?rio e regras Tempo preservados. Radix, CSS responsivo e tradu??es institucionais s?o escolhas t?cnicas. S? ambiente local investmoz_local_test:55441; sem migra??es ou implanta??o activa nesta altera??o visual. Prova: outputs/tempo-shell-20261019/analysis-and-plan.json; verification.json; header.png; footer.png; mobile-320.png. Quatro p?ginas 200; cinco larguras 320?1440 sem overflow; teclado/Escape/foco, idioma, login/logout sem erros JS. N?o encerra aceita??o global da cl?usula.",Sem evidência suficiente,"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.","MASTER-f167d915-0008: Navegação e identidade visual Observável no portal público. Reutilizar cabeçalho, menus, grelha, tipografia, cores, componentes e padrões responsivos. Inventário de componentes, design tokens e regras de navegação.",P2,MASTER-f167d915-0008: Todas as ocorrências exatas preservadas nas fontes; variantes de texto têm linhas distintas,MASTER-f167d915-0008,1,"[{""id"":""MASTER-f167d915-0008"",""pedido"":""Navegação e identidade visual Observável no portal público. Reutilizar cabeçalho, menus, grelha, tipografia, cores, componentes e padrões responsivos. Inventário de componentes, design tokens e regras de navegação."",""fontes"":[""..\\..\\..\\..\\..\\..\\Users\\macbook\\.codex\\attachments\\0ad28475-97cc-4263-b611-022f3de5bebc\\Pasted text.txt; SHA f167d9156c2572c0253949a6f0ed88aafc28450cce902e8f445e3d979119aa37; linha 44""],""aceitacao"":""Navegação e identidade visual Observável no portal público. Reutilizar cabeçalho, menus, grelha, tipografia, cores, componentes e padrões responsivos. Inventário de componentes, design tokens e regras de navegação."",""estado"":""parcial"",""variantes"":""Todas as ocorrências exatas preservadas nas fontes; variantes de texto têm linhas distintas"",""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.","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.,"outputs/investmoz-audit-current-20261012/runtime-active.json; runtime-qa18445.json. Inventário/GET do domínio não demonstra esta cláusula individual. | [Identidade Tempo 19/10/2026] Pedido expresso: importar header/footer de tempo-dashboard, remover marca InvesteMoz da navega??o e organizar Descoberta/Realiza??o/Suporte. AGENTS.md 12/10/2026: propriet?rio e regras Tempo preservados. Radix, CSS responsivo e tradu??es institucionais s?o escolhas t?cnicas. S? ambiente local investmoz_local_test:55441; sem migra??es ou implanta??o activa nesta altera??o visual. Prova: outputs/tempo-shell-20261019/analysis-and-plan.json; verification.json; header.png; footer.png; mobile-320.png. Quatro p?ginas 200; cinco larguras 320?1440 sem overflow; teclado/Escape/foco, idioma, login/logout sem erros JS. N?o encerra aceita??o global da cl?usula.",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.",,, +MASTER-f167d915-0008,"Navegação e identidade visual Observável no portal público. Reutilizar cabeçalho, menus, grelha, tipografia, cores, componentes e padrões responsivos. Inventário de componentes, design tokens e regras de navegação.",..\..\..\..\..\..\Users\macbook\.codex\attachments\0ad28475-97cc-4263-b611-022f3de5bebc\Pasted text.txt; SHA f167d9156c2572c0253949a6f0ed88aafc28450cce902e8f445e3d979119aa37; linha 44,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.","[FUNDING-UNIFORM-MENU-20261111] Uniformização pública Quorus/Moza e menu de seis grupos em QA,não instalados;homologaçãoa59142ca preservada. | Histórico: 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. | [Identidade Tempo 19/10/2026] Pedido expresso: importar header/footer de tempo-dashboard, remover marca InvesteMoz da navega??o e organizar Descoberta/Realiza??o/Suporte. AGENTS.md 12/10/2026: propriet?rio e regras Tempo preservados. Radix, CSS responsivo e tradu??es institucionais s?o escolhas t?cnicas. S? ambiente local investmoz_local_test:55441; sem migra??es ou implanta??o activa nesta altera??o visual. Prova: outputs/tempo-shell-20261019/analysis-and-plan.json; verification.json; header.png; footer.png; mobile-320.png. Quatro p?ginas 200; cinco larguras 320?1440 sem overflow; teclado/Escape/foco, idioma, login/logout sem erros JS. N?o encerra aceita??o global da cl?usula.",Sem evidência suficiente,"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.","MASTER-f167d915-0008: Navegação e identidade visual Observável no portal público. Reutilizar cabeçalho, menus, grelha, tipografia, cores, componentes e padrões responsivos. Inventário de componentes, design tokens e regras de navegação.",P2,MASTER-f167d915-0008: Todas as ocorrências exatas preservadas nas fontes; variantes de texto têm linhas distintas,MASTER-f167d915-0008,1,"[{""id"":""MASTER-f167d915-0008"",""pedido"":""Navegação e identidade visual Observável no portal público. Reutilizar cabeçalho, menus, grelha, tipografia, cores, componentes e padrões responsivos. Inventário de componentes, design tokens e regras de navegação."",""fontes"":[""..\\..\\..\\..\\..\\..\\Users\\macbook\\.codex\\attachments\\0ad28475-97cc-4263-b611-022f3de5bebc\\Pasted text.txt; SHA f167d9156c2572c0253949a6f0ed88aafc28450cce902e8f445e3d979119aa37; linha 44""],""aceitacao"":""Navegação e identidade visual Observável no portal público. Reutilizar cabeçalho, menus, grelha, tipografia, cores, componentes e padrões responsivos. Inventário de componentes, design tokens e regras de navegação."",""estado"":""parcial"",""variantes"":""Todas as ocorrências exatas preservadas nas fontes; variantes de texto têm linhas distintas"",""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.","[FUNDING-UNIFORM-MENU-20261111] Lista/detalhe comuns,sem repetições/secções vazias/dados antigos;seis grupos conforme proprietário. Restam instalação/visual;sem republicação das270instituições ou concessões novas. | Histórico: 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.","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.,"[FUNDING-UNIFORM-MENU-20261111]33verificações dirigidas:exemplos Quorus/Moza,deduplicação conservadora,cabeçalho real desktop/mobile,público/autenticado,rotas/permissões preservadas. outputs/funding-uniform-menu-20261111/verification.json;270fontes intactas,sem migração/escrita activa. | Histórico: outputs/investmoz-audit-current-20261012/runtime-active.json; runtime-qa18445.json. Inventário/GET do domínio não demonstra esta cláusula individual. | [Identidade Tempo 19/10/2026] Pedido expresso: importar header/footer de tempo-dashboard, remover marca InvesteMoz da navega??o e organizar Descoberta/Realiza??o/Suporte. AGENTS.md 12/10/2026: propriet?rio e regras Tempo preservados. Radix, CSS responsivo e tradu??es institucionais s?o escolhas t?cnicas. S? ambiente local investmoz_local_test:55441; sem migra??es ou implanta??o activa nesta altera??o visual. Prova: outputs/tempo-shell-20261019/analysis-and-plan.json; verification.json; header.png; footer.png; mobile-320.png. Quatro p?ginas 200; cinco larguras 320?1440 sem overflow; teclado/Escape/foco, idioma, login/logout sem erros JS. N?o encerra aceita??o global da cl?usula.",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.",,, MASTER-f167d915-0009,"Área de entrada e sessão Existe ponto de entrada público; implementação interna não verificada. Reutilizar autenticação e sessão existentes, sem criar credenciais paralelas. Fluxo de login/logout, recuperação, MFA, duração de sessão e mecanismo de autorização.",..\..\..\..\..\..\Users\macbook\.codex\attachments\0ad28475-97cc-4263-b611-022f3de5bebc\Pasted text.txt; SHA f167d9156c2572c0253949a6f0ed88aafc28450cce902e8f445e3d979119aa37; linha 45,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.","MASTER-f167d915-0009: Área de entrada e sessão Existe ponto de entrada público; implementação interna não verificada. Reutilizar autenticação e sessão existentes, sem criar credenciais paralelas. Fluxo de login/logout, recuperação, MFA, duração de sessão e mecanismo de autorização.",P1,MASTER-f167d915-0009: Todas as ocorrências exatas preservadas nas fontes; variantes de texto têm linhas distintas,MASTER-f167d915-0009,1,"[{""id"":""MASTER-f167d915-0009"",""pedido"":""Área de entrada e sessão Existe ponto de entrada público; implementação interna não verificada. Reutilizar autenticação e sessão existentes, sem criar credenciais paralelas. Fluxo de login/logout, recuperação, MFA, duração de sessão e mecanismo de autorização."",""fontes"":[""..\\..\\..\\..\\..\\..\\Users\\macbook\\.codex\\attachments\\0ad28475-97cc-4263-b611-022f3de5bebc\\Pasted text.txt; SHA f167d9156c2572c0253949a6f0ed88aafc28450cce902e8f445e3d979119aa37; linha 45""],""aceitacao"":""Área de entrada e sessão Existe ponto de entrada público; implementação interna não verificada. Reutilizar autenticação e sessão existentes, sem criar credenciais paralelas. Fluxo de login/logout, recuperação, MFA, duração de sessão e mecanismo de autorização."",""estado"":""parcial"",""variantes"":""Todas as ocorrências exatas preservadas nas fontes; variantes de texto têm linhas distintas"",""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.",,, MASTER-f167d915-0010,"Frontend e design system Interface funcional confirmada; stack e biblioteca não verificados. Reutilizar componentes existentes; criar apenas componentes específicos de formulários, timeline, filas e validação. Stack frontend, biblioteca, convenções, acessibilidade e cobertura de testes.",..\..\..\..\..\..\Users\macbook\.codex\attachments\0ad28475-97cc-4263-b611-022f3de5bebc\Pasted text.txt; SHA f167d9156c2572c0253949a6f0ed88aafc28450cce902e8f445e3d979119aa37; linha 47,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.,"MASTER-f167d915-0010: Frontend e design system Interface funcional confirmada; stack e biblioteca não verificados. Reutilizar componentes existentes; criar apenas componentes específicos de formulários, timeline, filas e validação. Stack frontend, biblioteca, convenções, acessibilidade e cobertura de testes.",P2,MASTER-f167d915-0010: Todas as ocorrências exatas preservadas nas fontes; variantes de texto têm linhas distintas,MASTER-f167d915-0010,1,"[{""id"":""MASTER-f167d915-0010"",""pedido"":""Frontend e design system Interface funcional confirmada; stack e biblioteca não verificados. Reutilizar componentes existentes; criar apenas componentes específicos de formulários, timeline, filas e validação. Stack frontend, biblioteca, convenções, acessibilidade e cobertura de testes."",""fontes"":[""..\\..\\..\\..\\..\\..\\Users\\macbook\\.codex\\attachments\\0ad28475-97cc-4263-b611-022f3de5bebc\\Pasted text.txt; SHA f167d9156c2572c0253949a6f0ed88aafc28450cce902e8f445e3d979119aa37; linha 47""],""aceitacao"":""Frontend e design system Interface funcional confirmada; stack e biblioteca não verificados. Reutilizar componentes existentes; criar apenas componentes específicos de formulários, timeline, filas e validação. Stack frontend, biblioteca, convenções, acessibilidade e cobertura de testes."",""estado"":""parcial"",""variantes"":""Todas as ocorrências exatas preservadas nas fontes; variantes de texto têm linhas distintas"",""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.",,, MASTER-f167d915-0011,"Base de dados Não verificável externamente. Reutilizar a instância e padrões existentes, criando schema/tabelas próprias e relações controladas com utilizadores e organizações. SGBD, migrations, convenções, volumes, backups, índices, auditoria e política de dados.",..\..\..\..\..\..\Users\macbook\.codex\attachments\0ad28475-97cc-4263-b611-022f3de5bebc\Pasted text.txt; SHA f167d9156c2572c0253949a6f0ed88aafc28450cce902e8f445e3d979119aa37; linha 49,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.","MASTER-f167d915-0011: Base de dados Não verificável externamente. Reutilizar a instância e padrões existentes, criando schema/tabelas próprias e relações controladas com utilizadores e organizações. SGBD, migrations, convenções, volumes, backups, índices, auditoria e política de dados.",P2,MASTER-f167d915-0011: Todas as ocorrências exatas preservadas nas fontes; variantes de texto têm linhas distintas,MASTER-f167d915-0011,1,"[{""id"":""MASTER-f167d915-0011"",""pedido"":""Base de dados Não verificável externamente. Reutilizar a instância e padrões existentes, criando schema/tabelas próprias e relações controladas com utilizadores e organizações. SGBD, migrations, convenções, volumes, backups, índices, auditoria e política de dados."",""fontes"":[""..\\..\\..\\..\\..\\..\\Users\\macbook\\.codex\\attachments\\0ad28475-97cc-4263-b611-022f3de5bebc\\Pasted text.txt; SHA f167d9156c2572c0253949a6f0ed88aafc28450cce902e8f445e3d979119aa37; linha 49""],""aceitacao"":""Base de dados Não verificável externamente. Reutilizar a instância e padrões existentes, criando schema/tabelas próprias e relações controladas com utilizadores e organizações. SGBD, migrations, convenções, volumes, backups, índices, auditoria e política de dados."",""estado"":""parcial"",""variantes"":""Todas as ocorrências exatas preservadas nas fontes; variantes de texto têm linhas distintas"",""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.",,, @@ -10894,11 +10894,11 @@ AUD-ESTABLISHMENT-01,"Importar empresas licenciadas e empreendimentos turístico [RECONCILIACAO-43-20261019] Código e critérios confrontados com leitura READ ONLY fresca; PROVA-RECONCILIACAO-43-LEITURA.json, RECONCILIACAO-43-QA-FONTES.json, RECONCILIACAO-43-SCHEMA-QA.json. Não encerra critério funcional por inventário. [PLANO-P1-P6-20261019] Plano Tempo: 27–46 h disponibilização; P7 e desenvolvimento separados. Inclusão 36–39 expressa para decisão; sem publicação automática. Revisão de proposta d87970e701f0. Roteiro no manual existente; não encerra critério por instalação. [PROACTIVE-SUPPLY-REVIEW-20261102] Reconciliação com prova aceite de28/10/2026: importação privada específica já entregue, com361464 observações administrativas,147165 repetições conservadas e214299 projecções distintas; nenhum destes números é contagem de empresas únicas. Recibo proactive-supply-git-delivery-20261028.json e motores prepare/export/load-proactive-supply.py preservados. Os estados anteriores a essa entrega são históricos, não prova de ausência actual. Acrescentada consulta privada só de leitura das origens/linhas, pendências territoriais, repetições e conflitos, com cobertura explícita, referências recuperáveis e filtros sem acentos. Corrigidas respostas antigas após mudança de contexto; hashes de identidade/recibos privados excluídos da projecção. 9 Feature/138 asserções e seis frontend; PHPStan, tipos, lint/Pint/build aprovados. Onze tabelas QA com contagens/checksums iguais antes/depois. Recibo proactive_supply_review_increment_20261102; sem importação ou alteração no activo.",incrementos futuros,12/10/2026 — reconciliação e HTTP; nova inspeção visual bloqueada,,,Importador específico destes cadastros e reconciliação de entidades/versões ainda por preparar. Importação de artigos do legado e geometrias não substitui esta carga.,Identificar fontes/dados/âmbito/período concretos; não reabrir aceitação oficial.,"Inventariar os ficheiros fornecidos, inspecionar colunas e IDs reais; reutilizar organizações/estabelecimentos existentes por correspondência, serviços de importação privada/hash e hierarquia territorial. Não criar organizações automaticamente com base em nome ou licença.",Leitura integral do exemplar local e inventário código/documental; importação/retrieval deste DOCX não comprova a funcionalidade descrita.,Contrato específico não demonstrado.,,,,24–48 h por formato aprovado; acesso ao ficheiro e identificadores são pré-condições.,,, -AUD-FUND-01,Catálogo de fundos nacionais e territoriais com elegibilidade explicada e atualização,[Segmentação bf26caeee043 — identidade confirmada; nome local v1.docx] Alias documental INV-005; SEG-bf26caee-p157; SEG-bf26caee-p158; SEG-bf26caee-p483; SEG-bf26caee-p636; SEG-bf26caee-p723,INV-005 / incremento posterior ao workflow das seis categorias,"Consumidor específico ainda por delimitar; reutilizar rotas de biblioteca/Balcão/negócios/simulador pertinentes, sem atribuir existência fictícia.","Biblioteca, taxonomias, fontes e filtros comuns. Capacidade existente associada ao domínio; correspondência integral desta cláusula só quando demonstrada na prova individual.","[INSTALADO-a59142ca-20261111] Apresentação profissional do directório/detalhe instalada;HTTP200 e270instituições publicadas preservadas. | Histórico: [FUNDING-PUBLIC-EDITORIAL-20261111] Apresentação profissional em QA,não instalada;270publicadas e homologação8f295f05 preservadas. | Histórico: [INSTITUICOES-20261110]270instituições/operadores,393referências de localização e168contactos do documento fornecido, em QA. Nenhuma nova instalação/publicação activa. | Histórico anterior preservado: [ACT12-20261110] Directório financeiro/conteúdo fornecido em QA; não instalado/publicado. Homologação1c75a30a mantém zero fichas financeiras. | Histórico anterior preservado: [CONCLUSAO-INTEGRAL-20261110] Fontes até ff726e57 na homologação teste-investidor. Não confundir instalação do código com nova concessão, habilitação nominal ou prova visual integral. | Histórico anterior preservado: 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. Preparação editorial assistida em QA: selecção/conferência e publicação explícita separadas, MFA nativo, edições preservadas e repetição exacta. Disponibilização efectiva ainda pendente. Instalação ef24cbdc confirmada10/11/2026; backup/restauro190tabelas/369ficheiros; fontes33hashes. Conteúdo ainda0fichas/0publicações; entrada no editor confirmada, sem POST de preparação/publicação observado. ACT12 aberto até consulta efectiva, sem nova instalação exigida. Confirmação posterior10/11:32rascunhos persistidos/0publicações; continuação e publicação403 após expiraçãoMFA900s (21:31:43+02). Retoma autenticada idempotente conserva rascunhos. Instalaçãoef24cbdc preservada; ACT12 aberto. Confirmação seguinte:90rascunhos/0publicações, recusas403 apósMFA. CorrecçãoQA de retoma na mesma aba poractor/fontes, confirmação separada e recuperação exacta; selecção todas270/contadores/controlos visíveis. Revisãoactivaef24cbdc até recibo posterior. Retoma instalada4f3dbcf8/22:01+02,7hashes/HTTP200/backup-restauro190tabelas369ficheiros, guardasMFA mantidas.90rascunhos/0publicações; preparação/publicação autenticada e consulta efectiva ainda pendentes. ACT12 aberto. Diagnóstico posterior:loginMFAEdge22:03:53/dashboard200; editor403Safari/WebKit22:04 em sessão anterior. Não era expiração da nova sessãoEdge. Colar URL noEdge autenticado; nenhuma permissão/sessão/configuração alterada. Abertura/publicação efectiva por confirmar. Acesso reposto:editorEdgeHTTP200às22:11:21+02 na sessão correcta; sem nova instalação/permissão. Publicação/conteúdo consultável ainda por confirmar. ENTREGACONFIRMADA10/11/2026às22:54:31+02:270/270instituições do documento publicadas/270identidades/393locais168contactos; nenhuma em falta. CatálogoHTTP200total270incluindo histórico, filtroseguradora/Nampula6resultados eBCI/Absa/ArkoHTTP200. Cadastro/disponibilização do original concluídos emhomologação4f3dbcf8; continuidade dossierQA aceite reutilizada; visual separado. Cinco programas anteriores permanecem privados. Provaoutputs/funding-directory-20261110/institutions/publication-complete.json.","segmentacao-processos-reconciliacao-20261011.md; contratos/rotas inventariados atuais; não há prova de percurso completo deste incremento. [FUNDING-EDITOR-20261102] Catálogo e editor locais: rascunhos, prévia vinculada, publicação/retirada com autoridade editorial existente, versões imutáveis, janelas/critério explicado, documentos por versão e interesse privado. Quatro testes/91 asserções e tipos aprovados. Filtros territoriais/sectoriais, ensaios de documentos, fontes reais, visual e disponibilização pendentes; requisito parcial, sem alteração no activo. Manual de 02/11 e funding_editor_increment_20261102. [FUNDING-FILTERS-20261102] Filtros locais por sector, cobertura territorial e estado de janela, com desconhecidos explícitos e cobertura parcial. Nomes/caminhos territoriais e sectores conservados por versão. Descarga verifica versão, checksum, direitos, análise e bytes; prévia obsoleta recusada. Seis testes/204 asserções, PHPStan, tipos, lint sem avisos e compilação aprovados. Recibo funding_filters_increment_20261102 e manual. Faltam fontes reais incorporadas, validação visual, ensaios de concorrência e disponibilização; requisito parcial. [FUNDING-REFERENCES-20261102] Referência oficial FDEL empacotada com fontes/edições/hashes e prévia editorial; prepara rascunho sem publicar. Uma ficha e chamada municipal histórica, repetição sem duplicar ou substituir. Sete testes/235 asserções; PHPStan, tipos e lint aprovados. Recibo funding_references_increment_20261102; manual de 02/11. Ligações sectorial/cartográfica, concorrência, visual, alertas e disponibilização pendentes. Parcial local, sem escrita no activo. [FUNDING-CONCURRENCY-20261102] Ensaio com cinco pares de processos e bloqueios observados no PostgreSQL identificou deadlock 40P01 entre retirada e interesse da mesma pessoa. Bloqueio da conta ajustado a FOR NO KEY UPDATE, conservando serialização e referências de auditoria. Cinco cenários passaram após correcção; sete Feature/235 asserções e PHPStan/Pint aprovados. Dados/versão/interesse e auditoria sem duplicação conservados; recibo funding_concurrency_increment_20261102. Não comprova carga ou todas as intercalações. Visual, vínculos da referência, alertas e disponibilização pendentes. [FUNDING-ALERTS-20261102] ACT-11: versões publicadas de fundos/programas/incentivos do catálogo integradas no motor de alertas existente, com adesão explícita e preferências antigas preservadas. Filtros e desconhecidos explicados, origem/versão/estado conservados, retirada/acesso próprio, cancelamento, lote e reversão transaccional. 36 testes/612 asserções e seis frontend; PHPStan, tipos, lint e compilação aprovados. Recibo funding_alerts_increment_20261102 e manual. Sem canais externos, recolha externa ou instalação no activo; requisito agregado parcial. [FUNDING-ASSESSMENT-CONCURRENCY-20261102] Nove pares concorrentes observados aprovaram referências/versões/interesses, geradores duplicados, preferências idempotentes e ambas as precedências de cancelamento. Conferência de critérios mostra/envia apenas perguntas aplicáveis, preserva respostas locais e reinicia por ficha/versão. Oito frontend, tipos/lint/compilação aprovados; PHP da aplicação sem delta, provas 36 Feature/612 reutilizadas após conferir hashes. Recibo funding_assessment_concurrency_increment_20261102. Visual, vínculos de referência, canais externos e disponibilização continuam pendentes.",Parcial — implementação local em QA,"02/11/2026: concorrência do gerador verificada nos cenários delimitados e perguntas aplicáveis corrigidas. Restam visual, vínculos da referência, canais externos e disponibilização/agendador. Histórico: 02/11/2026: oportunidades, concursos e fundos/apoios do catálogo integrados em alertas locais com prova. Restam canais/outras fontes externas, concorrência específica do gerador, visual, vínculos de referência e disponibilização/agendador. Histórico: 02/11/2026: concorrência demonstrada nos cinco cenários delimitados e impasse corrigido. Restam visual, vínculos ao cadastro da referência, alertas de incentivos e disponibilização. Histórico: 02/11/2026: referência oficial preparada pela interface com prova local; restam vínculos sectorial/cartográfico da referência, concorrência/visual, alertas de incentivos e disponibilização. Histórico: 02/11/2026: filtros e ensaios específicos de documentos implementados/verificados localmente. Restam fontes reais incorporadas, visual, concorrência e disponibilização; integração de incentivos nos alertas não demonstrada. Histórico preservado: 02/11/2026: implementação local parcial com editor e percurso público; restam filtros territoriais/sectoriais, provas específicas de documentos/conflitos, fontes reais e visual/disponibilização. Histórico: Catálogo de fundos com janelas e elegibilidade não implementado; ofertas experimentais não o substituem.","Documentos/entidades/fontes/parâmetros próprios antes de implementação; sem novos módulos nesta auditoria. Fundos com fonte/data, elegibilidade explicada e janela; indeterminado quando parâmetros faltam. Nenhuma nova decisão identificada para reconciliar/demonstrar esta cláusula. Decisões específicas só após localizar a regra correspondente.","Fonte, gestor, sectores, cobertura nacional ou territorial, datas/estado e documentos; filtro e explicação por critério; fundos expirados sinalizados; guardar interesse autorizado sem duplicação.",P2,"Código INV-005 é alias deste documento, não renumeração do roteiro/backlog. Conteúdo/regras pendentes não se tornam aprovados pela importação.",SEG-bf26caee-p157; SEG-bf26caee-p158; SEG-bf26caee-p483; SEG-bf26caee-p636; SEG-bf26caee-p723,5,"[{""id"": ""SEG-bf26caee-p157"", ""section"": ""1.5"", ""first_paragraph"": 157, ""last_paragraph"": 157, ""text"": ""Permitir a consulta de negócios similares na zona antes da abertura de um empreendimento, apoiando a análise de viabilidade. As fontes iniciais incluem os ficheiros de cadastro de empreendimentos turísticos de três, quatro e cinco estrelas e de empresas licenciadas já disponibilizados ao projecto. Antes da utilização, estes dados devem ser inventariados, normalizados, deduplicados, georreferenciados e sujeitos a validação de actualidade, cobertura e autorização de uso."", ""requirements"": [""AUD-ESTABLISHMENT-01"", ""AUD-FUND-01"", ""AUD-MARKET-01""], ""source_sha256"": ""bf26caeee0437a8d292bf29be59247e2862c14e79b5ae465c00322747af72af5"", ""locator"": ""word/document.xml#p157"", ""declared_document_state_is_not_functional_evidence"": true, ""exact_requested_exemplar_confirmed"": true}, {""id"": ""SEG-bf26caee-p158"", ""section"": ""1.5"", ""first_paragraph"": 158, ""last_paragraph"": 158, ""text"": ""Publicar fundos de financiamento por localização ou com cobertura nacional, conforme a respectiva distribuição geográfica."", ""requirements"": [""AUD-ESTABLISHMENT-01"", ""AUD-FUND-01"", ""AUD-MARKET-01""], ""source_sha256"": ""bf26caeee0437a8d292bf29be59247e2862c14e79b5ae465c00322747af72af5"", ""locator"": ""word/document.xml#p158"", ""declared_document_state_is_not_functional_evidence"": true, ""exact_requested_exemplar_confirmed"": true}, {""id"": ""SEG-bf26caee-p483"", ""section"": ""3.2.3"", ""first_paragraph"": 483, ""last_paragraph"": 483, ""text"": ""A pesquisa deve permitir combinar texto, sector, localização, raio, dimensão, classificação, estado, período e fonte, com ordenação e paginação consistentes. Os resultados de negócios similares, fundos e oportunidades devem apresentar data de actualização, cobertura, critérios usados e limitações conhecidas. Sempre que existir correspondência ou recomendação automatizada, o portal deve explicar os factores considerados, permitir correcção dos dados de entrada e evitar classificações baseadas em informação incompleta ou não validada."", ""requirements"": [""AUD-FUND-01"", ""AUD-MARKET-01"", ""AUD-OP-04""], ""source_sha256"": ""bf26caeee0437a8d292bf29be59247e2862c14e79b5ae465c00322747af72af5"", ""locator"": ""word/document.xml#p483"", ""declared_document_state_is_not_functional_evidence"": true, ""exact_requested_exemplar_confirmed"": true}, {""id"": ""SEG-bf26caee-p636"", ""section"": ""6"", ""first_paragraph"": 636, ""last_paragraph"": 641, ""text"": ""INV-005 | Fundos compatíveis com explicação da correspondência | Sim | Sem demonstração suficiente | — | Demonstrar catálogo, cobertura, critérios, prazos, actualização e justificação."", ""requirements"": [""AUD-FUND-01""], ""source_sha256"": ""bf26caeee0437a8d292bf29be59247e2862c14e79b5ae465c00322747af72af5"", ""locator"": ""word/document.xml#p636"", ""declared_document_state_is_not_functional_evidence"": true, ""exact_requested_exemplar_confirmed"": true}, {""id"": ""SEG-bf26caee-p723"", ""section"": ""6.1"", ""first_paragraph"": 723, ""last_paragraph"": 729, ""text"": ""§1.5 | Fundos nacionais e territoriais | INV-005 | Sim | Sem demonstração suficiente | — | Demonstrar cadastro, fonte, actualização, cobertura, critérios, prazos e correspondência fundamentada."", ""requirements"": [""AUD-FUND-01""], ""source_sha256"": ""bf26caeee0437a8d292bf29be59247e2862c14e79b5ae465c00322747af72af5"", ""locator"": ""word/document.xml#p723"", ""declared_document_state_is_not_functional_evidence"": true, ""exact_requested_exemplar_confirmed"": true}]",Consumidor específico não demonstrado.,Contrato específico não demonstrado.,Nenhuma entidade/regra criada para este módulo.,"A recuperação do original da especificação é prova do acervo, não deste percurso.",Pendente de implementação/prova própria.,"Novo ID apenas após pesquisa de correspondência: os requisitos relacionados são componentes a reutilizar, não equivalências. [Segmentação bf26caeee043 — identidade confirmada; nome local v1.docx] ",não implementado,Não demonstrada para este requisito específico; nenhum pacote ativado por esta incorporação. COUNTRY02ON preservado.,"Diagnóstico específico anterior de ausência/cobertura conservado; inventário atual não demonstra entrega posterior deste incremento. Nenhuma nova implementação iniciada nesta auditoria. +AUD-FUND-01,Catálogo de fundos nacionais e territoriais com elegibilidade explicada e atualização,[Segmentação bf26caeee043 — identidade confirmada; nome local v1.docx] Alias documental INV-005; SEG-bf26caee-p157; SEG-bf26caee-p158; SEG-bf26caee-p483; SEG-bf26caee-p636; SEG-bf26caee-p723,INV-005 / incremento posterior ao workflow das seis categorias,"Consumidor específico ainda por delimitar; reutilizar rotas de biblioteca/Balcão/negócios/simulador pertinentes, sem atribuir existência fictícia.","Biblioteca, taxonomias, fontes e filtros comuns. Capacidade existente associada ao domínio; correspondência integral desta cláusula só quando demonstrada na prova individual.","[FUNDING-UNIFORM-MENU-20261111] Uniformização pública Quorus/Moza e menu de seis grupos em QA,não instalados;homologaçãoa59142ca preservada. | Histórico: [INSTALADO-a59142ca-20261111] Apresentação profissional do directório/detalhe instalada;HTTP200 e270instituições publicadas preservadas. | Histórico: [FUNDING-PUBLIC-EDITORIAL-20261111] Apresentação profissional em QA,não instalada;270publicadas e homologação8f295f05 preservadas. | Histórico: [INSTITUICOES-20261110]270instituições/operadores,393referências de localização e168contactos do documento fornecido, em QA. Nenhuma nova instalação/publicação activa. | Histórico anterior preservado: [ACT12-20261110] Directório financeiro/conteúdo fornecido em QA; não instalado/publicado. Homologação1c75a30a mantém zero fichas financeiras. | Histórico anterior preservado: [CONCLUSAO-INTEGRAL-20261110] Fontes até ff726e57 na homologação teste-investidor. Não confundir instalação do código com nova concessão, habilitação nominal ou prova visual integral. | Histórico anterior preservado: 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. Preparação editorial assistida em QA: selecção/conferência e publicação explícita separadas, MFA nativo, edições preservadas e repetição exacta. Disponibilização efectiva ainda pendente. Instalação ef24cbdc confirmada10/11/2026; backup/restauro190tabelas/369ficheiros; fontes33hashes. Conteúdo ainda0fichas/0publicações; entrada no editor confirmada, sem POST de preparação/publicação observado. ACT12 aberto até consulta efectiva, sem nova instalação exigida. Confirmação posterior10/11:32rascunhos persistidos/0publicações; continuação e publicação403 após expiraçãoMFA900s (21:31:43+02). Retoma autenticada idempotente conserva rascunhos. Instalaçãoef24cbdc preservada; ACT12 aberto. Confirmação seguinte:90rascunhos/0publicações, recusas403 apósMFA. CorrecçãoQA de retoma na mesma aba poractor/fontes, confirmação separada e recuperação exacta; selecção todas270/contadores/controlos visíveis. Revisãoactivaef24cbdc até recibo posterior. Retoma instalada4f3dbcf8/22:01+02,7hashes/HTTP200/backup-restauro190tabelas369ficheiros, guardasMFA mantidas.90rascunhos/0publicações; preparação/publicação autenticada e consulta efectiva ainda pendentes. ACT12 aberto. Diagnóstico posterior:loginMFAEdge22:03:53/dashboard200; editor403Safari/WebKit22:04 em sessão anterior. Não era expiração da nova sessãoEdge. Colar URL noEdge autenticado; nenhuma permissão/sessão/configuração alterada. Abertura/publicação efectiva por confirmar. Acesso reposto:editorEdgeHTTP200às22:11:21+02 na sessão correcta; sem nova instalação/permissão. Publicação/conteúdo consultável ainda por confirmar. ENTREGACONFIRMADA10/11/2026às22:54:31+02:270/270instituições do documento publicadas/270identidades/393locais168contactos; nenhuma em falta. CatálogoHTTP200total270incluindo histórico, filtroseguradora/Nampula6resultados eBCI/Absa/ArkoHTTP200. Cadastro/disponibilização do original concluídos emhomologação4f3dbcf8; continuidade dossierQA aceite reutilizada; visual separado. Cinco programas anteriores permanecem privados. Provaoutputs/funding-directory-20261110/institutions/publication-complete.json.","segmentacao-processos-reconciliacao-20261011.md; contratos/rotas inventariados atuais; não há prova de percurso completo deste incremento. [FUNDING-EDITOR-20261102] Catálogo e editor locais: rascunhos, prévia vinculada, publicação/retirada com autoridade editorial existente, versões imutáveis, janelas/critério explicado, documentos por versão e interesse privado. Quatro testes/91 asserções e tipos aprovados. Filtros territoriais/sectoriais, ensaios de documentos, fontes reais, visual e disponibilização pendentes; requisito parcial, sem alteração no activo. Manual de 02/11 e funding_editor_increment_20261102. [FUNDING-FILTERS-20261102] Filtros locais por sector, cobertura territorial e estado de janela, com desconhecidos explícitos e cobertura parcial. Nomes/caminhos territoriais e sectores conservados por versão. Descarga verifica versão, checksum, direitos, análise e bytes; prévia obsoleta recusada. Seis testes/204 asserções, PHPStan, tipos, lint sem avisos e compilação aprovados. Recibo funding_filters_increment_20261102 e manual. Faltam fontes reais incorporadas, validação visual, ensaios de concorrência e disponibilização; requisito parcial. [FUNDING-REFERENCES-20261102] Referência oficial FDEL empacotada com fontes/edições/hashes e prévia editorial; prepara rascunho sem publicar. Uma ficha e chamada municipal histórica, repetição sem duplicar ou substituir. Sete testes/235 asserções; PHPStan, tipos e lint aprovados. Recibo funding_references_increment_20261102; manual de 02/11. Ligações sectorial/cartográfica, concorrência, visual, alertas e disponibilização pendentes. Parcial local, sem escrita no activo. [FUNDING-CONCURRENCY-20261102] Ensaio com cinco pares de processos e bloqueios observados no PostgreSQL identificou deadlock 40P01 entre retirada e interesse da mesma pessoa. Bloqueio da conta ajustado a FOR NO KEY UPDATE, conservando serialização e referências de auditoria. Cinco cenários passaram após correcção; sete Feature/235 asserções e PHPStan/Pint aprovados. Dados/versão/interesse e auditoria sem duplicação conservados; recibo funding_concurrency_increment_20261102. Não comprova carga ou todas as intercalações. Visual, vínculos da referência, alertas e disponibilização pendentes. [FUNDING-ALERTS-20261102] ACT-11: versões publicadas de fundos/programas/incentivos do catálogo integradas no motor de alertas existente, com adesão explícita e preferências antigas preservadas. Filtros e desconhecidos explicados, origem/versão/estado conservados, retirada/acesso próprio, cancelamento, lote e reversão transaccional. 36 testes/612 asserções e seis frontend; PHPStan, tipos, lint e compilação aprovados. Recibo funding_alerts_increment_20261102 e manual. Sem canais externos, recolha externa ou instalação no activo; requisito agregado parcial. [FUNDING-ASSESSMENT-CONCURRENCY-20261102] Nove pares concorrentes observados aprovaram referências/versões/interesses, geradores duplicados, preferências idempotentes e ambas as precedências de cancelamento. Conferência de critérios mostra/envia apenas perguntas aplicáveis, preserva respostas locais e reinicia por ficha/versão. Oito frontend, tipos/lint/compilação aprovados; PHP da aplicação sem delta, provas 36 Feature/612 reutilizadas após conferir hashes. Recibo funding_assessment_concurrency_increment_20261102. Visual, vínculos de referência, canais externos e disponibilização continuam pendentes.",Parcial — implementação local em QA,"02/11/2026: concorrência do gerador verificada nos cenários delimitados e perguntas aplicáveis corrigidas. Restam visual, vínculos da referência, canais externos e disponibilização/agendador. Histórico: 02/11/2026: oportunidades, concursos e fundos/apoios do catálogo integrados em alertas locais com prova. Restam canais/outras fontes externas, concorrência específica do gerador, visual, vínculos de referência e disponibilização/agendador. Histórico: 02/11/2026: concorrência demonstrada nos cinco cenários delimitados e impasse corrigido. Restam visual, vínculos ao cadastro da referência, alertas de incentivos e disponibilização. Histórico: 02/11/2026: referência oficial preparada pela interface com prova local; restam vínculos sectorial/cartográfico da referência, concorrência/visual, alertas de incentivos e disponibilização. Histórico: 02/11/2026: filtros e ensaios específicos de documentos implementados/verificados localmente. Restam fontes reais incorporadas, visual, concorrência e disponibilização; integração de incentivos nos alertas não demonstrada. Histórico preservado: 02/11/2026: implementação local parcial com editor e percurso público; restam filtros territoriais/sectoriais, provas específicas de documentos/conflitos, fontes reais e visual/disponibilização. Histórico: Catálogo de fundos com janelas e elegibilidade não implementado; ofertas experimentais não o substituem.","Documentos/entidades/fontes/parâmetros próprios antes de implementação; sem novos módulos nesta auditoria. Fundos com fonte/data, elegibilidade explicada e janela; indeterminado quando parâmetros faltam. Nenhuma nova decisão identificada para reconciliar/demonstrar esta cláusula. Decisões específicas só após localizar a regra correspondente.","Fonte, gestor, sectores, cobertura nacional ou territorial, datas/estado e documentos; filtro e explicação por critério; fundos expirados sinalizados; guardar interesse autorizado sem duplicação.",P2,"Código INV-005 é alias deste documento, não renumeração do roteiro/backlog. Conteúdo/regras pendentes não se tornam aprovados pela importação.",SEG-bf26caee-p157; SEG-bf26caee-p158; SEG-bf26caee-p483; SEG-bf26caee-p636; SEG-bf26caee-p723,5,"[{""id"": ""SEG-bf26caee-p157"", ""section"": ""1.5"", ""first_paragraph"": 157, ""last_paragraph"": 157, ""text"": ""Permitir a consulta de negócios similares na zona antes da abertura de um empreendimento, apoiando a análise de viabilidade. As fontes iniciais incluem os ficheiros de cadastro de empreendimentos turísticos de três, quatro e cinco estrelas e de empresas licenciadas já disponibilizados ao projecto. Antes da utilização, estes dados devem ser inventariados, normalizados, deduplicados, georreferenciados e sujeitos a validação de actualidade, cobertura e autorização de uso."", ""requirements"": [""AUD-ESTABLISHMENT-01"", ""AUD-FUND-01"", ""AUD-MARKET-01""], ""source_sha256"": ""bf26caeee0437a8d292bf29be59247e2862c14e79b5ae465c00322747af72af5"", ""locator"": ""word/document.xml#p157"", ""declared_document_state_is_not_functional_evidence"": true, ""exact_requested_exemplar_confirmed"": true}, {""id"": ""SEG-bf26caee-p158"", ""section"": ""1.5"", ""first_paragraph"": 158, ""last_paragraph"": 158, ""text"": ""Publicar fundos de financiamento por localização ou com cobertura nacional, conforme a respectiva distribuição geográfica."", ""requirements"": [""AUD-ESTABLISHMENT-01"", ""AUD-FUND-01"", ""AUD-MARKET-01""], ""source_sha256"": ""bf26caeee0437a8d292bf29be59247e2862c14e79b5ae465c00322747af72af5"", ""locator"": ""word/document.xml#p158"", ""declared_document_state_is_not_functional_evidence"": true, ""exact_requested_exemplar_confirmed"": true}, {""id"": ""SEG-bf26caee-p483"", ""section"": ""3.2.3"", ""first_paragraph"": 483, ""last_paragraph"": 483, ""text"": ""A pesquisa deve permitir combinar texto, sector, localização, raio, dimensão, classificação, estado, período e fonte, com ordenação e paginação consistentes. Os resultados de negócios similares, fundos e oportunidades devem apresentar data de actualização, cobertura, critérios usados e limitações conhecidas. Sempre que existir correspondência ou recomendação automatizada, o portal deve explicar os factores considerados, permitir correcção dos dados de entrada e evitar classificações baseadas em informação incompleta ou não validada."", ""requirements"": [""AUD-FUND-01"", ""AUD-MARKET-01"", ""AUD-OP-04""], ""source_sha256"": ""bf26caeee0437a8d292bf29be59247e2862c14e79b5ae465c00322747af72af5"", ""locator"": ""word/document.xml#p483"", ""declared_document_state_is_not_functional_evidence"": true, ""exact_requested_exemplar_confirmed"": true}, {""id"": ""SEG-bf26caee-p636"", ""section"": ""6"", ""first_paragraph"": 636, ""last_paragraph"": 641, ""text"": ""INV-005 | Fundos compatíveis com explicação da correspondência | Sim | Sem demonstração suficiente | — | Demonstrar catálogo, cobertura, critérios, prazos, actualização e justificação."", ""requirements"": [""AUD-FUND-01""], ""source_sha256"": ""bf26caeee0437a8d292bf29be59247e2862c14e79b5ae465c00322747af72af5"", ""locator"": ""word/document.xml#p636"", ""declared_document_state_is_not_functional_evidence"": true, ""exact_requested_exemplar_confirmed"": true}, {""id"": ""SEG-bf26caee-p723"", ""section"": ""6.1"", ""first_paragraph"": 723, ""last_paragraph"": 729, ""text"": ""§1.5 | Fundos nacionais e territoriais | INV-005 | Sim | Sem demonstração suficiente | — | Demonstrar cadastro, fonte, actualização, cobertura, critérios, prazos e correspondência fundamentada."", ""requirements"": [""AUD-FUND-01""], ""source_sha256"": ""bf26caeee0437a8d292bf29be59247e2862c14e79b5ae465c00322747af72af5"", ""locator"": ""word/document.xml#p723"", ""declared_document_state_is_not_functional_evidence"": true, ""exact_requested_exemplar_confirmed"": true}]",Consumidor específico não demonstrado.,Contrato específico não demonstrado.,Nenhuma entidade/regra criada para este módulo.,"A recuperação do original da especificação é prova do acervo, não deste percurso.",Pendente de implementação/prova própria.,"Novo ID apenas após pesquisa de correspondência: os requisitos relacionados são componentes a reutilizar, não equivalências. [Segmentação bf26caeee043 — identidade confirmada; nome local v1.docx] ",não implementado,Não demonstrada para este requisito específico; nenhum pacote ativado por esta incorporação. COUNTRY02ON preservado.,"Diagnóstico específico anterior de ausência/cobertura conservado; inventário atual não demonstra entrega posterior deste incremento. Nenhuma nova implementação iniciada nesta auditoria. -[RECONCILIACAO-43-20261019] 15: Implementar fonte/gestor, janela, elegibilidade explicável, estados desconhecido/expirado e interesse idempotente.","[INSTALADO-a59142ca-20261111] Delta editorial encerrado em implementação/instalação;restam visual e enriquecimento de produtos específicos quando informado. Sem nova selecção/publicação do lote. | Histórico: [FUNDING-PUBLIC-EDITORIAL-20261111] Descrição/produtos/serviços sem texto de importação/fichas/documento gerador. Restam instalação/visual e enriquecimento de ofertas específicas quando informado;sem republicação do lote. | Histórico: [INSTITUICOES-20261110] Local/categoria/tipo → banco e seguradora → fonte/contacto → mesmo dossier → actualização do processo/recuperação demonstrados; presença física e cobertura separadas, incertezas/histórico explícitos. Restam instalação, revisão/publicação editorial autenticada, consulta efectiva no destino e visual. Outros critérios desta linha não encerrados. | Histórico anterior preservado: [ACT12-20261110] Onze fichas fundamentadas (7instituições+4programas/fundos; BNI Capital como produto BNI), pesquisa local/necessidade no mesmo produto, condições/fontes/contactos e gravação/recuperação no mesmo dossier demonstradas. Restam instalação, preparação/revisão/publicação autenticada e consulta real no destino; visual pendente. Outros critérios desta linha não encerrados. | Histórico anterior preservado: [CONCLUSAO-INTEGRAL-20261110] Catálogo/editor/versionamento/critérios e alertas locais já implementados; fontes instaladas até ff726e57. Restam vínculos da referência, canais/fontes externos e observação visual. Confirmar operação do agendador no âmbito configurado sem presumir ausência ou criar destinatários. | Histórico anterior preservado: 02/11/2026: concorrência do gerador verificada nos cenários delimitados e perguntas aplicáveis corrigidas. Restam visual, vínculos da referência, canais externos e disponibilização/agendador. Histórico: 02/11/2026: oportunidades, concursos e fundos/apoios do catálogo integrados em alertas locais com prova. Restam canais/outras fontes externas, concorrência específica do gerador, visual, vínculos de referência e disponibilização/agendador. Histórico: 02/11/2026: concorrência demonstrada nos cinco cenários delimitados e impasse corrigido. Restam visual, vínculos ao cadastro da referência, alertas de incentivos e disponibilização. Histórico: 02/11/2026: referência oficial preparada pela interface com prova local; restam vínculos sectorial/cartográfico da referência, concorrência/visual, alertas de incentivos e disponibilização. Histórico: 02/11/2026: filtros e ensaios específicos de documentos implementados/verificados localmente. Restam fontes reais incorporadas, visual, concorrência e disponibilização; integração de incentivos nos alertas não demonstrada. Histórico preservado: 02/11/2026: implementação local parcial com editor e percurso público; restam filtros territoriais/sectoriais, provas específicas de documentos/conflitos, fontes reais e visual/disponibilização. Histórico: Catálogo de fundos com janelas e elegibilidade não implementado; ofertas experimentais não o substituem. +[RECONCILIACAO-43-20261019] 15: Implementar fonte/gestor, janela, elegibilidade explicável, estados desconhecido/expirado e interesse idempotente.","[FUNDING-UNIFORM-MENU-20261111] Lista/detalhe comuns,sem repetições/secções vazias/dados antigos;seis grupos conforme proprietário. Restam instalação/visual;sem republicação das270instituições ou concessões novas. | Histórico: [INSTALADO-a59142ca-20261111] Delta editorial encerrado em implementação/instalação;restam visual e enriquecimento de produtos específicos quando informado. Sem nova selecção/publicação do lote. | Histórico: [FUNDING-PUBLIC-EDITORIAL-20261111] Descrição/produtos/serviços sem texto de importação/fichas/documento gerador. Restam instalação/visual e enriquecimento de ofertas específicas quando informado;sem republicação do lote. | Histórico: [INSTITUICOES-20261110] Local/categoria/tipo → banco e seguradora → fonte/contacto → mesmo dossier → actualização do processo/recuperação demonstrados; presença física e cobertura separadas, incertezas/histórico explícitos. Restam instalação, revisão/publicação editorial autenticada, consulta efectiva no destino e visual. Outros critérios desta linha não encerrados. | Histórico anterior preservado: [ACT12-20261110] Onze fichas fundamentadas (7instituições+4programas/fundos; BNI Capital como produto BNI), pesquisa local/necessidade no mesmo produto, condições/fontes/contactos e gravação/recuperação no mesmo dossier demonstradas. Restam instalação, preparação/revisão/publicação autenticada e consulta real no destino; visual pendente. Outros critérios desta linha não encerrados. | Histórico anterior preservado: [CONCLUSAO-INTEGRAL-20261110] Catálogo/editor/versionamento/critérios e alertas locais já implementados; fontes instaladas até ff726e57. Restam vínculos da referência, canais/fontes externos e observação visual. Confirmar operação do agendador no âmbito configurado sem presumir ausência ou criar destinatários. | Histórico anterior preservado: 02/11/2026: concorrência do gerador verificada nos cenários delimitados e perguntas aplicáveis corrigidas. Restam visual, vínculos da referência, canais externos e disponibilização/agendador. Histórico: 02/11/2026: oportunidades, concursos e fundos/apoios do catálogo integrados em alertas locais com prova. Restam canais/outras fontes externas, concorrência específica do gerador, visual, vínculos de referência e disponibilização/agendador. Histórico: 02/11/2026: concorrência demonstrada nos cinco cenários delimitados e impasse corrigido. Restam visual, vínculos ao cadastro da referência, alertas de incentivos e disponibilização. Histórico: 02/11/2026: referência oficial preparada pela interface com prova local; restam vínculos sectorial/cartográfico da referência, concorrência/visual, alertas de incentivos e disponibilização. Histórico: 02/11/2026: filtros e ensaios específicos de documentos implementados/verificados localmente. Restam fontes reais incorporadas, visual, concorrência e disponibilização; integração de incentivos nos alertas não demonstrada. Histórico preservado: 02/11/2026: implementação local parcial com editor e percurso público; restam filtros territoriais/sectoriais, provas específicas de documentos/conflitos, fontes reais e visual/disponibilização. Histórico: Catálogo de fundos com janelas e elegibilidade não implementado; ofertas experimentais não o substituem. -[UTILIZACAO-HOMOLOGACAO-20261019] 15: Desenvolvimento restante + dados — Primeiro fundo documentado e tratamento de elegibilidade/prazo ainda em falta. Preparação editorial assistida em QA: selecção/conferência e publicação explícita separadas, MFA nativo, edições preservadas e repetição exacta. Disponibilização efectiva ainda pendente. Instalação ef24cbdc confirmada10/11/2026; backup/restauro190tabelas/369ficheiros; fontes33hashes. Conteúdo ainda0fichas/0publicações; entrada no editor confirmada, sem POST de preparação/publicação observado. ACT12 aberto até consulta efectiva, sem nova instalação exigida. Confirmação posterior10/11:32rascunhos persistidos/0publicações; continuação e publicação403 após expiraçãoMFA900s (21:31:43+02). Retoma autenticada idempotente conserva rascunhos. Instalaçãoef24cbdc preservada; ACT12 aberto. Confirmação seguinte:90rascunhos/0publicações, recusas403 apósMFA. CorrecçãoQA de retoma na mesma aba poractor/fontes, confirmação separada e recuperação exacta; selecção todas270/contadores/controlos visíveis. Revisãoactivaef24cbdc até recibo posterior. Retoma instalada4f3dbcf8/22:01+02,7hashes/HTTP200/backup-restauro190tabelas369ficheiros, guardasMFA mantidas.90rascunhos/0publicações; preparação/publicação autenticada e consulta efectiva ainda pendentes. ACT12 aberto. Diagnóstico posterior:loginMFAEdge22:03:53/dashboard200; editor403Safari/WebKit22:04 em sessão anterior. Não era expiração da nova sessãoEdge. Colar URL noEdge autenticado; nenhuma permissão/sessão/configuração alterada. Abertura/publicação efectiva por confirmar. Acesso reposto:editorEdgeHTTP200às22:11:21+02 na sessão correcta; sem nova instalação/permissão. Publicação/conteúdo consultável ainda por confirmar. ENTREGACONFIRMADA10/11/2026às22:54:31+02:270/270instituições do documento publicadas/270identidades/393locais168contactos; nenhuma em falta. CatálogoHTTP200total270incluindo histórico, filtroseguradora/Nampula6resultados eBCI/Absa/ArkoHTTP200. Cadastro/disponibilização do original concluídos emhomologação4f3dbcf8; continuidade dossierQA aceite reutilizada; visual separado. Cinco programas anteriores permanecem privados. Provaoutputs/funding-directory-20261110/institutions/publication-complete.json.","Biblioteca, taxonomias, fontes e filtros comuns","Documentos/entidades/fontes/parâmetros próprios antes de implementação; sem novos módulos nesta auditoria. Fundos com fonte/data, elegibilidade explicada e janela; indeterminado quando parâmetros faltam.",Nenhuma nova decisão identificada para reconciliar/demonstrar esta cláusula. Decisões específicas só após localizar a regra correspondente.,"Nova funcionalidade/expansão; preparar execução, não implementar nesta auditoria",Estimativa partilhada no lote correspondente de visao-consolidada-modulos.md; não somar por linha/cláusula/campo. Grupo: incrementos futuros. Esforço de código adicional só após lacuna reproduzida.,"[INSTALADO-a59142ca-20261111] outputs/funding-public-editorial-20261111/installation.json:16fontes,HTTP200,backup/restauro190tabelas/369ficheiros,sete tabelas protegidas idênticas,zero migrações/importações/republicações. | Histórico: [FUNDING-PUBLIC-EDITORIAL-20261111] Nove testes afectados,três novos:270referências,edições preservadas,produtos não inventados,lista/detalhe reais sem metadados internos. outputs/funding-public-editorial-20261111/verification.json;sem alteração de cadastros/interesses/editorial/fontes. | Histórico: [INSTITUICOES-20261110]outputs/funding-directory-20261110/institutions/{content,verification}.json e catalogo-qa.html/270fichas;5API/735asserções e28frontend dirigidos. Fonte Instituições financeiras em Moçambique.docx SHA119bb5514d2777849b70aebfec21d28a41885cbdc7d9827fbebd764fe994c108. | Histórico anterior preservado: [ACT12-20261110] outputs/funding-directory-20261110/{verification,content-qa,dossier-qa}.json e catalogo-qa.html/11fichas;3API/127asserções,13frontend; fonte benchmark de melhorias investeMoz.docx SHA065203aacfae766c62cf9c2c272ebacc61ff23bd4ff9e91535939fede87f7617. | Histórico anterior preservado: [CONCLUSAO-INTEGRAL-20261110] Instalação ff726e57: outputs/reviewed-install-20261110/verification.json; fontes aceites e recibos anteriores reutilizados. Saldo por percurso no início de visao-consolidada-modulos.md. segmentacao-processos-reconciliacao-20261011.md; contratos/rotas inventariados atuais; não há prova de percurso completo deste incremento. | Homologação teste-investidor 19/10/2026: Fundos=Não demonstrado. Saldo derivado e limites em outputs/investmoz-disponibilizacao-integral-20261019/SALDO-E-ACTUALIZACAO-CONSOLIDADA.md. Não substitui estado/provas do activo; trecho documental encerrado, vínculo dossier aberto. | Proposta integral fdcb31f1b5b9: aplicação activa local completa + R2/DOC01/destino reconciliados; schema/build/recuperação de contexto e reversão de apresentação ensaiados no clone isolado. Não instalado remotamente. Inc. QA territoriais/Inhambane/programas separados. Limites e decisões em outputs/investmoz-disponibilizacao-integral-20261019/PROPOSTA-INTEGRAL-PARA-DECISAO.md. | Execução autorizada fdcb31f1b5b9 concluída em teste-investidor: Fundos=Não demonstrado. 1080 hashes iguais, schema171/88, custódia/scan/recuperação reais. Sem publicação ou papéis novos. Vínculo dossier legítimo pendente; incrementos QA separados. Limites em outputs/investmoz-disponibilizacao-integral-20261019/RESULTADO-DISPONIBILIZACAO-INTEGRAL.md; não encerra critérios globais não demonstrados. +[UTILIZACAO-HOMOLOGACAO-20261019] 15: Desenvolvimento restante + dados — Primeiro fundo documentado e tratamento de elegibilidade/prazo ainda em falta. Preparação editorial assistida em QA: selecção/conferência e publicação explícita separadas, MFA nativo, edições preservadas e repetição exacta. Disponibilização efectiva ainda pendente. Instalação ef24cbdc confirmada10/11/2026; backup/restauro190tabelas/369ficheiros; fontes33hashes. Conteúdo ainda0fichas/0publicações; entrada no editor confirmada, sem POST de preparação/publicação observado. ACT12 aberto até consulta efectiva, sem nova instalação exigida. Confirmação posterior10/11:32rascunhos persistidos/0publicações; continuação e publicação403 após expiraçãoMFA900s (21:31:43+02). Retoma autenticada idempotente conserva rascunhos. Instalaçãoef24cbdc preservada; ACT12 aberto. Confirmação seguinte:90rascunhos/0publicações, recusas403 apósMFA. CorrecçãoQA de retoma na mesma aba poractor/fontes, confirmação separada e recuperação exacta; selecção todas270/contadores/controlos visíveis. Revisãoactivaef24cbdc até recibo posterior. Retoma instalada4f3dbcf8/22:01+02,7hashes/HTTP200/backup-restauro190tabelas369ficheiros, guardasMFA mantidas.90rascunhos/0publicações; preparação/publicação autenticada e consulta efectiva ainda pendentes. ACT12 aberto. Diagnóstico posterior:loginMFAEdge22:03:53/dashboard200; editor403Safari/WebKit22:04 em sessão anterior. Não era expiração da nova sessãoEdge. Colar URL noEdge autenticado; nenhuma permissão/sessão/configuração alterada. Abertura/publicação efectiva por confirmar. Acesso reposto:editorEdgeHTTP200às22:11:21+02 na sessão correcta; sem nova instalação/permissão. Publicação/conteúdo consultável ainda por confirmar. ENTREGACONFIRMADA10/11/2026às22:54:31+02:270/270instituições do documento publicadas/270identidades/393locais168contactos; nenhuma em falta. CatálogoHTTP200total270incluindo histórico, filtroseguradora/Nampula6resultados eBCI/Absa/ArkoHTTP200. Cadastro/disponibilização do original concluídos emhomologação4f3dbcf8; continuidade dossierQA aceite reutilizada; visual separado. Cinco programas anteriores permanecem privados. Provaoutputs/funding-directory-20261110/institutions/publication-complete.json.","Biblioteca, taxonomias, fontes e filtros comuns","Documentos/entidades/fontes/parâmetros próprios antes de implementação; sem novos módulos nesta auditoria. Fundos com fonte/data, elegibilidade explicada e janela; indeterminado quando parâmetros faltam.",Nenhuma nova decisão identificada para reconciliar/demonstrar esta cláusula. Decisões específicas só após localizar a regra correspondente.,"Nova funcionalidade/expansão; preparar execução, não implementar nesta auditoria",Estimativa partilhada no lote correspondente de visao-consolidada-modulos.md; não somar por linha/cláusula/campo. Grupo: incrementos futuros. Esforço de código adicional só após lacuna reproduzida.,"[FUNDING-UNIFORM-MENU-20261111]33verificações dirigidas:exemplos Quorus/Moza,deduplicação conservadora,cabeçalho real desktop/mobile,público/autenticado,rotas/permissões preservadas. outputs/funding-uniform-menu-20261111/verification.json;270fontes intactas,sem migração/escrita activa. | Histórico: [INSTALADO-a59142ca-20261111] outputs/funding-public-editorial-20261111/installation.json:16fontes,HTTP200,backup/restauro190tabelas/369ficheiros,sete tabelas protegidas idênticas,zero migrações/importações/republicações. | Histórico: [FUNDING-PUBLIC-EDITORIAL-20261111] Nove testes afectados,três novos:270referências,edições preservadas,produtos não inventados,lista/detalhe reais sem metadados internos. outputs/funding-public-editorial-20261111/verification.json;sem alteração de cadastros/interesses/editorial/fontes. | Histórico: [INSTITUICOES-20261110]outputs/funding-directory-20261110/institutions/{content,verification}.json e catalogo-qa.html/270fichas;5API/735asserções e28frontend dirigidos. Fonte Instituições financeiras em Moçambique.docx SHA119bb5514d2777849b70aebfec21d28a41885cbdc7d9827fbebd764fe994c108. | Histórico anterior preservado: [ACT12-20261110] outputs/funding-directory-20261110/{verification,content-qa,dossier-qa}.json e catalogo-qa.html/11fichas;3API/127asserções,13frontend; fonte benchmark de melhorias investeMoz.docx SHA065203aacfae766c62cf9c2c272ebacc61ff23bd4ff9e91535939fede87f7617. | Histórico anterior preservado: [CONCLUSAO-INTEGRAL-20261110] Instalação ff726e57: outputs/reviewed-install-20261110/verification.json; fontes aceites e recibos anteriores reutilizados. Saldo por percurso no início de visao-consolidada-modulos.md. segmentacao-processos-reconciliacao-20261011.md; contratos/rotas inventariados atuais; não há prova de percurso completo deste incremento. | Homologação teste-investidor 19/10/2026: Fundos=Não demonstrado. Saldo derivado e limites em outputs/investmoz-disponibilizacao-integral-20261019/SALDO-E-ACTUALIZACAO-CONSOLIDADA.md. Não substitui estado/provas do activo; trecho documental encerrado, vínculo dossier aberto. | Proposta integral fdcb31f1b5b9: aplicação activa local completa + R2/DOC01/destino reconciliados; schema/build/recuperação de contexto e reversão de apresentação ensaiados no clone isolado. Não instalado remotamente. Inc. QA territoriais/Inhambane/programas separados. Limites e decisões em outputs/investmoz-disponibilizacao-integral-20261019/PROPOSTA-INTEGRAL-PARA-DECISAO.md. | Execução autorizada fdcb31f1b5b9 concluída em teste-investidor: Fundos=Não demonstrado. 1080 hashes iguais, schema171/88, custódia/scan/recuperação reais. Sem publicação ou papéis novos. Vínculo dossier legítimo pendente; incrementos QA separados. Limites em outputs/investmoz-disponibilizacao-integral-20261019/RESULTADO-DISPONIBILIZACAO-INTEGRAL.md; não encerra critérios globais não demonstrados. [UTILIZACAO-HOMOLOGACAO-20261019] Leitura nominal de contas/recursos no destino; saldo18/10; prévia29 sem escrita; comparação de hashes QA separados. outputs/investmoz-disponibilizacao-integral-20261019/UTILIZACAO-EFECTIVA-HOMOLOGACAO.md diff --git a/docs/investmoz/v2/auditoria-portal/visao-consolidada-modulos.md b/docs/investmoz/v2/auditoria-portal/visao-consolidada-modulos.md index e7f4ea1a..b46ce098 100644 --- a/docs/investmoz/v2/auditoria-portal/visao-consolidada-modulos.md +++ b/docs/investmoz/v2/auditoria-portal/visao-consolidada-modulos.md @@ -1,3 +1,13 @@ +## 11/11/2026 — uniformização Quorus/Moza e menu de seis grupos em QA + +Correcção orientada pelos exemplos expressos do proprietário:lista e detalhe reutilizam agora **o mesmo componente público**. Descrição única,categoria/tipo numa linha,produtos/serviços uma vez,contactos e moradas apenas quando disponíveis. Quorus:descrição de corretagem eSeguros uma vez;sem secções vazias ou avisos genéricos. Moza:descrição paraPME,CréditoPME/instrumentos uma vez,umtelefone e umamorada;sem notas de publicação,preços antigos,comissões/garantias por reconfirmar,entidade responsável repetida,sectores/cobertura desconhecidos ou referências institucionais duplicadas. Não inventa dados nem altera condições guardadas. Ligações dos produtos/contactos permanecem acessíveis uma vez;moradas diferentes são preservadas. + +Menu principal exactamente **Início–Descoberta–Realização–Suporte–Sobre nós–Mais**. Concursos movido paraDescoberta;Biblioteca eInstituições financeiras com os nomes pedidos;conteúdos deSobre nós/Mais preservados. Acesso de trabalho deslocado paraMais,sem perder permissões;conta/contexto/licenciamentoS08 e filtros preservados. Instruções permanentes actualizadas com o padrão pedido. + +**QA:**33verificações dirigidas aprovadas,com três casos novos:exemplos públicos exactos nas duas páginas,deduplicação conservadora e cabeçalho real com seis entradas em quatro combinações(público/autenticado,móvel/computador). Reutilizadas provas dos fluxos de interesse/dossier/editorial e das permissões,não reexecutadas na base. Fontes de270instituições intactas,sem migração/importação/republicação. Artefactos `outputs/funding-uniform-menu-20261111/verification.json` eHTMLs reais emSSR. Não é conferência visual de navegador;tipos/lint/compilação aprovados;pacote Git com aplicação/reversão conferidas no fecho. + +**Estado:** implementado em QA,não instalado;homologação mantém `a59142ca` e270instituições publicadas. Restam instalação e conferência visual;não requer seleccionar/publicar novamente instituições. Restante saldo de módulos e fiscal preservado. Próximo trabalho:entregar este conjunto compatível e continuar os resíduos de implementação acordados. + ## 11/11/2026 — apresentação financeira profissional instalada ema59142ca Instalação expressamente autorizada,executada pelo processo Git existente e conferida às11:38:54Africa/Johannesburg(09:38:54UTC): `a59142caa2fc277975be82fb550223ff7d949594`. O directório `/fundos` e o detalhe apresentam descrição e produtos/serviços conhecidos,sem usar texto de importação,fichas ou documento gerador como apresentação. Descrições específicas são preservadas;resumo genérico exacto passa a uma descrição pela natureza publicada. Não são inventadas ofertas para instituições sem produtos específicos identificados. Metadados/fontes/histórico mantidos no editor;ligações institucionais e datas úteis acessíveis separadamente. Orientação transversal registada emAGENTS. diff --git a/resources/js/components/funding-institution.tsx b/resources/js/components/funding-institution.tsx index 74bb467c..1c7ba74e 100644 --- a/resources/js/components/funding-institution.tsx +++ b/resources/js/components/funding-institution.tsx @@ -1,10 +1,17 @@ import { ClassificationFields, - ClassificationSummary, evidenceLabels, type Classification, } from '@/components/funding-classification'; -import {fundingPublicPresentation} from '@/lib/funding-public-presentation'; +import { + fundingPublicPresentation, + publicInstitutionContacts, + publicInstitutionLocations, +} from '@/lib/funding-public-presentation'; +import { + financialCategories, + financialTypes, +} from '@/components/funding-classification'; import { card, input, button } from '@/pages/investment/shared'; export type FundingSource = { @@ -552,135 +559,158 @@ export function InstitutionFields({ ); } -function Source({value}:{value:FundingSource}){return <>{value.source_url&&}{value.evidence_status==='historical'&&
Informação histórica.
}{value.evidence_status==='conflict'&&Informação por esclarecer junto da instituição.
}>;} -export function InstitutionView({ value }: { value: InstitutionDetails }) { +export function InstitutionView({ + value, + compact = false, +}: { + value: InstitutionDetails & { title?: string; summary?: string }; + compact?: boolean; +}) { + const presentation = fundingPublicPresentation({ + ...value, + title: value.title ?? '', + summary: value.summary ?? '', + kind: 'institution', + }), + contacts = publicInstitutionContacts(value.contacts), + locations = publicInstitutionLocations(value.locations); + const category = (value.institution_categories ?? []) + .map((k) => financialCategories[k]) + .filter(Boolean) + .join(' · '), + types = (value.institution_types ?? []) + .map((k) => financialTypes[k]) + .filter(Boolean) + .join(' · '); + const urls = new Set{presentation.description}
+
- Natureza:{' '}
- {
- (
- {
- bank: 'Banco',
- credit: 'Instituição de crédito',
- microfinance: 'Microfinanças',
- investment_fund: 'Fundo de investimento',
- development:
- 'Agência de desenvolvimento/financiamento',
- other: 'Outra natureza documentada',
- unknown: 'Por confirmar',
- } as Record
Contactos por confirmar.
} - {value.contacts.map((c, i) => ( -- {c.kind === 'website' ? ( - - {c.value} - - ) : ( - c.value - )} -
-Localização física por confirmar.
+ {['historical', 'merged'].includes( + value.institution_status ?? '', + ) &&Instituição histórica ou integrada noutra entidade.
} +{presentation.services.join(' · ')}
+ ) : null} +- {l.role === 'headquarters' - ? 'Sede' - : l.role === 'branch' - ? 'Balcão' - : 'Ponto de contacto institucional'} - : {l.label && !/^(Morada|Localização).*(documento|fonte)/i.test(l.label) ? l.label+' · ' : ''}{l.address} -
-- {l.territory_path?.map((n) => n.name).join(' / ') || - 'Localização detalhada a confirmar'} -
- {l.location_text && ( -Local indicado: {l.location_text}
- )} - {l.hours && ( -- Horário de atendimento:{' '} - {l.hours} -
- )} -- {fundingPublicPresentation({...value,title:"",kind:"institution",summary:""}).services.join(" · ") || "Consulte as soluções disponíveis junto da instituição."} -
- )} - {value.products.map((p) => ( -{p.instrument}
-- Cobertura do financiamento:{' '} - {p.coverage === 'national' - ? 'Nacional, segundo a fonte' - : p.coverage === 'territorial' - ? 'Locais documentados' - : 'Por confirmar'}{' '} - · {p.coverage_text} -
- {p.territory_paths?.map((path, i) => ( -{path.map((n) => n.name).join(' / ')}
- ))} -Condições: {p.conditions || 'Por confirmar'}
-- Montantes/moeda/prazos: {p.amounts || 'Por confirmar'} -
-- Disponibilidade:{' '} - {p.availability === 'unknown' - ? 'Por confirmar' - : p.availability === 'closed' - ? 'Encerrada segundo a fonte' - : 'Oferta identificada na fonte; confirmar condições actuais com a instituição'} -
- {p.contact_url && ( - - Contactar/consultar o produto - - )} -- Uma referência não é elegibilidade confirmada, aprovação nem - garantia de financiamento. O portal não envia pedidos ou dados à - instituição. -
- Encontre bancos, seguradoras, fundos e outros parceiros financeiros. - Explore as soluções e os contactos adequados ao seu investimento. + Encontre bancos, seguradoras, fundos e outros parceiros + financeiros. Explore as soluções e os contactos adequados ao seu + investimento.
- Sector e local filtram o âmbito geral do programa. Cada chamada - pode ter uma cobertura mais restrita. O estado indica que existe - pelo menos uma janela nesse estado; não confirma elegibilidade - nem candidatura aberta no local escolhido. + Explore as instituições e soluções adequadas ao seu + investimento. Use os filtros para encontrar a informação de que + precisa.
{items.data.length === 0 && (@@ -274,27 +277,33 @@ export default function Index({ {item.payload.title} -
{fundingPublicPresentation(item.payload).description}
- {item.payload.kind==='institution' &&{fundingPublicPresentation(item.payload).services.join(' · ') || 'Consulte as soluções disponíveis junto da instituição.'}
}- {(item.payload.institution_categories ?? []) - .map((k) => financialCategories[k] ?? k) - .join(' · ')}{' '} - ·{' '} - {(item.payload.institution_types ?? []) - .map((k) => financialTypes[k] ?? k) - .join(' · ')} -
- {item.payload.kind!=='institution' &&Entidade gestora: {item.payload.manager_name}
} - {Object.entries(item.filter_explanation ?? {}).map( - ([key, message]) => ( -{message}
- ), + {item.payload.kind === 'institution' ? ( +{item.payload.summary}
+Entidade gestora: {item.payload.manager_name}
+ {Object.entries(item.filter_explanation ?? {}).map( + ([key, message]) => ( +{message}
+ ), + )} + > )} - {item.payload.kind==='institution' && item.payload.windows.length===0 ? null : item.payload.windows.length === 0 ? ( + {item.payload.kind === 'institution' && + item.payload.windows.length === 0 ? null : item.payload + .windows.length === 0 ? (- Não existe uma janela de candidatura confirmada - para este programa. + Não existe uma janela de candidatura confirmada para + este programa.
) : ({fundingPublicPresentation(payload).description}
{fundingPublicPresentation(payload).description}
+- Entidade responsável: {payload.manager_name}. -
- {(payload.territory_paths ?? []).map((path, index) => ( -- Local abrangido: {path.map((node) => node.name).join(' / ')} -
- ))} -- Sectores:{' '} - {payload.sectors_text || - (payload.sectors_scope === 'all' - ? 'Todos, segundo a fonte' - : payload.sectors_scope === 'unknown' - ? 'Por confirmar' - : (payload.sector_snapshots ?? []) - .map((sector) => sector.name) - .join(', '))} -
-- {payload.coverage === 'national' - ? 'Cobertura nacional' - : payload.coverage === 'territorial' - ? 'Cobertura territorial' - : 'Cobertura por confirmar'} - {payload.coverage_text ? ` — ${payload.coverage_text}` : ''} -
- {payload.source_url &&Actualização consultada em {payload.source_checked_on}.
- Não há uma janela de candidatura confirmada para este programa. -
- )} - {payload.windows.map((item) => ( -{windowLabels[item.state]}
- {item.start_on &&Abertura: {item.start_on}
} - {item.end_on &&Data-limite: {item.end_on}
} - {item.coverage_text &&{item.coverage_text}
} -- {item.coverage === 'programme' - ? 'Mesma cobertura do programa' - : item.coverage === 'national' - ? 'Chamada nacional' - : item.coverage === 'unknown' - ? 'Cobertura da chamada por confirmar' - : 'Chamada territorial'} + {payload.kind !== 'institution' && ( + <> + {' '} +
Entidade responsável: {payload.manager_name}.
+ {(payload.territory_paths ?? []).map((path, index) => ( ++ Local abrangido:{' '} + {path.map((node) => node.name).join(' / ')}
- {(item.territory_paths ?? []).map((path, index) => ( -- {path.map((node) => node.name).join(' / ')} -
- ))} - - {item.source_reference} - -Fonte consultada em {item.checked_on}.
- {item.application_url && ( + ))} ++ Sectores:{' '} + {payload.sectors_text || + (payload.sectors_scope === 'all' + ? 'Todos, segundo a fonte' + : payload.sectors_scope === 'unknown' + ? 'Por confirmar' + : (payload.sector_snapshots ?? []) + .map((sector) => sector.name) + .join(', '))} +
++ {payload.coverage === 'national' + ? 'Cobertura nacional' + : payload.coverage === 'territorial' + ? 'Cobertura territorial' + : 'Cobertura por confirmar'} + {payload.coverage_text + ? ` — ${payload.coverage_text}` + : ''} +
+ {payload.source_url && ( ++ Actualização consultada em{' '} + {payload.source_checked_on}. +
+ + )} + > + )} + {(payload.kind !== 'institution' || payload.windows.length > 0) && ( ++ Não há uma janela de candidatura confirmada para + este programa. +
+ )} + {payload.windows.map((item) => ( +{windowLabels[item.state]}
+ {item.start_on &&Abertura: {item.start_on}
} + {item.end_on &&Data-limite: {item.end_on}
} + {item.coverage_text &&{item.coverage_text}
} ++ {item.coverage === 'programme' + ? 'Mesma cobertura do programa' + : item.coverage === 'national' + ? 'Chamada nacional' + : item.coverage === 'unknown' + ? 'Cobertura da chamada por confirmar' + : 'Chamada territorial'} +
+ {(item.territory_paths ?? []).map((path, index) => ( ++ {path.map((node) => node.name).join(' / ')} +
+ ))} + + {item.source_reference} + +Fonte consultada em {item.checked_on}.
+ {item.application_url && ( + + Consultar o canal indicado pela entidade + + )} +- Guarde esta opção para retomar a preparação do investimento. Não envia uma - candidatura nem contacta a entidade. -
+ {saved ? ( <>
diff --git a/tests/frontend/funding-directory.test.mjs b/tests/frontend/funding-directory.test.mjs
index 1408b484..e05f65d7 100644
--- a/tests/frontend/funding-directory.test.mjs
+++ b/tests/frontend/funding-directory.test.mjs
@@ -84,14 +84,11 @@ test("actual institution view keeps physical address separate from product cover
const html = renderToStaticMarkup(
React.createElement(InstitutionView, { value: details }),
);
- assert.match(html, /Sede: SYNTHETIC Maputo office/);
- assert.match(html, /Nacional, segundo a fonte/);
- assert.match(html, /Condições: Por confirmar/);
- assert.match(html, /Disponibilidade: Por confirmar/);
+ assert.match(html, /Sede: SYNTHETIC address/);
+ assert.match(html, /SYNTHETIC QA investment/);
assert.match(html, /https:\/\/example.invalid\/contact/);
- assert.match(html, /https:\/\/example\.invalid\/source/);
- assert.match(html, /Consultar informação da entidade/);
- assert.match(html, /não é elegibilidade confirmada/);
+ assert.doesNotMatch(html,/Por confirmar|não é elegibilidade|SHA-256/);
+
});
test("adding a physical location does not fill product financing coverage", () => {
const { InstitutionFields } = load("components/funding-institution.tsx");
diff --git a/tests/frontend/funding-public-presentation.test.mjs b/tests/frontend/funding-public-presentation.test.mjs
index c4a54350..fa439a65 100644
--- a/tests/frontend/funding-public-presentation.test.mjs
+++ b/tests/frontend/funding-public-presentation.test.mjs
@@ -60,16 +60,26 @@ function load(file) {
}
: name === './shared'
? { windowLabels: {} }
- : name === '@/lib/portal-api' ? {portalRequest:()=>{throw Error('Read-only rendering must not send requests');}} : name === '@/components/funding-classification'
- ? load('components/funding-classification.tsx')
- : name === '@/components/funding-institution'
- ? load('components/funding-institution.tsx')
- : name === '@/components/funding-dossier-choice'
- ? { FundingDossierChoice: () => null }
- : name ===
- '@/components/funding-criteria-assessment'
- ? load('components/funding-criteria-assessment.tsx')
- : require(name),
+ : name === '@/lib/portal-api'
+ ? {
+ portalRequest: () => {
+ throw Error(
+ 'Read-only rendering must not send requests',
+ );
+ },
+ }
+ : name === '@/components/funding-classification'
+ ? load('components/funding-classification.tsx')
+ : name === '@/components/funding-institution'
+ ? load('components/funding-institution.tsx')
+ : name === '@/components/funding-dossier-choice'
+ ? { FundingDossierChoice: () => null }
+ : name ===
+ '@/components/funding-criteria-assessment'
+ ? load(
+ 'components/funding-criteria-assessment.tsx',
+ )
+ : require(name),
module,
module.exports,
);
@@ -146,8 +156,143 @@ test('actual public cards and detail lead with description/products and keep imp
new RegExp(raw.title.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')),
);
}
- const out=new URL('../../outputs/funding-public-editorial-20261111/',import.meta.url);fs.mkdirSync(out,{recursive:true});const name=p.products.length?'bank-with-products':'investment-manager';fs.writeFileSync(new URL(name+'-index.html',out),index);fs.writeFileSync(new URL(name+'-detail.html',out),detail);fs.writeFileSync(new URL('verification.json',out),JSON.stringify({publishedSourceRecords:270,descriptionsPreserved:true,productsNotFabricated:true,actualPublicComponents:true,metadataRemovedFromPresentation:true,privateEditorialFieldsUnchanged:true,activeDataWrites:0,visualBrowserReview:false},null,2));
+ const out = new URL(
+ '../../outputs/funding-public-editorial-20261111/',
+ import.meta.url,
+ );
+ fs.mkdirSync(out, { recursive: true });
+ const name = p.products.length
+ ? 'bank-with-products'
+ : 'investment-manager';
+ fs.writeFileSync(new URL(name + '-index.html', out), index);
+ fs.writeFileSync(new URL(name + '-detail.html', out), detail);
+ fs.writeFileSync(
+ new URL('verification.json', out),
+ JSON.stringify(
+ {
+ publishedSourceRecords: 270,
+ descriptionsPreserved: true,
+ productsNotFabricated: true,
+ actualPublicComponents: true,
+ metadataRemovedFromPresentation: true,
+ privateEditorialFieldsUnchanged: true,
+ activeDataWrites: 0,
+ visualBrowserReview: false,
+ },
+ null,
+ 2,
+ ),
+ );
assert.match(detail, /Descrição/);
if (p.products.length) assert.match(detail, /Soluções PME/);
}
});
+
+test('Quorus and Moza use one shared clean profile in both list and detail', () => {
+ const Index = load('pages/funding/index.tsx').default,
+ Show = load('pages/funding/show.tsx').default;
+ const out = new URL(
+ '../../outputs/funding-uniform-menu-20261111/',
+ import.meta.url,
+ );
+ fs.mkdirSync(out, { recursive: true });
+ for (const title of ['Quorus', 'Moza Banco']) {
+ const raw = records.find((p) => p.title === title);
+ assert.ok(raw, title);
+ const p = { ...raw, windows: [], documents: [] },
+ item = {
+ id: 'synthetic',
+ version_id: 'synthetic-version',
+ version: 1,
+ payload: p,
+ };
+ const index = renderToStaticMarkup(
+ React.createElement(Index, {
+ items: { data: [item], links: [] },
+ filters: {},
+ kinds: {},
+ options: { territories: [], sectors: [] },
+ management: false,
+ }),
+ );
+ const detail = renderToStaticMarkup(
+ React.createElement(Show, {
+ record: item,
+ authenticated: false,
+ saved: null,
+ }),
+ );
+ for (const html of [
+ index.match(/]*>Contactos|
]*>Localização/,
+ );
+ } else {
+ assert.equal((detail.match(/21 342 000/g) || []).length, 1);
+ assert.equal(
+ (detail.match(/Rua dos Desportistas/g) || []).length,
+ 1,
+ );
+ assert.equal(
+ (
+ detail.match(
+ /Tesouraria, investimento, construção e equipamento/g,
+ ) || []
+ ).length,
+ 1,
+ );
+ assert.doesNotMatch(detail, /500\.000|30\.000\.000|Prime|spread/);
+ }
+ fs.writeFileSync(
+ new URL(title.replaceAll(' ', '-') + '-index.html', out),
+ index,
+ );
+ fs.writeFileSync(
+ new URL(title.replaceAll(' ', '-') + '-detail.html', out),
+ detail,
+ );
+ }
+});
+test('contact and location deduplication preserves different branches and original records', () => {
+ const moza = records.find((p) => p.title === 'Moza Banco'),
+ original = JSON.stringify(moza);
+ assert.equal(
+ presentation
+ .publicInstitutionContacts(moza.contacts)
+ .filter((c) => c.kind === 'phone').length,
+ 1,
+ );
+ assert.equal(
+ presentation.publicInstitutionLocations(moza.locations).length,
+ 1,
+ );
+ assert.equal(
+ presentation.publicInstitutionLocations([
+ ...moza.locations,
+ {
+ ...moza.locations[0],
+ role: 'branch',
+ address: 'Rua dos Desportistas, número 714',
+ },
+ ]).length,
+ 2,
+ );
+ assert.equal(JSON.stringify(moza), original);
+});
diff --git a/tests/frontend/portal-navigation.test.mjs b/tests/frontend/portal-navigation.test.mjs
index 911aedd9..6775dd8a 100644
--- a/tests/frontend/portal-navigation.test.mjs
+++ b/tests/frontend/portal-navigation.test.mjs
@@ -417,7 +417,7 @@ void test('installed concours has its own primary group and preserves public and
authenticated,
procurement: true,
});
- const group = groups.find((g) => g.id === 'procurement-area');
+ const group = groups.find((g) => g.id === 'discovery').children.find(g=>g.id==='procurement-area');
assert.equal(group.label, 'Concursos e anúncios');
assert.equal(
destinations(groups).filter((h) => h === '/concursos').length,
@@ -427,15 +427,15 @@ void test('installed concours has its own primary group and preserves public and
JSON.stringify(groups.find((g) => g.id === 'discovery')).includes(
'/concursos',
),
- false,
+ true,
);
assert.equal(
currentNavigationGroup(groups, '/concursos?q=obras'),
- 'procurement-area',
+ 'discovery',
);
assert.equal(
currentNavigationGroup(groups, '/concursos/fixture'),
- 'procurement-area',
+ 'discovery',
);
assert.equal(
destinations(group.children).includes('/concursos/acompanhar'),
diff --git a/tests/frontend/portal-six-group-menu.test.mjs b/tests/frontend/portal-six-group-menu.test.mjs
new file mode 100644
index 00000000..172c9c98
--- /dev/null
+++ b/tests/frontend/portal-six-group-menu.test.mjs
@@ -0,0 +1,194 @@
+import test from 'node:test';
+import assert from 'node:assert/strict';
+import fs from 'node:fs';
+import { createRequire } from 'node:module';
+import { compileFunction } from 'node:vm';
+import ts from 'typescript';
+import React from 'react';
+import { renderToStaticMarkup } from 'react-dom/server';
+import * as navigation from '../../resources/js/lib/portal-navigation.ts';
+import { searchTerritoryHref } from '../../resources/js/lib/search-territory.ts';
+const require = createRequire(import.meta.url);
+let state, mobile;
+const primitive =
+ (tag) =>
+ ({ children, asChild, className, ...props }) =>
+ asChild
+ ? React.cloneElement(children, { className })
+ : React.createElement(
+ tag,
+ {
+ className,
+ ...Object.fromEntries(
+ Object.entries(props).filter(
+ ([k]) =>
+ k.startsWith('aria-') ||
+ k.startsWith('data-'),
+ ),
+ ),
+ },
+ children,
+ );
+const source = fs.readFileSync(
+ new URL(
+ '../../resources/js/components/portal-grouped-menu.tsx',
+ import.meta.url,
+ ),
+ 'utf8',
+ ),
+ module = { exports: {} };
+const output = ts.transpileModule(source, {
+ compilerOptions: {
+ module: ts.ModuleKind.CommonJS,
+ target: ts.ScriptTarget.ES2022,
+ jsx: ts.JsxEmit.ReactJSX,
+ },
+}).outputText;
+compileFunction(output, ['require', 'module', 'exports'])(
+ (name) =>
+ name === '@/components/portal-product-identity'
+ ? {}
+ : name === '@inertiajs/react'
+ ? {
+ usePage: () => state,
+ Link: ({ children, href, className, ...props }) =>
+ React.createElement(
+ 'a',
+ {
+ href,
+ className,
+ ...Object.fromEntries(
+ Object.entries(props).filter(
+ ([k]) =>
+ k.startsWith('aria-') ||
+ k.startsWith('data-'),
+ ),
+ ),
+ },
+ children,
+ ),
+ router: {},
+ }
+ : name === 'lucide-react'
+ ? new Proxy({}, { get: () => () => null })
+ : name === '@/hooks/use-mobile'
+ ? { useIsMobile: () => mobile }
+ : name === '@/components/navigation-context'
+ ? { useNavigationContext: () => ({ view: null }) }
+ : name === '@/components/tempo-brand'
+ ? { useTempoUi: () => ({ t: (x) => x, language: 'pt' }) }
+ : name === '@/components/tempo-header-tools'
+ ? { TempoLanguageSelector: () => null }
+ : name === '@/components/ui/dropdown-menu'
+ ? new Proxy(
+ {},
+ {
+ get: (_, key) =>
+ primitive(
+ String(key).includes('Trigger')
+ ? 'button'
+ : 'div',
+ ),
+ },
+ )
+ : name === '@/lib/portal-navigation'
+ ? navigation
+ : name === '@/lib/search-territory'
+ ? { searchTerritoryHref }
+ : name === '@/routes'
+ ? { logout: () => '/logout' }
+ : require(name),
+ module,
+ module.exports,
+);
+test('actual header has exactly the requested six primary entries on desktop and mobile for public and signed-in users', () => {
+ const out = new URL(
+ '../../outputs/funding-uniform-menu-20261111/',
+ import.meta.url,
+ );
+ fs.mkdirSync(out, { recursive: true });
+ for (const authenticated of [false, true])
+ for (mobile of [false, true]) {
+ state = {
+ url: '/',
+ props: {
+ auth: {
+ user: authenticated
+ ? {
+ name: 'SYNTHETIC QA',
+ email: 'qa@example.invalid',
+ }
+ : null,
+ canManagePortal: false,
+ },
+ procurementEnabled: true,
+ fundingEnabled: true,
+ },
+ };
+ const html = renderToStaticMarkup(
+ React.createElement(module.exports.PortalGroupedMenu),
+ );
+ const nav = html.match(
+ /