feat(episode): TRAZA_lo-que-se-repar_S20260821.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: Lo que se reparó
This commit is contained in:
Ember 2026-08-22 03:15:27 +00:00
parent ce2cf6865d
commit 22fdf4963e

View file

@ -0,0 +1,44 @@
---
episode_id: "7c8809cc-5441-4eb6-b624-e228a338f8ae"
puente_flat: "TRAZA_lo-que-se-repar_S20260821.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD"
session_code: "S20260821.PIPELINE_MEMORIA_SELFAWARENESS"
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: Lo que se reparó"
source_type: "claude_code"
trust_boundary: "internal"
created_at: "2026-08-22T03:15:12.736194+00:00"
relectura_tagged: false
forgejo_commit_sha: "pending"
---
Todo en los tres remotos (`3165c143`). Resumen de las dos horas.
—
## Lo que se reparó
**El canario no podía pasar nunca.** Su muestra de 15 episodios tenía solo **12 preguntas distintas** — una repetida 3 veces, otra 2. Una misma pregunta no puede poner a dos episodios en el puesto 1, así que 3 fallos eran inevitables: techo real **80%** contra un umbral de 90%. Era una imposibilidad estructural, no debilidad del retrieval. La lente había estimado 86,7%; medido son 80.
Y algo que importa: **el fix no maquilló el número.** HIT@1 pasó de 20% a 25% — quité la imposibilidad, no fabriqué un aprobado. La debilidad real sigue a la vista.
**El gate de retrieval te daba una cifra al doble de la real.** Su oráculo declaraba tres veces medir producción; producción no contiene fusión. Ahora publica los dos caminos:
| | recall@1 | recall@10 |
|---|---|---|
| Medido (fusión, **no desplegada**) | 0.413 | 0.648 |
| **Desplegado** (dense, el que corre) | **0.216** | **0.467** |
> **Esto resuelve el conflicto C-02 del escaneo.** El `0.216` concuerda con el 25% del canario. Las tres cifras contradictorias eran dos instrumentos midiendo caminos distintos; ahora cada uno declara cuál mide, y coinciden. **El canario decía la verdad; el gate medía un fantasma.**
`★ Insight ─────────────────────────────────────`
**Rompí la cadena mientras la reparaba.** Parcheé el oráculo, corrí el gate, y las claves nuevas no aparecieron: `retrieval_gate.py` armaba su veredicto con una lista **fija** de campos y los dejaba caer. Es la clase 4.3 del catálogo —cambias el productor, el consumidor queda ciego— cometida en el acto mismo de arreglarla.
Solo se vio porque **verifiqué en vez de declarar**. Si hubiera reportado "listo, ya publica dense_recall", habría sido literalmente falso, y el error habría sobrevivido en un commit que dice lo contrario.
**Y un caveat que dejé anotado en la decisión:** aquí la fusión (0.413) supera al dense (0.216), lo cual parece contradecir tu decisión del 14 de agosto. No la contradice: `hyde_recall` usa las preguntas del *propio* episodio — el leakage que la auditoría midió inflado ~8x. El lockbox held-out dice lo opuesto. Quien lea "0.413 > 0.216" y concluya que la fusión es mejor repetiría el error que este escaneo ya cazó.
`─────────────────────────────────────────────────`