feat(episode): TRAZA_runbook-completo-todos-los-detalles-ve_S20260727.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD

Skill: NONE | Type: troubleshooting
Summary: EPISODIO 1 — ember_experience: 🔧 Runbook completo — todos los detalles, verifica
This commit is contained in:
Ember 2026-07-28 01:19:04 +00:00
parent 17ae4e3a8f
commit 2d0e6416f6

View file

@ -0,0 +1,71 @@
---
episode_id: "4649baaf-6966-4c28-9c14-09845c9481f2"
puente_flat: "TRAZA_runbook-completo-todos-los-detalles-ve_S20260727.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD"
session_code: "S20260727.ARCO_CICLO10_ESPEJOS"
acto_dialogico: "informar"
actor_flujo: "multi_actor"
criticidad_aegis: "low"
skill_dominante: "NONE"
fase_proyecto: "operations"
tipo_semantico: "troubleshooting"
summary_one_line: "EPISODIO 1 — ember_experience: 🔧 Runbook completo — todos los detalles, verificados uno por"
source_type: "claude_code"
trust_boundary: "internal"
created_at: "2026-07-28T01:18:56.586748+00:00"
relectura_tagged: false
forgejo_commit_sha: "pending"
---
# 🔧 Runbook completo — todos los detalles, verificados uno por uno
Tienes razón y era falla mía: te di el *qué* sin el *dónde*. Documento completo: [RUNBOOK_P0_MATCHER_MEMORIA_S20260727.md](docs/RUNBOOK_P0_MATCHER_MEMORIA_S20260727.md) (commit `5e140520`)
## PASO 0 — Copia de seguridad
Abre una terminal en `C:\Users\Administrador\Downloads\CLAUDE ANTROPIC\ember-claude-code`:
## PASO 1 — Dónde exactamente
**Archivo:** `.claude/settings.json` · **Línea: 154**
Hay varios matchers parecidos, así que **confirma por el nombre del hook que está debajo**. Verás esto:
## PASO 2 — El cambio, una sola línea
**ANTES** (línea 154, 8 espacios de indentación):
**DESPUÉS** (misma indentación, misma coma final):
No toques nada más: ni la coma, ni las llaves, ni el bloque `command`.
**Y esto no es una apuesta:** tu `settings.json` ya usa alternancia en **6 matchers**, incluido el patrón idéntico `mcp__.*__(a|b|c)` en PreToolUse. Lo verifiqué antes de proponértelo.
## PASO 3 — Validar el JSON ⚠️ (no te lo saltes)
Un JSON roto ahí deja sin efecto **todos** los hooks, no solo este.
**Debe imprimir exactamente:** `JSON VALIDO | grupos: 18 | hooks: 113` (los mismos números que antes del cambio). Si sale `JSONDecodeError` → paso 5.
## PASO 4 — Comprobar que quedó bien
Debe imprimir el matcher nuevo. Y para ver el muro morder de verdad:
`"permissionDecision": "deny"` + razón que dice **MEMORIA FUNDACIONAL**.
Control negativo (esto **debe seguir permitido**):
`"permissionDecision": "allow"`. *Verás también un aviso de `M1 trust_tier` — es informativo, no es un error.*
## PASO 5 — Reiniciar Claude Code
Los hooks se leen **al arrancar la sesión**: el cambio no toma efecto hasta que cierres esta ventana y abras otra.
**Rollback si algo sale mal:** `cp .claude/settings.json.bak_pre_P0_S20260727 .claude/settings.json` (o `git checkout HEAD -- .claude/settings.json`) y reinicias.
**Al final, commitea:**
- **Hice:** el runbook literal, y **dogfoodeé sus propios comandos antes de dártelo** — lo que me cazó un error mío: había escrito «~113» donde ese comando devuelve **18**. Corregido con la salida real y declarado en el documento.
- **Falta:** solo que lo ejecutes. Dos minutos.
- **Mi consejo:** no te saltes el paso 3. Es el único que te protege de que un despiste con una comilla apague todos los guardrails del ecosistema a la vez.
📌 **PILA (R13):** 🔴 **P0 runbook entregado, listo para ejecutar** · ⛔ P1 · P3 · P5 · P8 · ⚠️ 6 BLINDADAS vencen 2026-07-31 · 🟢 DC-6 (2026-08-03)