docs: delimit anchor findings and pending native PDF delivery gate
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"date": "2026-10-23",
|
||||
"candidate": "1afdfee8",
|
||||
"native_report_fix": "2856240c",
|
||||
"deployment_status": "not_integrated_not_deployed_waiting_native_saved_PDF",
|
||||
"origin_main_checked": "55136b44",
|
||||
"accepted_scopes_retested": false,
|
||||
"new_test": "tests/frontend/native-pdf-scope.test.mjs: 1 passed",
|
||||
"types": "passed",
|
||||
"build": "passed",
|
||||
"qa_report": {
|
||||
"revision": 13,
|
||||
"opportunity": "opportunity:309",
|
||||
"location": "Manica",
|
||||
"declared_funding_total": "123456 MZN",
|
||||
"declared_secured": "45678 MZN",
|
||||
"expected_gap": "77778.00 MZN",
|
||||
"native_pdf_expected": "outputs/multi-opportunity-fix-20261023/candidata-1afdfee8.pdf",
|
||||
"pdf_saved_verified": false
|
||||
},
|
||||
"anchor_analysis": {
|
||||
"status": "analysed_not_implemented",
|
||||
"confirmed_code_gaps": [
|
||||
"sector filter absent from portfolio UI and query contract",
|
||||
"no direct idea preparation from anchor fiche without an associated opportunity"
|
||||
],
|
||||
"directed_verification_remaining": [
|
||||
"reconcile territorial data with demonstrated and destination state using equivalent access",
|
||||
"anonymous interest authentication return and same-fiche identity"
|
||||
],
|
||||
"existing_accepted_branch": "portfolio origin via associated opportunity to dossier and simulator is preserved, not retested",
|
||||
"qa_documentary_anchors": 15,
|
||||
"qa_document_sector_location_region_present": true,
|
||||
"qa_canonical_primary_territories": 0,
|
||||
"qa_public_location_links": 0,
|
||||
"qa_published_opportunity_links": 0,
|
||||
"synthetic_anchor_excluded": true,
|
||||
"inventory_sha256": "7d2c0c36fa51b05ce97dfd25c997b77eccf7136a99220ed8607fcd2436fd3d39",
|
||||
"no_homologation_loss_inferred": true
|
||||
},
|
||||
"statistics_and_AI": "deferred"
|
||||
}
|
||||
@@ -1,5 +1,26 @@
|
||||
# Rastreabilidade, utilização e formação
|
||||
|
||||
## Duas frentes — PDF nativo e análise dos projectos âncora, 23/10/2026
|
||||
|
||||
Pedido expresso da Tempo após `32144aa2`: conferir o PDF nativo guardado da candidata `1afdfee8`, depois integrar/disponibilizar pelo Git e conferir só o delta; analisar projectos âncora por sector/localização e continuidade para manifestação, dossier e simulador. Word, ZIP e provas aceites não foram repetidos. Estatísticas e IA permanecem adiadas. Este registo sucede ao estado «por analisar» abaixo.
|
||||
|
||||
**Candidata:** o botão real de impressão foi aberto no novo dossier QA `d279172b-8bd1-4074-b000-ee25f0d29778`, oportunidade `309`, Manica. A saída revelou duas falhas delimitadas: estado de etapa exposto como `not_started` e ausência do detalhe dos requisitos específicos. Corrigidas na composição do relatório: estado humano existente, requisitos só da oportunidade seleccionada, com documentos/fundamento, e exclusão dos ramos dispensados. Novo teste exclusivo `native-pdf-scope.test.mjs` passou; TypeScript e build passaram. Não se voltou a testar Word/ZIP. A revisão **13**, aberta pelo botão do portal após a correcção, apresenta `Por iniciar`, os cinco requisitos da segunda oportunidade e os pressupostos QA **123456 MZN**, **45678 MZN**, diferença **77 778,00 MZN**. A primeira oportunidade/Sofala não integra esse âmbito. Estes números são uma fixture sintética para conferência da cópia, não nova aceitação dos cálculos.
|
||||
|
||||
**PDF guardado ainda pendente:** o controlo do navegador permite abrir e ler a saída, mas não operar o diálogo nativo do sistema. Foi pedida a gravação manual da janela já preparada em `outputs/multi-opportunity-fix-20261023/candidata-1afdfee8.pdf`. Até ler/renderizar o ficheiro e conferir paginação, requisitos, âmbito e valores, a candidata continua exclusivamente QA; não houve push de disponibilização. `origin/main` foi consultado por `git fetch`: continua `55136b44`, sem alterações concorrentes por integrar nessa consulta. Preparar o avanço normal, sem force, e voltar a consultar antes de integrar. Não é necessária nova autorização de disponibilização; a ordem já foi expressa pela Tempo, condicionada à conferência do PDF.
|
||||
|
||||
### Projectos âncora — análise concluída e correcções/verificações delimitadas
|
||||
|
||||
Reutilizados os registos de reposição (`7c1f5321`, recibo de preparação adaptativa: 29 fichas/15 projectos, IDs/títulos preservados) e de continuidade carteira/oportunidade (`InvestmentPortfolioContinuityTest`, instalado, sem repetir). **Não foi confirmada perda de fichas ou revogação da divulgação.** Revisão estática do código actual e inventário de leitura apenas na base QA isolada, sem escrita. O inventário QA encontrou 15 fichas documentais de projecto com **sector, localização e região em texto** em todas elas, mas sem `primary_territory_id`, ligações públicas em `project_locations` ou oportunidades públicas directamente associadas. Uma décima sexta ficha marcada `SYNTHETIC QA — associação escolhida`, com uma oportunidade, foi identificada e excluída da contagem documental. A diferença QA não é atribuída à homologação; qualquer reposição de dados depende de comparação com o último estado demonstrado e identidades de acesso equivalentes, conforme AGENTS.
|
||||
|
||||
| Trecho | Encontrado / classificação | Correcção ou verificação finita |
|
||||
| --- | --- | --- |
|
||||
| Pesquisa por sector e localização | **Lacuna de implementação do filtro sectorial.** `InvestmentPortfolioController::index` e `portfolio/index` aceitam pesquisa textual, tipo e hierarquia territorial; não recebem nem apresentam sector. Texto livre contendo um sector não equivale ao filtro combinado. A pesquisa territorial já tem implementação por IDs e relações documentadas em `InvestmentGeography::constrainDossiersToTerritories`. | Acrescentar filtro sectorial e combiná-lo com a localização no mesmo catálogo, conservando filtros ao abrir/regressar. Reutilizar o catálogo de sectores; uma âncora pode abranger vários sectores documentados. Não classificar por semelhança de palavras nem criar ofertas para obter resultados. |
|
||||
| Correspondência dos dados documentais | **Verificação de dados/ambiente em falta**, distinta da ausência do filtro. Os 15 sectores/localizações existem nos textos QA; o schema de `projects` não tem `sector_id` e os campos/relações territoriais consultados estão vazios nesse ambiente. | Comparar schema, dados, configuração e acesso equivalente com o último estado demonstrado/destino. Reutilizar fonte, exemplar e correspondências já aceites; delimitar as correspondências canónicas em falta e ambiguidades. Não pedir outra validação genérica da fonte, inventar território, nem declarar regressão a partir do clone. |
|
||||
| Ficha → manifestação | **Mecanismo existente a preservar:** o botão cria rascunho com o mesmo `dossier_id`; `InvestmentSubmissionController::create` conserva `project_ids`. A ficha recupera os rascunhos existentes. **Sem nova prova de execução deste ramo nesta análise.** Para anónimos, o componente apresenta ligação simples a `/login`; a retoma com a identidade/filtros requer prova dirigida. | Conferir apenas login/retoma e recuperação do interesse na mesma ficha, sem submissão externa. Não transformar a ficha documental em oportunidade nem alterar os estados de publicação. |
|
||||
| Ficha sem oportunidade → preparação → simulador | **Integração directa ainda não implementada.** A ficha mostra oportunidades relacionadas quando existirem; essas usam `from_dossier`, território e `portfolio_origins` já aceites até ao simulador. Sem oferta associada não existe acção de ideia baseada na própria âncora, e `InvestorContext::reference` não suporta uma origem de carteira autónoma. O vínculo explícito manifestação/dossier já existe, mas não cria essa origem no contexto. | Reutilizar o arranque por ideia e o mesmo dossier, acrescentando a referência documental da âncora independente de uma oferta. Conservar identidade, versão, fonte e localização escolhida até ao simulador/relatório e à manifestação vinculada. Conferir este ramo novo e a transição interesse/preparação; reutilizar as provas aceites do ramo com oportunidade. |
|
||||
|
||||
O recorte âncora deixou de estar «por analisar»: há **duas lacunas de implementação** (filtro de sector e entrada directa por ideia de âncora sem oferta), **uma reconciliação de dados/ambiente** e **uma prova dirigida de interesse/autenticação**, com a continuidade do ramo novo incluída no seu critério de aceitação. Não se implementou esse recorte nesta análise nem se declarou homologação corrigida. As lacunas de implementação não são regressões demonstradas. Fontes locais: `InvestmentPortfolioController`, `InvestmentGeography`, `InvestmentRelations`, `InvestmentOpportunityChoices::portfolioOrigins`, `InvestorContext`, `InvestmentSubmissionController`, `portfolio/index`, `portfolio/show`, `search-territory`; inventário QA em `outputs/multi-opportunity-fix-20261023/anchor-analysis-data.json`. Actualização nas mesmas linhas `AUD-REL-02`/`AUD-LEG-06` da matriz existente, sem nova matriz/backlog.
|
||||
|
||||
## Oportunidade em tratamento — correcção conjunta do saldo em QA, 23/10/2026
|
||||
|
||||
Origem: pedido expresso da Tempo após `bc84fbdb`. Corrigir conjuntamente os três consumidores da escolha de oportunidade; conferir os quatro recortes delimitados, corrigindo apenas falhas encontradas. **Só QA; não entregue na homologação nesta passagem.** Permanecem encerrados `6b544548`, `d8224ba8` e `55136b44` com os respectivos recibos; não se repetiram os seus testes. A lista histórica de sete itens abaixo passa a ter os seguintes estados correntes: Correc??o funcional `1afdfee8`; [recibo QA](investment-treatment-scope-qa-receipt-20261023.json).
|
||||
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user