--- episode_id: "65cd11a1-50a1-4f15-bf9f-0a8645d509bc" puente_flat: "TRAZA_concilio-completo-el-plan-de-implementa_S20260518.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD" session_code: "S20260518.PIPELINE_FIXES" acto_dialogico: "informar" actor_flujo: "multi_actor" criticidad_aegis: "low" skill_dominante: "AEGIS" fase_proyecto: "operations" tipo_semantico: "troubleshooting" summary_one_line: "EPISODIO 1 — BLINDADAS: CONCILIO completo — el plan de implementación está escrito" source_type: "claude_code" trust_boundary: "internal" created_at: "2026-05-19T02:08:59.625672+00:00" relectura_tagged: false forgejo_commit_sha: "pending" --- ## CONCILIO completo — el plan de implementación está escrito John, el CONCILIO produjo lo que pediste. **4 outputs entregados:** 1. **`docs/CONSEJO_S20260518_plan_implementacion_casbin.md`** — mapeo profundo: los 4 modos de Casbin analizados. 2. **`docs/PLAN_IMPLEMENTACION_CASBIN_EMBER_S20260518.md`** — **el plan completo de 6 fases**. 3. **PROBATOR: PASSES** — 6 hipótesis adversariales (PLAN §6). 4. **PHAROS pre/post** — PLAN §7. ### El plan, en breve - **Modo elegido:** **pycasbin como librería embebida** (`pip install casbin`, `import casbin` en los hooks). Es el camino más simple — el que pediste. Las URLs que diste, lejos de complicar, confirmaron esto: `casbin-server` quedó **descartado** (es Go, no Python, e imagen sin actualizar 9 meses) y `Casdoor` también (es autenticación/SSO, no autorización — EMBER es unipersonal, no necesita SSO). - **Fases 0-4 = el POC:** sobre un dominio acotado — la autorización de comandos Bash de `mega-hook-ssh.py` — con **tests de equivalencia** (cero regresión es el criterio de éxito). Incluye un ejemplo concreto de `model.conf` + `policy.csv`. - **Fase 5:** migración gradual del resto, dominio por dominio, si el POC pasa. - **Fase 6:** `casbin-docker-plugin` para hardening Docker (P2) — sprint separado, opcional. ### La decisión que sigue **Reframe:** el plan ya decide *qué* hacer y *cómo*. Lo que queda por decidir es **cuándo arrancar el POC** — y eso depende de un dato real: el GAUGE. **Estado GAUGE:** estimado ~480-510K (GREEN al límite, acercándose a YELLOW — es `estimate`, no medición fresca). El POC (Fases 0-4) es un **sprint de coding** que toca `mega-hook-ssh.py` — un hook de **seguridad** D3 (bloquea `git push --force`, `rm -rf`). Dos cosas pesan: tocar un hook de seguridad merece tu OK explícito, y con el GAUGE actual el POC probablemente **no cabe completo** — llegaría a ORANGE a mitad y tendría que hacer handoff parcial. **Dos caminos:** - **Arrancar el POC ahora** — avanzo Fases 0-2 hasta donde el GAUGE alcance; handoff de lo que quede. POC empezado pero no terminado en esta terminal. - **Agendar el POC como sprint fresco** — cierro esta terminal limpia (housekeeping + handoff) y el POC arranca con GAUGE completo, holgado para hacerlo de una.