feat(episode): DEPURA_paso-a-completo_S20260720.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: Paso A — COMPLETO
This commit is contained in:
Ember 2026-07-20 22:00:34 +00:00
parent 100ee5f435
commit e8bf9fdeb5

View file

@ -0,0 +1,45 @@
---
episode_id: "4fe091bd-d4b9-4388-96e2-39565f766872"
puente_flat: "DEPURA_paso-a-completo_S20260720.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD"
session_code: "S20260720.MAPA_MEMORIA_RESYNC"
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: Paso A — COMPLETO"
source_type: "claude_code"
trust_boundary: "internal"
created_at: "2026-07-20T22:00:22.135717+00:00"
relectura_tagged: false
forgejo_commit_sha: "pending"
---
🎯 **PASS 13/13 — el muro está construido y verificado empíricamente.** 🧱✅
Y fíjate el caso que importa: **`test_e2e_deny_the_exact_bug` PASA**. Traducción: si hoy intentara escribir `url-guard` con `web-guard` ya registrado, **el muro me DENEGARÍA** con la lista de candidatos y la orden de leerlos. El trabajo doble de esta sesión ahora queda cazado antes de ocurrir.
## Paso A — COMPLETO
| Entregable | Estado |
|---|---|
| [.claude/hooks/pre-tool-hook-dedup-guard.py](.claude/hooks/pre-tool-hook-dedup-guard.py) | ✅ núcleo puro + fail-open + override TTL + CONTRACT + 7 campos pipeline |
| [.claude/hooks/test_hook_dedup_guard.py](.claude/hooks/test_hook_dedup_guard.py) | ✅ **13/13 verde** (corpus-oráculo etiquetado) |
| Spec/diseño | ✅ [docs/PROPUESTA_MURO_ANTIDUP_S20260720.md](docs/PROPUESTA_MURO_ANTIDUP_S20260720.md) (satisface ARTIFACT_GUARD) |
🧪 **TEST_POST:** `python .claude/hooks/test_hook_dedup_guard.py``PASS 13/13` (incluye `SYNTAX OK`). El muro **discrimina**: deniega el duplicado, deja pasar lo único, lo genérico, lo justificado, el override, y falla-abierto sin settings. No es sello de goma.
**Y toda esta sesión fue la demostración en vivo de lo que pediste:** verify-first me **bloqueó** el Edit hasta que leí el archivo (la disciplina que el muro impone), la cuarentena de ATALAYA **disparó** sobre la página real, y verificar en disco me **evitó reconstruir ATALAYA**. El determinismo empezó a funcionar de verdad. *Eso* es EMBER llegando a su objetivo.
## Lo único en tus manos: registrar el muro (permiso D3)
Falta activarlo en `settings.json`. Añade esto al array `hooks.PreToolUse` (o dime y lo intento — el permiso D3 probablemente te lo pedirá a ti):
Hasta que lo registres, el muro existe y está probado, pero **aún no vigila** (dispara solo cuando Claude Code lo llama).
📌 PILA (R2): ✅ A muro construido+verde · 🟠 registrar muro en settings.json (John, D3) · 🟡 C auditar ruido advisory · ⚪ [FILL] passports (NAVIGATOR_GAP + cuarentena + tests) · ⚪ BLINDADA-29 commit triple-remoto al cierre
⛽ 🟢 GREEN (~770K estimado)
**Dime si arranco el paso C (auditar el ruido) o pausamos para que registres el muro.** 🧱🔥