feat(episode): DEPURA_el-balance-del-sprint-y-del-da-entero_S20260702.R99_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD

Skill: TESSERA | Type: troubleshooting
Summary: EPISODIO 112 — MNEMO_PRE_DIGEST: El balance del sprint (y del día entero)
This commit is contained in:
Ember 2026-07-12 16:17:06 +00:00
parent a10123067c
commit de6a4f7d32

View file

@ -0,0 +1,34 @@
---
episode_id: "a5504277-f9b3-448e-a8c2-56aeb434a6cf"
puente_flat: "DEPURA_el-balance-del-sprint-y-del-da-entero_S20260702.R99_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD"
session_code: "S20260702.MADUREZ_ECOSISTEMA_CONCILIO"
acto_dialogico: "informar"
actor_flujo: "multi_actor"
criticidad_aegis: "low"
skill_dominante: "TESSERA"
fase_proyecto: "operations"
tipo_semantico: "troubleshooting"
summary_one_line: "EPISODIO 112 — MNEMO_PRE_DIGEST: El balance del sprint (y del día entero)"
source_type: "claude_code"
trust_boundary: "internal"
created_at: "2026-07-12T16:16:36.895271+00:00"
relectura_tagged: false
forgejo_commit_sha: "pending"
---
🏁 **Sprint dedup completado, John — el gemelo ladrón está muerto, con backup y sin perder ni una letra.**
📄 **ENTREGA:** [docs/SPRINT_DEDUP_TWINS_S20260702.md](docs/SPRINT_DEDUP_TWINS_S20260702.md) — pusheado a los 3 remotos ✓.
## El balance del sprint (y del día entero)
| Métrica | Mañana (12:58) | Post-H4 | **Post-dedup (00:30)** |
|---|---|---|---|
| recall@1 | 0.63 | 0.651 | **0.675** |
| recall@5 | 0.79 | 0.855 | **0.851** |
| recall@10 | 0.859 | 0.904 | **0.903** |
| Gate | PASS | PASS | **PASS** |
**Lo ejecutado:** el dry-run corrigió mi propia hipótesis (los gemelos no eran whitespace — son **variantes de chunking**: uno truncado dentro de otro completo, misma huella de prefijo). Con criterio **zero-loss por contención** (solo se borra un twin si su texto vive ÍNTEGRO dentro del canónico), eliminé **11 twins de los 3 stores a la vez** — Qdrant −11, PostgreSQL −9 (+9 outbox, respetando la FK RESTRICT), Neo4j −9 — con backup JSONL completo (`twins_backup_20260703_002741.jsonl`, restaurable store por store). Verificación post: **325 = 336−11 exacto, 0 familias duplicadas restantes**. Entre los muertos: el par testigo de la auditoría de esta mañana ("Cerradura #1").
**La verdad sobre el 0.85@1** — tres causas del tramo restante, documentadas con evidencia: (1) ~8 pares residuales con prefijo distinto (necesitan fuzzy-matching — riesgo mayor, decisión aparte); (2) **colisión temática legítima** (325 episodios que casi todos hablan de EMBER ops — techo natural de @1); y (3) la palanca más prometedora y barata: **la fusión V1 se calibró el 19-jun con las HyDE viejas de plantilla** — hoy el corpus es otro; re-correr la calibración (`multistore_oracle.py`) con las HyDE nuevas puede dar el siguiente salto sin tocar nada más.