ember-memory-test/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
Ember 03537c8644 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
Skill: NONE | Type: troubleshooting
Summary: EPISODIO 1 — MNEMO_PRE_DIGEST: 🎯 El veredicto final del arco retrieval (5 experi
2026-07-19 13:26:08 +00:00

3.1 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
a3991776-2700-42c6-99b8-2003836b9357 TRAZA_el-veredicto-final-del-arco-retrieval-5_S20260719.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD S20260719.ORACULO_RETRIEVAL_X09 informar multi_actor low NONE operations troubleshooting EPISODIO 1 — MNEMO_PRE_DIGEST: 🎯 El veredicto final del arco retrieval (5 experimentos) claude_code internal 2026-07-19T13:25:55.259893+00:00 false 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.