15  Trazabilidad de Artefactos y Runbook

15.1 Mapa Maestro Claim → Artefacto → Test

Esta página es el índice maestro del CRPTO. Cumple un rol específico que ningún chapter narrativo cumple: dar a un revisor (académico, regulatorio o interno) la capacidad de tomar cualquier claim del paper, encontrar el artefacto exacto que lo soporta, identificar el script generador y verificar el guardrail que mantiene la coherencia. Es el contrato de trazabilidad operativa del proyecto.

15.1.1 Tabla maestra: claims C1–C7

15.1.2 Mapa figura → script → fuente

15.1.3 Mapa tabla A → script → fuente

15.1.4 Runbook: regenerar el paquete completo

# 1. Verificar entorno Windows nativo
uv run python --version

# 2. Regenerar tablas paper-facing canónicas (A0-A6)
uv run python scripts/export_crpto_tables.py

# 3. Regenerar evidencia CRPTO con hardening (A7-A11)
uv run python scripts/analyze_crpto_evidence.py --include-hardening

# 4. Regenerar journal package (A12-A18 + Figuras 12-14)
uv run python scripts/build_crpto_journal_package.py

# 5. (Opcional) Regenerar figuras publicación (7-11)
uv run python scripts/generate_crpto_figures.py

# 6. Validar coherencia con tests guardrail
uv run pytest tests/test_crpto_final_sync.py tests/test_quarto_book_guardrails.py

# 7. Renderizar libro Quarto
uv run -- quarto render book --to html --no-execute

# 8. Abrir resultado
Test-Path book/_book/index.html

15.1.5 Runbook: familias congeladas vs familias de búsqueda

La regla operativa más importante para reproducibilidad es que los pipelines paper-facing no vuelven a buscar el champion. Consumen la policy congelada en models/champion_portfolio_policy.json mediante explicit_champion_only. Solo las familias nombradas como búsqueda pueden reabrir HPO, conformal search o portfolio search.

ImportanteRegla anti-regresión del champion

crpto_e2e, paper2_e2e, core_canonical y canonical_rebuild son rutas de regeneración, no rutas de descubrimiento. Si un rerun de esas familias produce una policy distinta al economic champion rt=0.175, gamma=0.45, blended_uncertainty, uncertainty_aversion=0.10, eso es una regresión del pipeline y no un nuevo resultado del paper. La única forma válida de cambiar el champion es abrir una familia search_*, versionar el run, comparar por familia compatible y actualizar la promoción explícitamente.

15.1.6 Regla sobre _freeze

El libro usa execute: freeze: true en book/_quarto.yml. Eso significa que un render intencional puede crear o actualizar archivos bajo book/_freeze/. La regla operativa es simple: si el render se hizo para cerrar una página del CRPTO, el cache asociado se versiona junto con la página; si el render fue exploratorio, se revisa antes de incluirlo en un commit. No hay que borrar _freeze como limpieza automática porque forma parte de la reproducibilidad del libro.

ImportanteRegla de sincronización canónica

Si cualquier tabla del paquete (A0–A18) o cualquier figura (7–14) contradice los valores en models/final_project_promotion.json, gana siempre final_project_promotion.json. Las tablas/figuras son evidencia de robustez, sensibilidad y empaque journal; nunca son una promoción nueva del champion. La regla está implementada en los tests tests/test_crpto_final_sync.py y se ejecuta en CI.

15.1.7 Estado de los status JSONs canónicos

15.1.8 Where to look first (índice por pregunta de revisor)

Si el revisor pregunta… Ir directamente a…
¿Cuál es el champion y por qué? 06-blueprint-manuscrito.qmd + models/final_project_promotion.json
¿Por qué score_decile_mondrian y no grade? 08-ablacion-mondrian.qmd (Sección 10.1)
¿Cómo se midió el 49.1% de SPO+? 09-spo-regret.qmd (Sección 11.1)
¿Pasa fairness? 10-fair-lending.qmd (Sección 12.1)
¿Pasa MRM/SR 11-7? 11-mrm.qmd (Sección 13.1)
¿Cómo está compuesto el funded set? 12-funded-set.qmd (Sección 14.1)
¿Cuál es el bound exacto y cómo se demuestra? 02-marco-teorico.qmd (thm-conformal-feasibility)
¿Cuál es la región robusta? 04-resultados.qmd sección Región robusta completa + Fig 14
¿Qué pasó con el shift COVID? 04-resultados.qmd (Sección 5.0.8)
¿Cuáles son los appendices journal? 07-apendice-robustez.qmd (Sección 9.1)
¿Cómo regenero todo? Esta página, sección Runbook arriba
¿Cómo sé que un rerun no reabre búsqueda? Esta página, sección Runbook: familias congeladas vs familias de búsqueda

Esta tabla cumple un propósito muy concreto: cuando un revisor mande comentarios, no hay que buscar — hay un mapa directo.