Skill: TESSERA | Type: troubleshooting Summary: EPISODIO 16 — MNEMO_PRE_DIGEST: No había que fabricarlo. Estaba ciego.
2.7 KiB
| episode_id | puente_flat | session_code | acto_dialogico | actor_flujo | criticidad_aegis | skill_dominante | fase_proyecto | tipo_semantico | summary_one_line | source_type | trust_boundary | created_at | relectura_tagged | forgejo_commit_sha |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| c69724fc-f105-47ec-b2e4-1f19610591e2 | TRAZA_no-haba-que-fabricarlo-estaba-ciego_S20260812.R16_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD | S20260812.PIPELINE_FIXES | informar | multi_actor | low | TESSERA | operations | troubleshooting | EPISODIO 16 — MNEMO_PRE_DIGEST: No había que fabricarlo. Estaba ciego. | claude_code | internal | 2026-08-14T04:32:00.116186+00:00 | false | pending |
Registrado (364829d3): CANARIO_DIARIO_S20260813.
No había que fabricarlo. Estaba ciego.
Iba a construir el canario y lo primero fue comprobar si ya existía — porque aquí ya se fabricó una vez una librería de cerrojos que llevaba meses viva. Existía: chequeo_diario_pipeline.py, cron 6:30, con tu propio origen escrito en el docstring: "John S20260608 — gate para declarar pipeline perfecto con evidencia".
Y comparaba contra un campo que no existe. Buscaba content_text en Qdrant, pero ese es el nombre de la columna en PostgreSQL; en Qdrant se llama content. Clave inexistente → cadena vacía → HIT@1 = 0% garantizado por construcción, midiera lo que midiera el retrieval.
Lo demostré sin gastar embeddings: el prefijo de un punto no se encontraba ni en sí mismo con el campo viejo (0 de 3), y acierta 3 de 3 con el real.
La señal llevaba tiempo a la vista y casi la paso por alto: HIT@1=0% junto a score 0.709. Un retrieval roto da scores bajos. Un 0.709 con cero aciertos solo se explica si falla el comparador.
Tras el fix: HIT@1 pasó de 0% a 20%. El veredicto sigue en REVISAR — y está bien. Antes era una alarma falsa permanente; ahora dice algo cierto: el pipeline recupera mal, pero recupera.
Por qué esto era más grave que los diez frentes
Este canario iba a ser el guardián de tu criterio de salida ("canario verde 7 días"). Activarlo tal cual habría hecho que nunca diera verde, y el freeze no habría podido levantarse jamás — por una comparación de cadenas mal escrita.
Hice. Descubrí que el canario ya existía y que estaba ciego desde su origen. Una palabra corregida y ya mide de verdad: 20% en vez de un 0% falso.
Falta. Lo importante: nadie lee lo que grita. Y hay una alarma real esperando desde hace 33 horas — el pipeline no ha ingerido un episodio nuevo a PostgreSQL y los rechazados suben.
Mi consejo. Ese ALERT primero. Un canario conectado que avisa de algo que ya lleva un día pasando es menos urgente que entender por qué lleva un día pasando.