# Release dry-run — Enrique Martínez Lozano / carta «Hacia el corazón» **Estado:** preparado localmente; **no ejecutado en producción**. ## Validación local completada - Comentario ES: `#55041` — `El tesoro está ya en nosotros` - Categorías: `Comentarios al evangelio` + `Feadulta`. - Audio: `tts/55041.mp3`, 2,221,101 bytes, voz `NicoFeadulta2026`. - QA Haiku: aprobado tras correcciones objetivas EN/FR/IT. - Traducciones del comentario: EN `#55047`, FR `#55048`, IT `#55049`, PT `#55050`. - Carta local ES: `#55042` — `Hacia el corazón` (slug técnico de preview conservado). - Traducciones: EN `#55051`, FR `#55052`, IT `#55053`, PT `#55054`. - QA Haiku: contenido aprobado tras correcciones; 24 enlaces con destino traducido se repuntaron. Los 12 enlaces externos que quedan son fallback ES: no existe post destino traducido en local (verificado por `post_title` exacto y Polylang). - Render comprobado en Tailscale: - Comentario ES: título correcto, categorías correctas y reproductor HTML5 visible. - Carta FR: título correcto; Enrique aparece tras Fray Marcos y antes de Pagola. ## Evidencia de producción (sólo lectura server-side) - Carta real: `#54914`, título `Hacia el corazón`, estado `publish`. - Hash actual de contenido prod: `5e7eb1b880bfc6311edb78ac8b6e81639f5b4502282a1b182c610b1d01308b69`. - Hash candidato local: `6fdb4929fcb5b49b7f2dc1deb7c6f5be70983af866d44c5d5c27d2866c09418c`. - La carta candidata lleva `fea_phase_a_source_prod_id=54914`; por tanto debe **actualizar #54914**, no crearse una carta nueva. ## Dry-runs que pasaron ```bash # Crea solamente el grupo nuevo del comentario (ES + EN/FR/IT/PT): 5 posts draft python3 scripts/sync_translations_to_prod.py --ids 55041 --dry-run # Sube y asocia solamente el MP3 de Enrique python3 scripts/sync_audio_to_prod.py --ids 55041 --dry-run ``` Ambos devolvieron `ok/error=1/0` (audio) y un grupo Polylang de cinco posts (comentario). ## Guardarraíl crítico **NO ejecutar:** ```bash python3 scripts/sync_translations_to_prod.py --ids 55041,55042 ``` El dry-run demostró que clonaría `#55042` como una segunda carta ES. No actualiza la carta real `#54914`. ## Release que debe ejecutar Rafa (producción) 1. Backup de producción y snapshot server-side de `#54914`. 2. Crear el grupo nuevo del comentario desde `#55041` (ES + EN/FR/IT/PT), inicialmente en `draft`; anotar los IDs reales de producción. 3. Subir `tts/55041.mp3` y asociarlo al ID ES real creado en producción. 4. Actualizar **solamente** título/contenido de la carta real `#54914` con el candidato local `#55042`; mantener título `Hacia el corazón`, autor, fecha y estado existentes. 5. Crear EN/FR/IT/PT de la carta contra el origen real `#54914` y enlazarlas en Polylang. No clonar otra ES. 6. Releer por servidor los IDs creados y `#54914`; comprobar: - Enrique sólo está en `Evangelio y comentarios al Evangelio`, tras Fray Marcos y antes de Pagola. - No aparece en `Artículos seleccionados`. - Cada carta enlaza a Enrique en su mismo idioma. - El reproductor del ES carga `tts/55041.mp3`. 7. Sólo tras esas lecturas, promover los drafts de producción a `publish`. ## Rollback - Restaurar el backup de producción previo. - Alternativamente, restaurar el contenido/hash previo de `#54914` y despublicar el nuevo grupo + audio de Enrique. ## Backups locales relacionados - `docs/backups/enrique-translations-20260725T004921Z/` - `docs/backups/enrique-carta-fr-final-20260725T012649Z/` - `docs/backups/enrique-pre-tts-20260725T013021Z/`