Subsistema papers/: pieza de entrega + control de calidad.
- render_paper_pdf_py_datascience (Python, impure, dominio datascience, grupo
`papers`): convierte papers/<slug>/paper.md (frontmatter YAML + cuerpo IMRaD)
en papers/<slug>/out/paper.pdf. Reutiliza el motor de paginación de flujo del
paquete automatic_eda (matplotlib PdfPages, el mismo PDF móvil A5 de los
informes EDA) — no reimplementa paginación ni toca matplotlib, y no añade
dependencias. Cada sección IMRaD (# H1) → un Chapter en página nueva; portada
desde el frontmatter (title/authors/date europea/abstract); detecta las
imágenes Markdown  que el motor no entiende y las parte en bloques
Image resueltos contra base_dir y base_dir/figures/. dict-no-throw estricto.
5 tests verdes (golden + edges: sin frontmatter, path inexistente, figura
inexistente, ruta directa al .md).
- .claude/agents/paper-reviewer: revisor académico adversarial read-only (gate
anti paper-mill). Puntúa novedad/rigor/reproducibilidad/validez (0-5), intenta
refutar cada claim contra la evidencia citada, detecta HARKing contra el
preregistration.md, exige limitaciones declaradas y claims ≤ evidencia, y
emite veredicto estructurado JSON (accept|major_revision|reject) con default
conservador. Tools: Read, Grep, Glob, Bash (sin Edit/Write: solo juzga).
Diseño completo: reports/0001-2026-06-30-papers-system-design.md (agente C).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>