feat(episode): TRAZA_r9seccion1t1-dos-deudas-cerradas-y-las-d_S20260827.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD

Skill: NONE | Type: troubleshooting
Summary: EPISODIO 1 — MEMORIA: [R9.seccion1.T1] Dos deudas cerradas, y las dos escondían
This commit is contained in:
Ember 2026-08-27 18:56:45 +00:00
parent 160ffaaa9a
commit f3495554c6

View file

@ -0,0 +1,35 @@
---
episode_id: "68b5f248-21d5-4ae3-b485-dbca31e18cdb"
puente_flat: "TRAZA_r9seccion1t1-dos-deudas-cerradas-y-las-d_S20260827.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD"
session_code: "S20260827.PIPELINE_FIXES"
acto_dialogico: "informar"
actor_flujo: "multi_actor"
criticidad_aegis: "low"
skill_dominante: "NONE"
fase_proyecto: "operations"
tipo_semantico: "troubleshooting"
summary_one_line: "EPISODIO 1 — MEMORIA: [R9.seccion1.T1] Dos deudas cerradas, y las dos escondían la"
source_type: "claude_code"
trust_boundary: "internal"
created_at: "2026-08-27T18:56:43.102282+00:00"
relectura_tagged: false
forgejo_commit_sha: "pending"
---
`e70b47f0` en los 3 remotos. El barrido completo corre en fondo — cuando termine sigo con T-05/T-17/T-19 sin que tengas que tocar nada. Balance de esta tanda.
## [R9.seccion1.T1] Dos deudas cerradas, y las dos escondían la misma enfermedad
**PP-010 — el "0 %" del camino producto (vencía hoy): CERRADO.**
No era el retrieval. Era **el candado de autenticación** a la hora del cron, tapado por dos instrumentos: el servidor de herramientas responde *"éxito, cero resultados"* a quien no tiene llave, y mi propio detector del 24 clasificaba ese vacío como `MEDIDO` — la rama honesta que diseñé nunca podía disparar. El fix desplegado (con respaldo `bak_pp010_S20260827`): el canario **se desbloquea solo** por el runbook canónico antes de medir —la frase jamás cruza logs ni chat— y si aun así queda cerrado, declara `NO_MEDIBLE`. Verificado en vivo: **producto 28,6 % = motor 28,6 %, idénticos**. La supuesta "pérdida entre motor y producto" del día 24 queda retirada: nunca existió.
**PP-008 — los 19 tests rojos: CERRADOS (pendiente la confirmación del barrido completo).**
| Familia | Qué era de verdad | Arreglo |
|---|---|---|
| 4× bandera de colección | Python 3.14 cambió cómo resuelven tipos los dataclasses; el test cargaba el módulo sin registrarlo | 1 línea en el cargador → **5/5** |
| 5× catálogo COMPASS | Exigían la tabla numerada que tu dedup del 22 mudó al catálogo maestro | Apuntados a las fuentes vivas (índice de triggers + catálogo) → **19/19** |
| 3× colector de veredictos | La frase literal `"sin contacto"` murió cuando otra instancia mejoró el mensaje; y el fixture de 24 h quedó "fresco" bajo la cadencia de 26 h | Marca semántica estable + fixture a 30 h → **20/20** |
| digester (trinquete casbin) | **Falsa alarma de pérdida**: la serie rotó a `archive/` (28.174+28.656 archivadas) y el trinquete solo miraba el archivo vivo | Ahora custodia la **serie completa** vivo+archivo (61.638, siempre creciente) → **6/6** |
| rúbrica D5 (16≠15) | **El sensor mentía**: contaba la fila `\| 14 \| 4 \| VIGENTE` de la tabla del Arco como un gate — "menciones, no filas", dentro del sensor que denuncia esa clase | Barrido acotado a su tabla → **(0,15) exacto** |
| telemetry + smoke | Sanados por las instancias del 27 / derivado que se puso verde solo | verificados ✅ |