feat(episode): DEPURA_los-dos-no-ejecutables-de-hoy-resuelto_S20260704.R99_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD

Skill: AEGIS | Type: troubleshooting
Summary: EPISODIO 184 — MNEMO_PRE_DIGEST: ✅ Los dos "no ejecutables de hoy" — resueltos:
This commit is contained in:
Ember 2026-07-12 16:27:07 +00:00
parent 9136390f97
commit 67370fa87c

View file

@ -0,0 +1,37 @@
---
episode_id: "f0bf5a56-e637-482e-9c51-d4d551ec20aa"
puente_flat: "DEPURA_los-dos-no-ejecutables-de-hoy-resuelto_S20260704.R99_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD"
session_code: "S20260704.ANTI_OLVIDO_ESTADO_VIVO"
acto_dialogico: "informar"
actor_flujo: "multi_actor"
criticidad_aegis: "low"
skill_dominante: "AEGIS"
fase_proyecto: "operations"
tipo_semantico: "troubleshooting"
summary_one_line: "EPISODIO 184 — MNEMO_PRE_DIGEST: ✅ Los dos "no ejecutables de hoy" — resueltos: uno destrabad"
source_type: "claude_code"
trust_boundary: "internal"
created_at: "2026-07-12T16:18:09.049553+00:00"
relectura_tagged: false
forgejo_commit_sha: "pending"
---
# ✅ Los dos "no ejecutables de hoy" — resueltos: uno destrabado, el otro con la verdad correcta
La premisa "no ejecutable hoy" era falsa en ambos casos, por razones distintas. **Verify-first lo destapó** (commit `509d234`, push 3/3):
## 1 · M4-01 retrieval — NO necesitaba SSH. **Medido HOY vía MCP** (el dato más valioso, fresco tras 68 días)
El MCP `ember-memory` estaba **vivo** (auth unlocked, TTL 6h) — solo el SSH host-side seguía caído, y M4-01 no lo necesita. Medí la curva de discriminación real contra los 472 episodios:
| Umbral | Ratio mediano | |
|---|---:|---|
| **0.45 (producción)** | **≥100:1** | 🔴 peor que el 88:1 histórico |
| 0.58 | 25.5:1 | 🟠 |
| **0.60** | **9.5:1** | ✅ cumple target <20:1 |
**El hallazgo cambia el diagnóstico:** el fix HyDE+fusion arregló el *ranking* (recall@1 0.30→0.608), pero el cuello real es el **umbral de corte `score_threshold=0.45`** — admite casi toda la colección (score mín ~0.53). El fix no es re-arquitecturar: es **subir el umbral a ~0.60**. NO lo apliqué — es D3 con trade-off recall que hay que medir antes ([docs/BENCHMARK_RETRIEVAL_S20260705.md](docs/BENCHMARK_RETRIEVAL_S20260705.md)).
## 2 · Casbin F2 — el obstáculo NO es la ventana, es que **no hay deny en el código**
Distribución real: **26.662 decisiones (26.615 allow / 47 conditional / 0 deny)**. H1 ✅ (266× el mínimo), H2 ✅ (0.18% FP). Pero el hook es **advisory puro** — 0 deny porque nunca *puede* denegar. Promover a BLOCK = materializar el deny (como PROBATOR), y con más blast radius (20 agentes). **NO lo materialicé** — CA-3 es línea de seguridad, tu GO. Recomendación: extender a 07-24 con shadow-deny primero ([docs/ANALISIS_CASBIN_F2_S20260705.md](docs/ANALISIS_CASBIN_F2_S20260705.md)).