feat(episode): DEPURA_lote-fase-1-t-10t-11-completo-commiteado_S20260718.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: Lote **FASE 1 (T-10+T-11) completo, commiteado `c
This commit is contained in:
Ember 2026-07-18 22:19:28 +00:00
parent 2e2dd0f08f
commit cab689a354

View file

@ -0,0 +1,39 @@
---
episode_id: "7a815157-2f65-4d70-acc2-326ea199244b"
puente_flat: "DEPURA_lote-fase-1-t-10t-11-completo-commiteado_S20260718.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD"
session_code: "S20260718.ECC_TOOLBOX_SURFACER"
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: Lote **FASE 1 (T-10+T-11) completo, commiteado `c9173d1c`, p"
source_type: "claude_code"
trust_boundary: "internal"
created_at: "2026-07-18T22:19:19.102245+00:00"
relectura_tagged: false
forgejo_commit_sha: "pending"
---
Lote **FASE 1 (T-10+T-11) completo, commiteado `c9173d1c`, push 3/3.** Me detengo antes de T-12 como acordamos — el flip a deny es tu decisión, gate por gate, y ahora tienes la evidencia para tomarla con números.
**T-10** → [tabla enforcement](docs/AUTOMEJORA_ENFORCEMENT_GAP_S20260718.md): los 5 gates vencidos + las 4 BLINDADAS que declaran bloqueo pero corren advisory. **Hallazgo FANTASMA:** `mega-hook-libro-vivo-update.py` (BLINDADA-28) existe pero **su telemetría no existe en disco** — un gate sin sensor, imposible de decidir con datos. Y un reuso: ya existía `test_gates_actually_deny.py` que clasifica 13 ENFORCES / 8 ADVISORY / 5 STATE_GATED.
**T-11** → 3 DECISION drafts. Lo importante: **DD-3 discriminó de verdad, no es sello de goma** (2564 decisiones de casbin sin un solo bloqueo lo prueban):
| Gate | N | V (medido) | Verdict DD-3 | Draft |
|---|--:|--:|---|---|
| **CASBIN** | 2564 | **0** denials | 🔴 **RETIRAR-cand** (capa advisory nunca bloqueó; CA-3 absolutas se preservan) | [casbin](docs/DECISION_S20260718_gate_casbin.md) |
| **MARIMO** | 38 | 18 fallos-conversión | 🔴 **RETIRAR-cand** (gate mal modelado: es automatización, no guard) | [marimo](docs/DECISION_S20260718_gate_marimo.md) |
| **DOC-LIFECYCLE** | 857 | **133** drift advisory-only | 🟢 **PROMOVER-cand** (único con caso real: 133 drifts no bloqueados) | [doc-lifecycle](docs/DECISION_S20260718_gate_doc_lifecycle.md) |
**La lección incómoda que esto revela:** de 3 gates "pendientes de promoción a bloqueo duro", **2 no merecen promoverse** — uno nunca disparó (casbin advisory: 0/2564), otro ni siquiera es un guard (marimo). Solo doc-lifecycle tiene caso. Esto es exactamente el valor del arco: **antes, esos 3 gates habrían quedado "pendientes" para siempre; ahora la evidencia dice qué hacer con cada uno.**
★ Insight ─────────────────────────────────────
El patrón que emerge es el mismo de todo el chat: **el ecosistema declara mucho enforcement que no ejerce.** Casbin registró 2564 decisiones y bloqueó 0. La brecha declarado-vs-real no es un bug puntual — es sistémica, y medirla (no asumirla) es lo que convierte "tenemos 30 BLINDADAS" en "sabemos cuáles muerden". T-24 (los overrides del termómetro) y este hallazgo son la misma clase: instrumentos que dicen menos verdad de la que aparentan.
─────────────────────────────────────────────────
**Hice:** ejecuté FASE 1 (T-10+T-11) bajo tu GO. Medí la brecha enforcement de 5 gates + 4 BLINDADAS con N/V reales, emití 3 DECISION drafts donde DD-3 discriminó (2 RETIRAR, 1 PROMOVER), cacé un sensor FANTASMA. Todo verificado, commiteado, push 3/3. Me detuve antes de T-12.
**Falta:** tu decisión **T-12 gate por gate** sobre los 3 drafts. Solo doc-lifecycle propone materializar un deny real (y aun así con caveat: edad=1d, apenas venció).