Biblioteca de investigación
La ruta /biblioteca publica los documentos largos que el equipo escribe en research/**/*.md y outputs/briefings/*.md. Hasta esta superficie, esos archivos vivían solo en el repositorio. En el sitio cualquiera puede filtrarlos, leerlos y citarlos.
Es distinta de /investigacion. Aquella ruta sirve papers país × eje sobre palancas de score. Esta sirve los informes de programa (ángulos sectoriales, dossiers de país, briefings).
Qué ve el lector
En el listado (/biblioteca):
- buscador por título, resumen y etiqueta
- filtro por tipo (
sector,pais,par,instrumento,metodo,territorio,riesgo,briefing) - filtro por los 25 países de ALC
- orden por fecha o por número de fuentes
- cada tarjeta muestra título, tipo, fecha, resumen y tres señales de rigor: palabras, fuentes (URLs distintas) y DOIs
- insignias cuando el texto contiene
## Anexo de verificación,## Revisión de paresoQué falsaría
En el detalle (/biblioteca/$slug):
- markdown completo, con el mismo renderizador que el chat (
ChatMarkdown: tablas GFM, listas, enlaces) - índice de secciones
- enlace a la fuente en GitHub (
futurosxyz/futuros) - descarga en PDF (
/research/pdf/<slug>.pdf): el mismo documento compuesto como paper académico — portada con serie, resumen y palabras clave, secciones numeradas, cuadros con leyenda, bibliografía con sangría francesa, encabezado y folio. Los 62 PDF se versionan enpublic/research/pdf/(37 MB en total, comprimidos); no son artefacto de bake, se regeneran con el pipeline de composición. - bloque de cita sugerida
El texto de cada documento queda en el idioma en que se escribió. Lo que se traduce (ES/EN/PT) es la interfaz.
Cómo se genera el índice
No se edita a mano. scripts/bake-research-library.ts recorre las carpetas (si una aún no existe, la salta) y escribe:
| Salida | Contenido |
|---|---|
public/data/research-library.json | índice: slug, path, título, fecha, tipo, resumen, métricas, países, etiquetas |
public/research/<slug>.json | lo mismo más el markdown completo |
El slug es el nombre de archivo sin la fecha inicial ni la extensión. El título sale del frontmatter title: o, si falta, del primer # . El resumen es el primer párrafo de prosa (no un encabezado), recortado a ~320 caracteres sin cortar palabras. Los países se detectan con la lista canónica de src/data/geographies.ts más iso3/country del frontmatter.
El script corre en prebuild:fast, prebuild:full y scripts/bake-all.ts. Los JSON son artefactos de bake: están en .gitignore. La fuente de verdad es el markdown. Un build sin el script deja /biblioteca vacía; por eso el prebuild lo ejecuta siempre, también en previews de Vercel (el bake no usa red).
En local, antes de bun run dev:
bun run bake:research-libraryQué no toca
No escribe public/investigacion/index.json ni public/investigacion/coverage.json. Esos archivos pertenecen a la ola de papers país × eje.