From 22ebb73d777db220b0a766cfdeda2066ff4e5572 Mon Sep 17 00:00:00 2001 From: Ember Date: Mon, 28 Sep 2026 19:47:40 +0000 Subject: [PATCH] feat(episode): DEPURA_estado-de-las-tres-decisiones_S20260926.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Skill: NONE | Type: troubleshooting Summary: EPISODIO 1 — MEMORIA: Estado de las tres decisiones --- ...ot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD.md | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 episodes/DEPURA_estado-de-las-tres-decisiones_S20260926.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD.md diff --git a/episodes/DEPURA_estado-de-las-tres-decisiones_S20260926.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD.md b/episodes/DEPURA_estado-de-las-tres-decisiones_S20260926.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD.md new file mode 100644 index 00000000..c74da6b9 --- /dev/null +++ b/episodes/DEPURA_estado-de-las-tres-decisiones_S20260926.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD.md @@ -0,0 +1,54 @@ +--- +episode_id: "b3371faa-91dc-461b-bb1b-0d6d3089f2ba" +puente_flat: "DEPURA_estado-de-las-tres-decisiones_S20260926.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD" +session_code: "S20260926.SID8BFB883A7AA7" +acto_dialogico: "informar" +actor_flujo: "multi_actor" +criticidad_aegis: "low" +skill_dominante: "NONE" +fase_proyecto: "operations" +tipo_semantico: "troubleshooting" +summary_one_line: "EPISODIO 1 — MEMORIA: Estado de las tres decisiones" +source_type: "claude_code" +trust_boundary: "internal" +created_at: "2026-09-28T19:47:37.857816+00:00" +relectura_tagged: false +forgejo_commit_sha: "pending" +--- + +## Estado de las tres decisiones + +**2 · Parches de los ganchos — aplicados y medidos.** Los dos archivos vivos (`mega-hook-test-before-fix.py` y `mega-hook-verify-first.py`) ya llevan el arreglo. Las 41 pruebas nuevas corrieron contra ellos: `41 passed in 21.36s`. Hay copia de los originales en `respaldo_vivos_S20260928/`; deshacer es copiar esos dos archivos de vuelta. No hay commit. + +**1 · Examen: "una persona mira la lista" — en construcción.** Opus está haciendo el cambio, con las pruebas escritas primero. Cuando termine lo audito yo antes de darlo por bueno. Todavía no tengo resultados. + +**3 · Portón — listo para aplicar, espera tu "ya".** Opus revisó quién más lee el estado del portón (solo lectura en el servidor MEMORIA y en el repositorio). Resultado: + +| Quién lo lee | Qué pasa con el parche | +|---|---| +| `ember_auth_status` | Dirá la verdad: cerrado cuando el plazo venció (es el objetivo) | +| Vigía del servidor MEMORIA (cada 5 min) | Registra "cerrado"; solo reabre tras un arranque nuevo | +| Aviso de arranque de sesión (`PORTON MCP:`) | Mostrará "locked" y sugerirá el comando de apertura | +| `t00_precheck.py` | Dará aviso en vez de un OK falso | +| `server.py`, `pep_a_policy.py` | No lo leen: sin cambio | + +Ningún programa depende del dato falso. **Veredicto: se puede aplicar.** + +Dos cosas que debes saber antes de decir "ya": + +- **Tras el parche, a las 12 horas el portón se cierra y nadie lo reabre solo.** Hoy pasa lo mismo, pero el letrero miente y dice "abierto". El vigía tiene una opción para reabrir también por plazo vencido (`--tambien-por-ttl`), apagada a propósito. Encenderla es decisión tuya y aparte; mi consejo es dejarla apagada por ahora. +- **El reinicio deja las herramientas de memoria cerradas hasta 5 minutos**, hasta que el vigía reabre. + +Quedó sin leer la rama "arranque nuevo" del vigía (después de la línea 312) y la función `is_authorized`; el parche no toca ninguna de las dos. + +> 🎯 **En una frase:** los ganchos ya no bloquean en falso, el examen se está corrigiendo y el portón solo necesita tu "ya". + +- **✅ Hice:** apliqué los dos parches (41 pruebas en verde) y confirmé que el arreglo del portón no rompe a nadie. +- **⏳ Falta:** el cambio del examen (Opus trabajando, luego mi auditoría) y el reinicio del portón (depende de ti). +- **💡 Mi consejo:** di "ya" cuando tus otras sesiones estén quietas; antes de reiniciar compruebo yo mismo que no haya ninguna trabajando. + +**Para avanzar:** +- 🟢 **"ya"** → verifico sesiones, respaldo, aplico, reinicio y pruebo que una herramienta protegida responde. *(recomendado)* +- 🟡 **"espera"** → el portón sigue como está; sigo solo con el examen. + +📌 **PILA:** 🟠 auditar el cambio del examen · 🟠 portón (espera "ya") · 🟡 copiar las 2 baterías nuevas a `.claude/hooks/` · 🟡 11 ganchos más con rama solo-Bash (dueño John, sin fecha fijada) · 🟡 espejo `server-src/auth_guard.py` quedará desfasado · ⚪ corrida de reconocimiento (tras el examen)