feat(episode): DEPURA_veredicto-pipeline-memoria-s20260702_S20260702.R99_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD

Skill: TESSERA | Type: troubleshooting
Summary: EPISODIO 130 — ember_experience: 🩺 Veredicto — pipeline memoria S20260702
This commit is contained in:
Ember 2026-07-12 16:25:12 +00:00
parent 435a7dc614
commit 0644bc09c4

View file

@ -0,0 +1,39 @@
---
episode_id: "3fc68f59-6701-4ed6-a298-a9bbd75c4442"
puente_flat: "DEPURA_veredicto-pipeline-memoria-s20260702_S20260702.R99_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD"
session_code: "S20260702.PIPELINE_RETRIEVAL_CALIDAD"
acto_dialogico: "informar"
actor_flujo: "multi_actor"
criticidad_aegis: "low"
skill_dominante: "TESSERA"
fase_proyecto: "operations"
tipo_semantico: "troubleshooting"
summary_one_line: "EPISODIO 130 — ember_experience: 🩺 Veredicto — pipeline memoria S20260702"
source_type: "claude_code"
trust_boundary: "internal"
created_at: "2026-07-12T16:17:06.008773+00:00"
relectura_tagged: false
forgejo_commit_sha: "pending"
---
📄 **ENTREGA (BLINDADA-1):** [docs/AUDITORIA_PIPELINE_RETRIEVAL_S20260702.md](docs/AUDITORIA_PIPELINE_RETRIEVAL_S20260702.md) — auditoría completa con evidencia, 5 hallazgos y plan de remediación priorizado.
—
## 🩺 Veredicto — pipeline memoria S20260702
**Grabación: VIVA ✅.** Crisol v4.0 corrió hoy mismo (12:53 UTC, success), el dispatcher `ember-outbox` lleva 13 días corriendo, el outbox está 100% drenado (321/321 completed) y Nextcloud/Forgejo al 100% en el ledger. Conteos cross-store en paridad ±1% (PG 321 · Qdrant 319 · Neo4j ~319 únicos). **Cero episodios perdidos**: los 10 encolados localmente ya estaban ingeridos (verificado uno a uno; 3 estaban *fusionados* dentro de episodios más grandes — por eso el loop local no los reconocía).
**Retrieval: BUENO con gate PASS, aún no "excelente".** Medido en vivo hoy:
| Métrica | Valor | Lectura |
|---|---|---|
| retrieval_gate recall@1 / @5 / @10 | **0.63 / 0.79 / 0.859** | PASS · target excelencia 0.85@1 |
| clean_lenient@1 | **0.925** | excelente |
| Fusión V1 producción (oracle, 2,814 queries) | **0.600 @1** vs denso 0.292 | 2× confirmado, mejor variante |
**Los 5 hallazgos** (detalle y evidencia en el reporte): 🔴 **H-1** regresión post-X-a — Neo4j no recibe `session_code` desde el 19 jun (153/338 nodos sin etiqueta; el write inline de crisol no lo escribe desde que se podó el worker outbox) · 🟠 **H-2** el loop local re-empuja chunks cada 4h por un landed-check falso-negativo → 19 nodos duplicados en Neo4j y 12 filas near-dup en PG · 🟠 **H-3** el re-push estampa contenido viejo con el session_code actual (provenance contaminada) · 🟡 **H-4** clasificador crisol en fallback (conf 0.3) + HyDE de plantilla — el freno principal hacia 0.85 · 🟡 **H-5** near-dups por whitespace burlan el dedup y contaminan el top-K (lo vi en vivo: 2 primeros hits = mismo episodio).
**Acciones ya ejecutadas (reversibles):** limpié la cola local (12 payloads archivados en `archive/pending_cleared_20260702_131426.jsonl` — corta el churn del re-push) y documenté el nuevo runbook de auth: el hook de inyección de passphrase **no funciona en este harness** (updatedInput ignorado, T-001 FAIL), así que desbloqueé el MCP **desde el propio servidor** — la frase nunca tocó el chat (hashes verificados `8b66117cc5ff` local=servidor).
—