# Sprint 12 — Directorio de fuentes, modos de acceso y recetas iniciales

## Objetivo

Incorporar un directorio operativo de instituciones y fuentes para que una organización conozca qué recursos existen, cómo pueden consultarse, cuál es su cobertura, qué restricciones aplican, qué se ha consultado y cuál es la siguiente acción segura.

## Alcance implementado

- Catálogo bilingüe de modos de acceso `MA-01` a `MA-08`.
- Fuentes globales de solo lectura y fuentes privadas por organización.
- Instituciones globales o privadas por organización.
- Registro de colección, país, jurisdicción, periodo, cobertura, formatos, URL, restricciones, versión y responsable de verificación.
- Mapa de cobertura calculado desde planes y ejecuciones reales de la organización activa.
- Estados visuales: cubierta, en curso, pendiente, bloqueada y sin planificar.
- Próxima acción sugerida de forma determinista, no mediante IA.
- Canales de acceso con requisitos, costo y plazo estimado.
- Ocho recetas globales iniciales con pasos supervisados.
- Recetas y pasos propios por organización.
- Experiencias internas de respuesta, sin publicación automática.
- Permisos independientes de lectura y administración.
- Interfaz responsive, tema claro/oscuro y traducciones ES/EN.

## Seguridad y multiempresa

- Las fuentes globales usan `id_empresa = NULL` y no pueden editarse desde una organización.
- Las fuentes, instituciones, recetas y experiencias privadas se filtran por la empresa activa determinada en el servidor.
- Los IDs enviados por el navegador se vuelven a validar contra la visibilidad del tenant.
- `MA-07` fuerza automatización `no` y registra CAPTCHA/restricción.
- `MA-06` exige login externo, pero GeneaCase no almacena contraseñas, cookies ni tokens.
- No existe eliminación física desde la interfaz.
- Las altas y modificaciones quedan auditadas.

## Archivos principales

- `database/migrations/015_sprint12_source_directory.sql`
- `app/Modules/Research/Repositories/SourceDirectoryRepository.php`
- `app/Modules/Research/Services/SourceDirectoryService.php`
- `app/Modules/Research/Controllers/SourceDirectoryController.php`
- `resources/views/source-directory/`
- `tools/qa/sprint12_validate.php`

## Fuera de alcance

- Matriz completa de consultas y variantes del Sprint 13.
- Importación masiva PDF/CSV y extensión Research Assistant del Sprint 14.
- Conectores automáticos de fuentes externas del Sprint 15.
- Scraping masivo, evasión de CAPTCHA, credenciales compartidas o automatización contraria a condiciones de terceros.
