[OK] Existe app/Core/Authorization.php [OK] Existe app/Core/Mailer.php [OK] Existe app/Core/Middleware/RequirePermission.php [OK] Existe app/Modules/Identity/Repositories/AuthRepository.php [OK] Existe app/Modules/Organizations/Services/OrganizationService.php [OK] Existe database/migrations/006_identity_organizations_sprint1.sql [OK] Existe app/Modules/Cases/Services/CaseService.php [OK] Existe app/Modules/People/Services/PersonService.php [OK] Existe app/Modules/Documents/Controllers/DocumentController.php [OK] Existe app/Modules/Documents/Repositories/DocumentRepository.php [OK] Existe app/Modules/Documents/Services/DocumentService.php [OK] Existe app/Modules/Documents/Services/StorageService.php [OK] Existe database/migrations/007_documents_sources_sprint3.sql [OK] Existe resources/views/documents/index.php [OK] Existe resources/views/documents/upload.php [OK] Existe resources/views/documents/show.php [OK] Existe resources/views/sources/form.php [OK] Existe app/Modules/Research/Controllers/CandidateController.php [OK] Existe app/Modules/Research/Repositories/CandidateRepository.php [OK] Existe app/Modules/Research/Services/CandidateService.php [OK] Existe resources/views/candidates/index.php [OK] Existe app/Modules/Research/Controllers/SearchController.php [OK] Existe app/Modules/Research/Repositories/SearchRepository.php [OK] Existe app/Modules/Research/Services/SearchService.php [OK] Existe resources/views/research/index.php [OK] Existe database/migrations/009_sprint6_search_orchestrator.sql [OK] Ruta /verify-email/{token} [OK] Ruta /organizations/switch [OK] Ruta /cases/{uuid} [OK] Ruta /cases/{uuid}/people [OK] Ruta /cases/{uuid}/documents [OK] Ruta /cases/{uuid}/documents/{documentUuid}/download [OK] Ruta /cases/{uuid}/sources [OK] Ruta /cases/{uuid}/document-requests [OK] Ruta /cases/{uuid}/candidates [OK] Ruta /cases/{uuid}/candidates/{candidateId}/criteria [OK] Ruta /cases/{uuid}/candidates/{candidateId}/classify [OK] Ruta /cases/{uuid}/research [OK] Ruta /cases/{uuid}/research/sources [OK] Ruta /cases/{uuid}/research/plans [OK] Ruta /cases/{uuid}/research/executions [OK] Ruta /cases/{uuid}/research/executions/{executionUuid}/results [OK] Ruta /cases/{uuid}/research/results/{resultId}/review [OK] Autorización filtra empresa y usuario [OK] Repositorio documental usa contexto tenant y caso [OK] Servicio documental contiene sha256 [OK] Servicio documental contiene documents.download [OK] Servicio documental contiene documents.upload [OK] Servicio documental contiene archivado_en [OK] Servicio documental contiene privacidad [OK] Repositorio de candidatos usa contexto tenant y caso [OK] Servicio de candidatos contiene Nunca fusiona personas [OK] Servicio de candidatos contiene homonimo_probable [OK] Servicio de candidatos contiene motivo_descarte [OK] Servicio de candidatos contiene recalculateScore [OK] Servicio de candidatos contiene evidence.confirm [OK] Repositorio de búsquedas usa contexto tenant y caso [OK] Servicio de búsquedas contiene duplicateExecution [OK] Servicio de búsquedas contiene combinacion_hash [OK] Servicio de búsquedas contiene sin_resultado [OK] Servicio de búsquedas contiene falso_positivo [OK] Servicio de búsquedas contiene pendiente_respuesta [OK] Servicio de búsquedas contiene research.review [OK] Servicio de búsquedas contiene no evade CAPTCHA [OK] Migración Sprint 6 contiene id_empresa [OK] Migración Sprint 6 contiene fuente_nombre_snapshot [OK] Migración Sprint 6 contiene proxima_accion [OK] Migración Sprint 6 contiene revision_nota [OK] Vista de búsquedas contiene search-execution-form [OK] Vista de búsquedas contiene filters_used [OK] Vista de búsquedas contiene result_comment [OK] Vista de búsquedas contiene next_action [OK] Vista de búsquedas contiene csrf->input [OK] Existe app/Modules/Communications/Controllers/CommunicationController.php [OK] Existe app/Modules/Communications/Repositories/CommunicationRepository.php [OK] Existe app/Modules/Communications/Services/CommunicationService.php [OK] Existe resources/views/communications/index.php [OK] Existe database/migrations/010_sprint7_communications_requests.sql [OK] Existe database/qa/010_qa_communications_sprint7.sql [OK] Ruta /cases/{uuid}/communications [OK] Ruta /cases/{uuid}/communications/{requestUuid}/send [OK] Ruta /cases/{uuid}/communications/{requestUuid}/messages [OK] Ruta /cases/{uuid}/communications/{requestUuid}/reminders [OK] Ruta /cases/{uuid}/communications/{requestUuid}/attachments [OK] Repositorio de comunicaciones usa contexto tenant y caso [OK] Servicio de comunicaciones contiene communications.manage [OK] Servicio de comunicaciones contiene mail.log [OK] Servicio de comunicaciones contiene respondida [OK] Servicio de comunicaciones contiene sin_respuesta [OK] Servicio de comunicaciones contiene proximo_seguimiento_en [OK] Servicio de comunicaciones contiene No tiene permiso [OK] Servicio de comunicaciones contiene Nunca se elimina [OK] Vista de comunicaciones contiene data-communication-template [OK] Vista de comunicaciones contiene communication-timeline [OK] Vista de comunicaciones contiene reminder_at [OK] Vista de comunicaciones contiene share_with_recipient [OK] Vista de comunicaciones contiene csrf->input [OK] Migración Sprint 7 contiene id_documento_solicitud [OK] Migración Sprint 7 contiene destinatario_email [OK] Migración Sprint 7 contiene proximo_seguimiento_en [OK] Migración Sprint 7 contiene cerrada [OK] Migración Sprint 7 contiene archivo_solicitud_inicial [OK] Existe app/Core/Middleware/RequireInternalWorkspace.php [OK] Existe app/Modules/Portal/Controllers/PortalController.php [OK] Existe app/Modules/Portal/Repositories/PortalRepository.php [OK] Existe app/Modules/Portal/Services/PortalService.php [OK] Existe resources/views/layouts/portal.php [OK] Existe resources/views/portal/index.php [OK] Existe resources/views/portal/show.php [OK] Existe resources/views/portal/documents.php [OK] Existe resources/views/portal/questions.php [OK] Existe resources/views/portal/updates.php [OK] Existe resources/views/portal/messages.php [OK] Existe resources/views/portal/report.php [OK] Existe resources/views/portal/manage.php [OK] Existe database/migrations/011_sprint8_client_family_portal.sql [OK] Existe database/qa/011_qa_client_portal_sprint8.sql [OK] Ruta /portal [OK] Ruta /portal/cases/{uuid} [OK] Ruta /portal/cases/{uuid}/documents [OK] Ruta /portal/cases/{uuid}/questions [OK] Ruta /portal/cases/{uuid}/updates [OK] Ruta /portal/cases/{uuid}/messages [OK] Ruta /portal/cases/{uuid}/report [OK] Ruta /cases/{uuid}/portal/invite [OK] Repositorio portal aísla empresa, caso y documentos compartidos [OK] Servicio portal contiene portal.manage [OK] Servicio portal contiene No tiene acceso al portal [OK] Servicio portal contiene respuesta familiar [OK] Servicio portal contiene privacy [OK] Servicio portal contiene integridad [OK] Servicio portal contiene inviteClient [OK] Migración Sprint 8 contiene workspace.internal [OK] Migración Sprint 8 contiene portal.access [OK] Migración Sprint 8 contiene gene_caso_portal [OK] Migración Sprint 8 contiene portal_actualizaciones [OK] Migración Sprint 8 contiene portal_pregunta_respuestas [OK] Migración Sprint 8 contiene portal_mensajes [OK] Migración Sprint 8 contiene visible_cliente [OK] Existe app/Modules/Intelligence/Controllers/IntelligenceController.php [OK] Existe app/Modules/Intelligence/Contracts/TextExtractionProviderInterface.php [OK] Existe app/Modules/Intelligence/Contracts/EntityExtractionProviderInterface.php [OK] Existe app/Modules/Intelligence/Providers/CommandTextExtractionProvider.php [OK] Existe app/Modules/Intelligence/Providers/GenericJsonEntityProvider.php [OK] Existe app/Modules/Intelligence/Providers/LocalRulesEntityProvider.php [OK] Existe app/Modules/Intelligence/Repositories/IntelligenceRepository.php [OK] Existe app/Modules/Intelligence/Services/IntelligenceService.php [OK] Existe resources/views/intelligence/index.php [OK] Existe database/migrations/012_sprint9_ocr_ai_human_review.sql [OK] Existe database/qa/012_qa_ocr_ai_sprint9.sql [OK] Ruta /cases/{uuid}/documents/{documentUuid}/intelligence [OK] Ruta /cases/{uuid}/documents/{documentUuid}/intelligence/transcription [OK] Ruta /cases/{uuid}/documents/{documentUuid}/intelligence/ocr [OK] Ruta /cases/{uuid}/documents/{documentUuid}/intelligence/extract [OK] Ruta /cases/{uuid}/documents/{documentUuid}/intelligence/results/{resultId}/review [OK] Repositorio de inteligencia aísla empresa y caso [OK] Servicio IA contiene humanReviewRequired [OK] Servicio IA contiene estado_revision [OK] Servicio IA contiene createProposedAssertion [OK] Servicio IA contiene assertDailyLimit [OK] Servicio IA contiene ai.process [OK] Servicio IA contiene ai.review [OK] Servicio IA contiene original [OK] Migración Sprint 9 contiene ia_consumos_diarios [OK] Migración Sprint 9 contiene ia_revision_eventos [OK] Migración Sprint 9 contiene ai.process [OK] Migración Sprint 9 contiene ai.review [OK] Migración Sprint 9 contiene human_review_required [OK] Vista IA contiene intelligence.human_review_title [OK] Vista IA contiene transcription [OK] Vista IA contiene create_assertion [OK] Vista IA contiene review_action [OK] Vista IA contiene csrf->input [OK] Motor local propone personas, relaciones, fechas, lugares y referencias [OK] Existe app/Modules/Reports/Controllers/ReportController.php [OK] Existe app/Modules/Reports/Repositories/ReportRepository.php [OK] Existe app/Modules/Reports/Services/ReportService.php [OK] Existe app/Modules/Reports/Services/SimplePdfReportGenerator.php [OK] Existe resources/views/reports/index.php [OK] Existe resources/views/reports/preview.php [OK] Existe database/migrations/013_sprint10_reports_timelines.sql [OK] Existe database/qa/013_qa_reports_timelines_sprint10.sql [OK] Ruta /cases/{uuid}/reports [OK] Ruta /cases/{uuid}/reports/events [OK] Ruta /cases/{uuid}/reports/timeline/sync [OK] Ruta /cases/{uuid}/reports/{reportUuid}/generate [OK] Ruta /cases/{uuid}/reports/{reportUuid}/publish [OK] Ruta /cases/{uuid}/reports/{reportUuid}/download [OK] Ruta /portal/cases/{uuid}/report/download [OK] Repositorio de informes aísla empresa y caso [OK] Servicio de informes contiene clave_automatica [OK] Servicio de informes contiene version_actual [OK] Servicio de informes contiene storeGenerated [OK] Servicio de informes contiene reports.generate [OK] Servicio de informes contiene portal_informes_publicados [OK] Servicio de informes contiene snapshot [OK] Servicio de informes contiene sha256 [OK] Migración Sprint 10 contiene gene_evento_control [OK] Migración Sprint 10 contiene gene_informes [OK] Migración Sprint 10 contiene gene_informe_versiones [OK] Migración Sprint 10 contiene portal_informes_publicados [OK] Migración Sprint 10 contiene uq_informe_version [OK] Generador PDF produce un PDF 1.4 válido [OK] Existe app/Modules/Research/Controllers/SourceDirectoryController.php [OK] Existe app/Modules/Research/Repositories/SourceDirectoryRepository.php [OK] Existe app/Modules/Research/Services/SourceDirectoryService.php [OK] Existe resources/views/source-directory/index.php [OK] Existe resources/views/source-directory/form.php [OK] Existe resources/views/source-directory/show.php [OK] Existe database/migrations/015_sprint12_source_directory.sql [OK] Existe database/qa/015_qa_source_directory_sprint12.sql [OK] Ruta /research/directory [OK] Ruta /research/directory/sources/{sourceUuid} [OK] Ruta /research/directory/sources/{sourceUuid}/channels [OK] Ruta /research/directory/recipes/{recipeId}/steps [OK] Directorio aísla fuentes, cobertura y experiencias por tenant [OK] Servicio directorio contiene assertOwned [OK] Servicio directorio contiene if ($mode === 'MA-07') [OK] Servicio directorio contiene if ($mode === 'MA-06') [OK] Servicio directorio contiene no está disponible para esta organización [OK] Migración Sprint 12 contiene research_modos_acceso [OK] Migración Sprint 12 contiene 'MA-08' [OK] Migración Sprint 12 contiene research_recetas [OK] Migración Sprint 12 contiene research_receta_pasos [OK] Migración Sprint 12 contiene research_fuente_experiencias [OK] Migración Sprint 12 contiene research.directory.view [OK] Migración Sprint 12 contiene research.directory.manage [OK] Existe app/Modules/Research/Controllers/QueryMatrixController.php [OK] Existe app/Modules/Research/Repositories/QueryMatrixRepository.php [OK] Existe app/Modules/Research/Services/QueryMatrixService.php [OK] Existe resources/views/research/matrix.php [OK] Existe database/migrations/016_sprint13_query_matrix_false_positives.sql [OK] Existe database/qa/016_qa_query_matrix_sprint13.sql [OK] Ruta /cases/{uuid}/research/matrix [OK] Ruta /cases/{uuid}/research/matrix/plans/{planId}/generate [OK] Ruta /cases/{uuid}/research/matrix/{matrixUuid}/status [OK] Repositorio de matriz aísla empresa y caso [OK] Servicio matriz contiene combinacion_hash [OK] Servicio matriz contiene maxRows [OK] Servicio matriz contiene No se duplicó trabajo [OK] Servicio matriz contiene no evade controles técnicos [OK] Servicio matriz contiene variantes_snapshot_json [OK] Servicio búsqueda Sprint 13 contiene matrix_uuid [OK] Servicio búsqueda Sprint 13 contiene id_matriz_consulta [OK] Servicio búsqueda Sprint 13 contiene firma_candidato [OK] Servicio búsqueda Sprint 13 contiene gene_busqueda_descartes [OK] Servicio búsqueda Sprint 13 contiene motivo verificable del descarte [OK] Migración Sprint 13 contiene research_estados_busqueda [OK] Migración Sprint 13 contiene gene_busqueda_matriz_consultas [OK] Migración Sprint 13 contiene gene_busqueda_descartes [OK] Migración Sprint 13 contiene uq_matriz_combinacion [OK] Migración Sprint 13 contiene id_matriz_consulta [OK] Migración Sprint 13 contiene firma_candidato [OK] Existe app/Modules/Research/Controllers/ResearchImportController.php [OK] Existe app/Modules/Research/Repositories/ResearchImportRepository.php [OK] Existe app/Modules/Research/Services/ResearchImportService.php [OK] Existe resources/views/research-imports/index.php [OK] Existe resources/views/research-imports/show.php [OK] Existe database/migrations/017_sprint14_imports_research_assistant.sql [OK] Existe database/qa/017_qa_imports_research_assistant_sprint14.sql [OK] Existe public/assets/downloads/GeneaCase_Research_Assistant_v1.0.zip [OK] Ruta /cases/{uuid}/research/imports [OK] Ruta /cases/{uuid}/research/imports/{importUuid} [OK] Ruta /cases/{uuid}/research/imports/{importUuid}/manual-text [OK] Ruta /cases/{uuid}/research/imports/{importUuid}/items/{itemId}/review [OK] Ruta /cases/{uuid}/research/imports/{importUuid}/bulk-review [OK] Ruta /cases/{uuid}/research/imports/{importUuid}/apply [OK] Ruta /cases/{uuid}/research/imports/{importUuid}/archive [OK] Repositorio de importaciones aísla empresa y caso [OK] Repositorio Sprint 14 contiene estado_revision IN ('propuesto','aceptado','duplicado','aplicado') [OK] Repositorio Sprint 14 contiene duplicateItemExists [OK] Servicio importador contiene human_review_required [OK] Servicio importador contiene credentials_stored [OK] Servicio importador contiene captcha_bypass [OK] Servicio importador contiene rejectSensitiveKeys [OK] Servicio importador contiene Revise todas las propuestas antes de aplicar [OK] Servicio importador contiene research.import.review [OK] Servicio importador contiene storeGenerated [OK] Servicio importador contiene sha256 [OK] Migración Sprint 14 contiene gene_importaciones [OK] Migración Sprint 14 contiene gene_importacion_items [OK] Migración Sprint 14 contiene gene_research_assistant_capturas [OK] Migración Sprint 14 contiene research.import [OK] Migración Sprint 14 contiene research.import.review [OK] Migración Sprint 14 contiene id_empresa [OK] Migración Sprint 14 contiene id_caso [OK] Parser Sprint 14 procesa CSV supervisado [OK] Parser Sprint 14 procesa captura autorizada [OK] Parser Sprint 14 rechaza campos sensibles [OK] Existe app/Modules/Research/Controllers/ResearchConnectorController.php [OK] Existe app/Modules/Research/Repositories/ResearchConnectorRepository.php [OK] Existe app/Modules/Research/Services/ResearchConnectorService.php [OK] Existe app/Modules/Research/Services/ConnectorSecurityPolicy.php [OK] Existe app/Modules/Research/Services/OfficialConnectorHttpClient.php [OK] Existe resources/views/research-connectors/index.php [OK] Existe resources/views/research-connectors/show.php [OK] Existe resources/views/research-connectors/pilot.php [OK] Existe database/migrations/018_sprint15_connectors_compliance_pilot.sql [OK] Existe database/qa/018_qa_connectors_compliance_pilot_sprint15.sql [OK] Existe tools/qa/sprint15_validate.php [OK] Existe config/connectors.php [OK] Ruta /cases/{uuid}/research/connectors [OK] Ruta /cases/{uuid}/research/connectors/{connectorUuid}/assess [OK] Ruta /cases/{uuid}/research/connectors/{connectorUuid}/execute [OK] Ruta /cases/{uuid}/research/connectors/executions/{executionUuid} [OK] Ruta /cases/{uuid}/research/connectors/executions/{executionUuid}/items/{itemId}/review [OK] Ruta /cases/{uuid}/research/connectors/executions/{executionUuid}/apply [OK] Ruta /cases/{uuid}/pilot [OK] Ruta /cases/{uuid}/pilot/run [OK] Repositorio de conectores aísla empresa/caso y evita duplicados [OK] Servicio conector contiene human_review_required [OK] Servicio conector contiene credentials_stored [OK] Servicio conector contiene captcha_bypass [OK] Servicio conector contiene Revise todas las propuestas antes de aplicarlas [OK] Servicio conector contiene assertContractIntegrity [OK] Servicio conector contiene __geneacase_sample_sha256 [OK] Servicio conector contiene automatic_claims [OK] Cliente HTTP contiene CURLOPT_FOLLOWLOCATION => false [OK] Cliente HTTP contiene CURLOPT_RESOLVE [OK] Cliente HTTP contiene CURLPROTO_HTTPS [OK] Cliente HTTP contiene assertPublicDns [OK] Cliente HTTP contiene env_header [OK] Migración Sprint 15 contiene research_conectores [OK] Migración Sprint 15 contiene research_conector_contratos [OK] Migración Sprint 15 contiene research_conector_ejecuciones [OK] Migración Sprint 15 contiene research_conector_items [OK] Migración Sprint 15 contiene research_conector_cumplimiento [OK] Migración Sprint 15 contiene research_piloto_ejecuciones [OK] Migración Sprint 15 contiene research_piloto_controles [OK] Migración Sprint 15 contiene research.connectors.review [OK] Migración Sprint 15 contiene research.pilot.run [OK] Política Sprint 15 acepta HTTPS autorizado [OK] Política bloquea http://api.example.org/data [OK] Política bloquea https://localhost/data [OK] Política bloquea https://127.0.0.1/data [OK] Política bloquea https://api.example.org:8443/data [OK] Política bloquea https://other.example/data [OK] Política rechaza parámetros sensibles [OK] Política rechaza mapeo de secretos [OK] Idempotencia Sprint 15 usa JSON canónico [OK] Parser conector procesa JSON versionado [OK] Parser conector procesa CSV con campos multilínea [OK] Integridad SHA-256 del contrato validada [OK] Integridad de contrato detecta alteraciones [OK] Existe app/Modules/Research/Controllers/ResearchWorkspaceController.php [OK] Existe app/Modules/Research/Repositories/ResearchWorkspaceRepository.php [OK] Existe app/Modules/Research/Services/ResearchWorkspaceService.php [OK] Existe resources/views/research-workspace/index.php [OK] Existe database/qa/019_qa_workspace_sprint16.sql [OK] Existe tools/qa/sprint16_validate.php [OK] Existe docs/55_SPRINT_16_WORKSPACE_INVESTIGACION.md [OK] Existe docs/56_QA_SPRINT_16.md [OK] Ruta /cases/{uuid}/workspace [OK] Ruta /cases/{uuid}/workspace/tasks [OK] Ruta /cases/{uuid}/workspace/tasks/{taskId}/status [OK] Repositorio workspace usa contexto tenant y caso [OK] Servicio workspace contiene workspace.task_created [OK] Servicio workspace contiene workspace.task_status_changed [OK] Servicio workspace contiene assertActive [OK] Servicio workspace contiene questionBelongs [OK] Servicio workspace contiene memberBelongs [OK] Servicio workspace contiene nunca confirma [OK] Vista workspace contiene workspace-next-action [OK] Vista workspace contiene workspace-metrics [OK] Vista workspace contiene workspace-task-list [OK] Vista workspace contiene workspace.hypothesis_warning [OK] Vista workspace contiene csrf->input [OK] Workspace prioriza pregunta faltante [OK] Workspace prioriza plan faltante [OK] Existe app/Modules/Evidence/Controllers/HypothesisEngineController.php [OK] Existe app/Modules/Evidence/Repositories/HypothesisEngineRepository.php [OK] Existe app/Modules/Evidence/Services/HypothesisEngineService.php [OK] Existe resources/views/hypotheses/index.php [OK] Existe database/migrations/019_sprint17_hypothesis_confidence_engine.sql [OK] Existe database/qa/020_qa_hypothesis_confidence_sprint17.sql [OK] Existe tools/qa/sprint17_validate.php [OK] Existe docs/57_SPRINT_17_MOTOR_HIPOTESIS_CONFIANZA.md [OK] Existe docs/58_QA_SPRINT_17.md [OK] Ruta /cases/{uuid}/hypotheses/engine [OK] Ruta /cases/{uuid}/hypotheses/{hypothesisId}/criteria [OK] Ruta /cases/{uuid}/hypotheses/{hypothesisId}/criteria/{criterionId}/evaluate [OK] Ruta /cases/{uuid}/hypotheses/{hypothesisId}/recalculate [OK] Ruta /cases/{uuid}/hypotheses/{hypothesisId}/review [OK] Ruta /cases/{uuid}/hypotheses/{hypothesisId}/tests [OK] Ruta /cases/{uuid}/hypotheses/{hypothesisId}/tests/{testId}/status [OK] Repositorio de hipótesis aísla empresa y caso [OK] Resumen de hipótesis evita multiplicar criterios y pruebas [OK] Flujo heredado de hipótesis redirigido al motor explicable [OK] Servicio hipótesis contiene human_review_required [OK] Servicio hipótesis contiene automatic_relationship_confirmation [OK] Servicio hipótesis contiene evidence.confirm [OK] Servicio hipótesis contiene recordRevision [OK] Servicio hipótesis contiene assertActive [OK] Servicio hipótesis contiene function addTest [OK] Motor Sprint 17 calcula apoyo ponderado [OK] Motor Sprint 17 excluye contexto y desconocido [OK] Existe database/migrations/020_sprint18_intelligent_timeline.sql [OK] Existe database/qa/021_qa_intelligent_timeline_sprint18.sql [OK] Existe tools/qa/sprint18_validate.php [OK] Existe docs/59_SPRINT_18_CRONOLOGIA_INTELIGENTE.md [OK] Existe docs/60_QA_SPRINT_18.md [OK] Ruta /cases/{uuid}/reports/timeline/analyze [OK] Ruta /cases/{uuid}/reports/timeline/alerts/{alertUuid}/review [OK] Repositorio temporal aísla empresa y caso [OK] Servicio temporal contiene refreshTemporalAlerts [OK] Servicio temporal contiene detectTemporalAlerts [OK] Servicio temporal contiene human_review_required [OK] Servicio temporal contiene No sustituya una fecha por otra [OK] Servicio temporal contiene filterTimeline [OK] Analizador temporal no corrige datos automáticamente [OK] Vista temporal contiene timeline-filter-grid [OK] Vista temporal contiene timeline-decade-list [OK] Vista temporal contiene temporal-alert-list [OK] Vista temporal contiene timeline/analyze [OK] Existe app/Modules/Geography/Controllers/GeographyController.php [OK] Existe app/Modules/Geography/Repositories/GeographyRepository.php [OK] Existe app/Modules/Geography/Services/GeographyService.php [OK] Existe resources/views/geography/index.php [OK] Existe public/assets/js/geography-map.js [OK] Existe database/migrations/021_sprint19_geographic_routes.sql [OK] Existe database/qa/022_qa_geographic_routes_sprint19.sql [OK] Existe tools/qa/sprint19_validate.php [OK] Existe docs/61_SPRINT_19_MAPA_GEOGRAFICO.md [OK] Existe docs/62_QA_SPRINT_19.md [OK] Ruta /cases/{uuid}/geography [OK] Ruta /cases/{uuid}/geography/locations [OK] Ruta /cases/{uuid}/geography/sync-timeline [OK] Ruta /cases/{uuid}/geography/locations/{locationUuid}/review [OK] Ruta /cases/{uuid}/geography/routes [OK] Ruta /cases/{uuid}/geography/routes/{routeUuid}/review [OK] Repositorio geográfico aísla empresa y caso [OK] Servicio geográfico contiene human_review_required [OK] Servicio geográfico contiene automatic_presence_confirmation [OK] Servicio geográfico contiene automatic_route_creation [OK] Servicio geográfico contiene automatic_migration_confirmation [OK] Servicio geográfico contiene assertActive [OK] Servicio geográfico contiene locationFingerprint [OK] Servicio geográfico no confirma propuestas automáticamente [OK] Vista geográfica contiene data-geography-map [OK] Vista geográfica contiene geography-map-data [OK] Vista geográfica contiene geography-review-form [OK] Vista geográfica contiene sync-timeline [OK] Vista geográfica contiene csrf->input [OK] Motor geográfico normaliza coordenadas decimales [OK] Motor geográfico rechaza coordenadas fuera de rango [OK] Existe app/Core/SafeMessage.php [OK] Existe app/Core/RequestContext.php [OK] Existe app/Core/ProductionGuard.php [OK] Existe app/Core/RateLimiter.php [OK] Existe app/Core/Middleware/RateLimitMiddleware.php [OK] Existe config/security.php [OK] Existe public/assets/js/theme-init.js [OK] Existe database/migrations/022_sprint20_production_hardening.sql [OK] Existe database/qa/023_qa_production_hardening_sprint20.sql [OK] Existe tools/qa/sprint20_validate.php [OK] Existe tools/qa/sprint20_readiness.php [OK] Existe docs/63_SPRINT_20_ENDURECIMIENTO_PRODUCCION.md [OK] Existe docs/64_QA_SPRINT_20.md [OK] Existe docs/65_DICTAMEN_PRE_STAGING.md [OK] Application Sprint 20 contiene ProductionGuard::assertSafe [OK] Application Sprint 20 contiene RequestContext::class [OK] Application Sprint 20 contiene RateLimiter::class [OK] Application Sprint 20 contiene productionRequestPreflight [OK] Rate limit auth.login [OK] Rate limit auth.password_reset_request [OK] Rate limit research.import_upload [OK] Rate limit research.connector_execute [OK] Storage Sprint 20 contiene assertBinarySignature [OK] Storage Sprint 20 contiene assertSafeImage [OK] Storage Sprint 20 contiene normalizeRelativePath [OK] Storage Sprint 20 contiene isInsideBase [OK] CSP Sprint 20 bloquea JavaScript inline [OK] Layout app.php usa tema externo [OK] Layout auth.php usa tema externo [OK] Layout portal.php usa tema externo [OK] Layout public.php usa tema externo [OK] Request ignora proxy no confiable [OK] Request admite proxy autorizado [OK] Request bloquea redirección externa [OK] SafeMessage oculta error técnico [OK] Existe .env.staging.example [OK] Existe app/Core/DeploymentReadiness.php [OK] Existe config/deployment.php [OK] Existe tools/staging/preflight.php [OK] Existe tools/staging/release_inventory.php [OK] Existe tools/staging/verify_release.php [OK] Existe tools/qa/sprint21_validate.php [OK] Existe tools/qa/sprint21_readiness.php [OK] Existe deploy/nginx/geneacase-staging.conf.example [OK] Existe deploy/apache/geneacase-staging-vhost.conf.example [OK] Existe deploy/scripts/prepare-shared-directories.sh [OK] Existe deploy/scripts/deploy-release.sh [OK] Existe deploy/scripts/backup-database.sh [OK] Existe deploy/scripts/restore-database.sh [OK] Existe docs/66_SPRINT_21_STAGING_REPRODUCIBLE.md [OK] Existe docs/67_QA_SPRINT_21.md [OK] Existe docs/68_RUNBOOK_STAGING.md [OK] Ruta /api/v1/health/live [OK] Ruta /api/v1/health/ready [OK] Readiness contiene checkMigrations [OK] Readiness contiene sys_migrations [OK] Readiness contiene publicReadiness [OK] Readiness contiene queue_failed_jobs [OK] Readiness contiene monitoring_heartbeat_url [OK] Mailer contiene STARTTLS [OK] Mailer contiene AUTH LOGIN [OK] Mailer contiene stream_socket_client [OK] Mailer contiene verify_peer [OK] Mailer contiene MAIL FROM [OK] Mailer contiene RCPT TO [OK] ProductionGuard protege staging y production [OK] Inventario de release excluye uploads [OK] Inventario de release excluye sesiones [OK] Inventario de release excluye logs [OK] Inventario de release excluye secretos y almacenamiento [OK] Liveness Sprint 21 operativo [OK] Existe app/Core/ReleaseCandidateGate.php [OK] Existe tools/staging/release_candidate.php [OK] Existe tools/qa/sprint22_validate.php [OK] Existe tools/qa/sprint22_readiness.php [OK] Existe deploy/scripts/run-release-candidate-audit.sh [OK] Existe docs/69_SPRINT_22_RELEASE_CANDIDATE.md [OK] Existe docs/70_QA_SPRINT_22.md [OK] Existe docs/71_DICTAMEN_PRODUCCION_CONTROLADA.md [OK] Staging Sprint 22 contiene RELEASE_CANDIDATE_EVIDENCE_PATH= [OK] Staging Sprint 22 contiene PRODUCTION_MANUAL_APPROVAL_REQUIRED=true [OK] Staging Sprint 22 contiene PRODUCTION_TRAFFIC_ENABLED=false [OK] Gate Sprint 22 contiene restore_drill [OK] Gate Sprint 22 contiene tenant_isolation [OK] Gate Sprint 22 contiene security_audit [OK] Gate Sprint 22 contiene manual_approval [OK] Gate Sprint 22 contiene APTO_PRODUCCION_CONTROLADA_CON_PILOTO [OK] Herramienta Sprint 22 no activa producción [OK] Gate Sprint 22 genera plantilla sanitizada [ERROR] Prueba de almacenamiento: La carga no fue recibida mediante un formulario válido. [ERROR] Falta extensions/geneacase-research-assistant/manifest.json [ERROR] Falta extensions/geneacase-research-assistant/popup.js [ERROR] Research Assistant tiene manifiesto o permisos inesperados [ERROR] Research Assistant incumple controles de captura local TOTAL_ERRORES=5