# Sprint 6 — Orquestador de búsquedas

## Objetivo

Eliminar la pérdida de trabajo causada por búsquedas dispersas. Cada consulta conserva dónde se realizó, qué combinación se utilizó, qué filtros se aplicaron, qué resultado produjo y cuál es la próxima acción.

## Alcance funcional

- Planes ligados a preguntas del caso.
- Directorio de fuentes globales y privadas por organización.
- Variantes de nombre, apellido, fecha, lugar, padres, profesión y unidad.
- Fuentes planificadas con prioridad, motivo y estado.
- Ejecuciones manuales, asistidas, por API autorizada, importación, correo, formulario, visita o investigador local.
- Consulta literal, URL, filtros, responsable, tiempo, costo y estado.
- Detección de búsquedas exactas repetidas mediante `combinacion_hash`.
- Estados positivos, parciales, negativos, falsos positivos, homónimos, bloqueos y pendientes.
- Resultados individuales con página, fragmento, URL y persona candidata.
- Revisión humana de ejecución y resultado.
- Cobertura de cada plan.

## Límites de automatización

GeneaCase no evade CAPTCHA, autenticación, bloqueos, suscripciones ni controles técnicos. La asistencia automatizada futura solo podrá operar cuando la fuente lo permita y siempre conservará trazabilidad.

## Rutas principales

- `GET /cases/{uuid}/research`
- `POST /cases/{uuid}/research/sources`
- `POST /cases/{uuid}/research/plans`
- `POST /cases/{uuid}/research/plans/{planId}/variants`
- `POST /cases/{uuid}/research/plans/{planId}/sources`
- `POST /cases/{uuid}/research/executions`
- `POST /cases/{uuid}/research/executions/{executionUuid}/results`
- `POST /cases/{uuid}/research/results/{resultId}/review`

## Permisos

- `research.plan`: fuentes, planes, variantes y cobertura.
- `research.execute`: ejecuciones y resultados.
- `research.review`: clasificación y próxima acción revisada.
