Files
Investidor-V2/docs/investmoz/unification/quantitative-map-local-20261104.json
T
2026-11-04 11:45:42 +02:00

184 lines
7.7 KiB
JSON

{
"date": "2026-11-04",
"base_commit": "a9241ff2",
"requirement": "ACT-20261029-02; V2-07/V2-10",
"scope": "Primeiro recorte quantitativo: observações públicas existentes das zonas/parques do contexto do mapa; main local",
"inventory_before_fixtures": {
"database": "main_visual_20261104_test",
"visible_zones": 8,
"public_observations": [],
"no_private_ciphertext_read": true
},
"source_reused": "InvestmentZoneOperationalDetails::publicData -> integral.observations; mesma selecção de divulgação da ficha, sem desencriptar preparação privada",
"indicators": {
"workforce": [
"employment"
],
"economic_potential": [
"investment",
"production",
"exports",
"local_procurement"
]
},
"contract": {
"route": "GET /api/v1/investment/map",
"new_field": "quantitative_context",
"states": [
"available",
"unavailable",
"not_included"
],
"client_network_error_state": "error",
"zone_limit": 30,
"record_limit": 200,
"truncation_explicit": true,
"scope": "Mesmo conjunto de zonas autorizado pelos filtros existentes de contexto; não alarga pesquisa nem representa valores das oportunidades. Filtros específicos que já excluem zonas devolvem not_included.",
"metadata": [
"id",
"label",
"description",
"value",
"unit",
"period_start",
"period_end",
"scope",
"population",
"methodology",
"source_reference",
"source_date",
"knowledge",
"zone_id",
"zone_name",
"zone_version",
"url",
"theme",
"missing_metadata",
"phase_id",
"plot_id"
]
},
"behaviour": [
"Valores numéricos conhecidos preservados como texto, incluindo zero e precisão decimal; sem conversão binária para somas.",
"Valor desconhecido permanece null/Por determinar, mesmo perante quantidade contraditória numa fonte legada. Divergência conserva etiqueta.",
"Unidade, período, base/população, âmbito, metodologia e fonte/data em cada linha; metadados em falta explicitados, sem os completar por inferência.",
"Sem agregações, médias, câmbio, normalização ou comparação automática; emprego não equivale a disponibilidade laboral nem os montantes a índice de potencial.",
"Contagens de oportunidades e de observações territoriais separadas. Sem geometrias ou posições criadas.",
"Carregamento, erro, cadastro indisponível e âmbito não consultado distintos de resposta sem observações.",
"Números JSON com casas decimais extraídos como texto decimal pelo PostgreSQL a partir do mesmo snapshot carregado; metadados/valor/versão não são emparelhados com uma leitura posterior."
],
"checks": {
"database_tests": 11,
"database_assertions": 99,
"new_database_tests": 6,
"existing_thematic_regression_tests": 5,
"frontend_tests": 18,
"new_frontend_tests": 3,
"phpstan_errors": 0,
"types": "passed",
"pint": "passed",
"lint": "passed",
"qa_build": "passed; avisos de fonte opcional e dimensão de chunks"
},
"initial_attempts": "Nove dos dez casos BD passaram inicialmente; comparação da serialização JSON antes/depois do jsonb corrigida para comparar duas leituras reais do servidor. Fixture frontend repetia o rótulo de emprego numa linha de produção; rótulo corrigido. Sem alterar regras do produto para satisfazer estes testes. Logs BD iniciais conservados em quantitative-map-initial.*.",
"visual": {
"url": "http://127.0.0.2:18644/oportunidades?q=SYNTHETIC-QUANT-20261104&province_id=bfde2651-2b46-5d9c-a500-733fa55a8c5c&view=map",
"database": "main_visual_20261104_test",
"synthetic_zone_id": "b3349058-f120-4704-b34c-32ba7c1146c4",
"synthetic_observations": 5,
"workforce_rows": 2,
"economic_rows": 3,
"values_checked": [
"0 pessoas (emprego previsto sintético)",
"Por determinar (emprego indirecto sintético)",
"125.7500 toneladas",
"100000.00 MZN",
"25.50 USD em divergência"
],
"coordinates_created": false,
"geometry_created": false,
"existing_zones_sha256": "8d7d6d778f826453556caa131def70747706ac338aac472959a2057811d4cc77"
},
"preservation": {
"previous_artifact_hashes_verified_unchanged": 51,
"accepted_full_database_tests_preserved_not_reexecuted": 1325,
"previous_pending_items_preserved": true
},
"pending": [
"O snapshot QA tinha oito fichas públicas e zero observações quantitativas divulgadas; demonstração não estabelece cobertura factual real nem diagnostica dados do remoto.",
"Séries oficiais/regionais comparáveis, oferta laboral, natureza prevista/efectiva e metodologia de potencial quantitativo dependem dos dados aplicáveis, sem novos índices presumidos.",
"Cobertura nacional, georreferenciação própria, conferência remota e aceitação da equipa continuam pendentes. ACT-02/V2-07/V2-10 não encerrados."
],
"safety": {
"branch": "main local",
"push": false,
"active_database_changed": false,
"migration": false,
"permissions_changed": false,
"automatic_publication": false,
"service_restarts": false
},
"proofs": {
"outputs/quantitative-map-20261104/source-inventory-before-fixtures.json": {
"sha256": "b547bd8c34c09c7d779c8226e9a68ad7160d008bf9e2f68832c694022eb36597",
"bytes": 142
},
"outputs/quantitative-map-20261104/prior-evidence.json": {
"sha256": "49989437b12a348ca866404523e81d33fd695e0298acd2574ed579eb1872a915",
"bytes": 6766
},
"outputs/quantitative-map-20261104/fixture-receipt.json": {
"sha256": "2053ed900664fa65372bc4c0404da872b167213ca025ba88799af8221acfd46f",
"bytes": 409
},
"outputs/quantitative-map-20261104/all-indicators.jpg": {
"sha256": "9d1a455c1298f2c2579f37b354ab72aae32b5045c957a203b657cb6932d871da",
"bytes": 217406
},
"outputs/quantitative-map-20261104/all-indicators.dom.txt": {
"sha256": "c8e998ea7f4efdb1df6df57c07b014d86efdd4af9479ebea7bb52af964013285",
"bytes": 23575
},
"outputs/quantitative-map-20261104/workforce-indicators.jpg": {
"sha256": "e14ee34543d5482a5c288bd3bb0733b496d4aecefee12cd0f5d0e5d8aa6f1576",
"bytes": 187352
},
"outputs/quantitative-map-20261104/workforce-indicators.dom.txt": {
"sha256": "d659fd72bf7df061c7ff6542c0dee8e10ef74a4a7ba45ba1abb3adb0fc5a4d03",
"bytes": 17344
},
"outputs/quantitative-map-20261104/economic-indicators.dom.txt": {
"sha256": "11ebdf8284c36f20b2196f4bc4eada37c70c99d232c03a31ef54d673cfb8ddbb",
"bytes": 19366
},
"outputs/main-db-qa-20261104/quantitative-map.log": {
"sha256": "7914ad0e266ae90a884c5f3ffa783a7859d4e342a7a64fb6c96f90388be44f97",
"bytes": 96
},
"outputs/main-db-qa-20261104/quantitative-map.junit.xml": {
"sha256": "5d01befa688ec8edd9e3a58f9821f248fda5ec6c86318a02ada7b48c6b4b9494",
"bytes": 4703
},
"outputs/main-db-qa-20261104/quantitative-map-frontend.log": {
"sha256": "240847ad2e9d75e2d77bb3ea66e2814d18dbe7b85e79722da11306ec843b2941",
"bytes": 2476
},
"outputs/main-db-qa-20261104/quantitative-map-phpstan.log": {
"sha256": "1997495ca8f04c2ec09798d55607d1a2f85e3338b772f258666465bf658032d2",
"bytes": 49
},
"outputs/main-db-qa-20261104/quantitative-map-types.log": {
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"bytes": 0
},
"outputs/main-db-qa-20261104/quantitative-map-lint.log": {
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"bytes": 0
},
"outputs/main-db-qa-20261104/quantitative-map-build.log": {
"sha256": "6cefd15069e09c1bfd8b404842b719227ea7785e7908f07a69f66029fe4639e3",
"bytes": 31606
}
}
}