feat(episode): TRAZA_drift-cross-store-reconciliado-y-te-co_S20260618.R2_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD
Skill: TESSERA | Type: reflection
Summary: EPISODIO 2 — MNEMO_PRE_DIGEST: 🅰️ Drift cross-store — reconciliado (y te corrijo
This commit is contained in:
parent
d8fa7c8acf
commit
bf419f895c
1 changed files with 50 additions and 0 deletions
|
|
@ -0,0 +1,50 @@
|
|||
---
|
||||
episode_id: "e2b9c850-b0a6-43c1-b316-5d0bc9a413e0"
|
||||
puente_flat: "TRAZA_drift-cross-store-reconciliado-y-te-co_S20260618.R2_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD"
|
||||
session_code: "S20260618.VERIFY_FIRST_PASSPORT_FIX"
|
||||
acto_dialogico: "informar"
|
||||
actor_flujo: "multi_actor"
|
||||
criticidad_aegis: "low"
|
||||
skill_dominante: "TESSERA"
|
||||
fase_proyecto: "operations"
|
||||
tipo_semantico: "reflection"
|
||||
summary_one_line: "EPISODIO 2 — MNEMO_PRE_DIGEST: 🅰️ Drift cross-store — reconciliado (y te corrijo honestamen"
|
||||
source_type: "claude_code"
|
||||
trust_boundary: "internal"
|
||||
created_at: "2026-06-18T19:30:00.908207+00:00"
|
||||
relectura_tagged: false
|
||||
forgejo_commit_sha: "pending"
|
||||
---
|
||||
|
||||
Las tres cerradas, John — **todo ejecutado en vivo**. Reporte actualizado: 📄 **[docs/REPORTE_DESEMPENO_PIPELINE_MNEMO_S20260618.md](docs/REPORTE_DESEMPENO_PIPELINE_MNEMO_S20260618.md)** (§7).
|
||||
|
||||
## 🅰️ Drift cross-store — reconciliado (y te corrijo honestamente: era 🔴, es 🟡)
|
||||
|
||||
Localicé el drift por sesión y la evidencia lo **rebaja de crítico a menor**. Lo que parecía pérdida NO lo es:
|
||||
|
||||
- **Hubo un REINICIO_PERFECTO v2 el 2026-06-17 21:22** (lo recuperé de memoria, episodio `6473c93b`): wipe de los 3 stores a `episode=0` preservando lexicon. Los counts de hoy (151/148/160) son **re-acumulación limpia** desde ese reset — por eso bajaron de los 176/157 de ayer. **No es pérdida.**
|
||||
- **El +12 de Neo4j se descompone:** 6 nodos huérfanos (`session_code=NULL`, pero con UUID válido — no son la basura `REAL_` vieja, esa se wipeó) + ~6 de exceso por sesión (nodos content-hash duplicados de re-pushes).
|
||||
- **El join canónico es `puente_flat`, NO `episode_id`** (ADR_S20260514): PG usa UUIDv4, Qdrant/Neo4j content-hash v5 — el mismatch de counts es **cosmético**. La métrica real es joinability, no paridad.
|
||||
- **Worker `outbox.forgejo` caído ~19h** (`password auth failed user "plex"`, deuda de la rotación S20260616) → 125 filas pending. El core escribe directo a los 3 stores → **sin pérdida**; solo la réplica Forgejo (1 de 6 capas) está estancada.
|
||||
|
||||
## 🅱️ Dead-letter HyDE — triage preciso (60 episodios, no 58)
|
||||
|
||||
| Categoría | N | Acción |
|
||||
|---|---|---|
|
||||
| ACK / standby / FP-notice | **31** | **Descartar** — el gate los retuvo bien (ruido, no memoria) |
|
||||
| Substantivos (contenido real) | **29** | **Re-emitir** con ≥10 HyDE → re-ingesta |
|
||||
|
||||
El "92% bloqueado" NO es data valiosa perdida: **la mitad es ruido de standby** ("quedo a la espera", "no response needed") que correctamente NO debería entrar a memoria. Solo ~29 valen re-emisión. **Cero pérdida** (dead-letter intacta).
|
||||
|
||||
## 🅲 Gate de retrieval server-side — corrido EN VIVO ahora (`retrieval_gate.py` vía `docker exec ember-mcp`)
|
||||
|
||||
| Métrica | Valor | Umbral | Estado |
|
||||
|---|---|---|---|
|
||||
| HyDE recall@1 | 0.32 | — | cuello conocido |
|
||||
| HyDE recall@10 | **0.735** | ≥0.70 | ✅ |
|
||||
| clean lenient@1 | **0.928** | ≥0.85 | ✅ |
|
||||
| **VERDICT** | **PASS** | | 🟢 |
|
||||
|
||||
Mi **mini-oráculo MCP independiente** dio Recall@1 = 0.33 — **coincide casi exacto** con el server-side 0.32 (cross-validación). El cuello es @1 (episodios casi-gemelos de troubleshooting compiten por el #1); de @5 hacia arriba sano. **El retrieval PASA su gate de calidad en producción.**
|
||||
|
||||
## 🎯 Veredicto final corregido: pipeline MNEMO **SANO (82/100)**
|
||||
Loading…
Reference in a new issue