From 03537c86447b1173cbb42f3798aae9eaa917b855 Mon Sep 17 00:00:00 2001 From: Ember Date: Sun, 19 Jul 2026 13:26:08 +0000 Subject: [PATCH] feat(episode): TRAZA_el-veredicto-final-del-arco-retrieval-5_S20260719.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Skill: NONE | Type: troubleshooting Summary: EPISODIO 1 — MNEMO_PRE_DIGEST: 🎯 El veredicto final del arco retrieval (5 experi --- ...ot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD.md | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 episodes/TRAZA_el-veredicto-final-del-arco-retrieval-5_S20260719.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD.md diff --git a/episodes/TRAZA_el-veredicto-final-del-arco-retrieval-5_S20260719.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD.md b/episodes/TRAZA_el-veredicto-final-del-arco-retrieval-5_S20260719.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD.md new file mode 100644 index 00000000..9ca79392 --- /dev/null +++ b/episodes/TRAZA_el-veredicto-final-del-arco-retrieval-5_S20260719.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD.md @@ -0,0 +1,46 @@ +--- +episode_id: "a3991776-2700-42c6-99b8-2003836b9357" +puente_flat: "TRAZA_el-veredicto-final-del-arco-retrieval-5_S20260719.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD" +session_code: "S20260719.ORACULO_RETRIEVAL_X09" +acto_dialogico: "informar" +actor_flujo: "multi_actor" +criticidad_aegis: "low" +skill_dominante: "NONE" +fase_proyecto: "operations" +tipo_semantico: "troubleshooting" +summary_one_line: "EPISODIO 1 — MNEMO_PRE_DIGEST: 🎯 El veredicto final del arco retrieval (5 experimentos)" +source_type: "claude_code" +trust_boundary: "internal" +created_at: "2026-07-19T13:25:55.259893+00:00" +relectura_tagged: false +forgejo_commit_sha: "pending" +--- + +Commit `a3d2c761` — 3/3. El arco del oráculo llegó a su verdad completa. Te doy la síntesis final, sin adornos. + +# 🎯 El veredicto final del arco retrieval (5 experimentos) + +Corrí filter-then-rank con tres brazos. **Ninguno subió el recall@1:** + +| Brazo | recall@1 | por qué | +|---|---|---| +| Baseline (pool completo) | 0.060 | — | +| Filtro por mes | 0.066 | solo 2 meses → encoge poco | +| Filtro por entidad | **0.049 (peor)** | encoge a ~54 candidatos **pero pierde el episodio correcto** | + +**La lección que cierra la búsqueda:** encoger el pool no basta — **el filtro tiene que RETENER el episodio correcto.** El experimento anterior (S-2) subió a 0.36 porque su pool de 145 *siempre* contenía el target (era un filtro-oráculo perfecto). Los filtros reales no son oráculos: el de mes retiene el target pero apenas encoge; el de entidad encoge fuerte pero **bota el target** cuando su texto indexado (título ceremonial genérico) no comparte palabras con la pregunta. + +## La verdad honesta, después de cinco experimentos + +**No hay bala de plata de una línea.** El retrieval real es débil (~6% a la primera, ~16% en el top-10 a escala) y la causa es **estructural**: hay demasiados episodios-turno delgados, ceremonialmente casi idénticos ("PARA JOHN — R1", "EPISODIO N — MARKER"), con el resumen vacío. Cada palanca que probamos falló o apenas movió: + +- Multi-store RRF: perdió 4 veces. +- Fusión V1: era humo de leakage (no aporta en preguntas reales). +- Summaries solos: ayudan el top-10, no el top-1. +- Filter-then-rank barato: no retiene el target y encoge. + +**La mejora real requiere inversión estructural, no un tweak:** granularidad más gruesa (fusionar turnos → menos near-duplicates) **+** poblar los resúmenes y re-indexar por ellos (sube la cobertura del índice). Combinadas: menos episodios, más ricos, más encontrables. + +## Lo que este arco SÍ ganó (y es mucho) + +Pagamos el precio de medir honesto y compramos la verdad: **el 0.490 era un fantasma de leakage; el número real es 0.06.** Falsificamos cuatro hipótesis con evidencia — cada una nos ahorró una inversión que no habría movido la aguja (un re-embed de 828 episodios, más afinado de fusión, más multi-store). Dejamos un examen honesto permanente (reutilizable, anclado por sha256) y un diagnóstico correcto y accionable. Y una nota que importa: "reencontrar el hilo de un chat" (por session_code) sigue al 100% — esa es la vía que Ember usa en la práctica.