Skill: NONE | Type: troubleshooting Summary: EPISODIO 1 — MNEMO_PRE_DIGEST: **T-12 opción B COMPLETO** — commit `82bfc257`, p
2.7 KiB
| episode_id | puente_flat | session_code | acto_dialogico | actor_flujo | criticidad_aegis | skill_dominante | fase_proyecto | tipo_semantico | summary_one_line | source_type | trust_boundary | created_at | relectura_tagged | forgejo_commit_sha |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 6be4966f-3dcc-4b4a-b5ca-1ca45012d092 | TRAZA_t-12-opcin-b-completo-commit-82bfc257-p_S20260718.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD | S20260718.ECC_TOOLBOX_SURFACER | informar | multi_actor | low | NONE | operations | troubleshooting | EPISODIO 1 — MNEMO_PRE_DIGEST: **T-12 opción B COMPLETO** — commit `82bfc257`, push... | claude_code | internal | 2026-07-18T23:21:56.388864+00:00 | false | pending |
T-12 opción B COMPLETO — commit 82bfc257, push 3/3. El arco acaba de pasar, por primera vez, de medir a cambiar algo vivo — y lo hizo con toda la disciplina puesta. ## 🟢 T-12: DOC-LIFECYCLE promovido a Stop-block — lo que pasó
El momento clave fue antes de codear: leí el hook y descubrí que mega-hook-statefact-guard.py es PostToolUse (corre después del write) → no puede denegar per-write. El "flip advisory→deny" que asumía el draft era imposible. Por eso te pregunté el mecanismo, elegiste B, y materialicé el enforcement correcto:
| Qué | Cómo |
|---|---|
| Mecanismo | Se promovió el branch Stop del hook a bloquear el cierre de sesión mientras haya un hecho-de-estado con drift sin reconciliar. El evento Stop sí puede bloquear. |
| Seguridad (BLINDADA-18) | micro-mecanismo puro decide_stop_block (guard de 3 booleanos) + fail-open (excepción→no bloquea) + anti-loop stop_hook_active + override flag TTL≤1800s |
| Verificado wired | statefact-guard está registrado en el evento Stop (settings.json) → no es código muerto |
| Verificado correcto | test_statefact_deny_on_stop.py 8/8 PASS + hook contra repo real = no bloqueo espurio (tu cierre no se auto-bloquea) |
| Honestidad DLC-2 | actualicé el Status de la regla: "advisory" → "Stop-block promovido" (no puedo enforzar doc-lifecycle mientras su propia regla miente) |
CASBIN + MARIMO: sus verdicts RETIRAR-cand quedan registrados pero NO ejecutados — esperan tu decisión de retiro por separado (elegiste promover solo doc-lifecycle). ★ Insight ───────────────────────────────────── Todo el chat convergió aquí. La lección "verifica antes de actuar" apareció 4 veces: rubrica_100.py ya existía (T-02), ARIADNA↔T-60, el sensor FANTASMA de libro-vivo, y —la más importante— que el hook era PostToolUse. Esa última evitó dos errores graves: fabricar un deny falso, o re-arquitecturar un hook vivo a ciegas.