ember-memory-test/episodes/TRAZA_no-haba-que-fabricarlo-estaba-ciego_S20260812.R16_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD.md
Ember 1c55a6ec07 feat(episode): TRAZA_no-haba-que-fabricarlo-estaba-ciego_S20260812.R16_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD
Skill: TESSERA | Type: troubleshooting
Summary: EPISODIO 16 — MNEMO_PRE_DIGEST: No había que fabricarlo. Estaba ciego.
2026-08-14 04:32:00 +00:00

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.