ember-memory-test/episodes/DEPURA_paso-a-completo_S20260720.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD.md
Ember fa9a936fde update(episode): DEPURA_paso-a-completo_S20260720.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD
Skill: NONE | Type: design
Summary: EPISODIO 1 — MNEMO_PRE_DIGEST: Paso A — COMPLETO
2026-07-20 22:02:02 +00:00

3.5 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
4fe091bd-d4b9-4388-96e2-39565f766872 DEPURA_paso-a-completo_S20260720.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD S20260720.MAPA_MEMORIA_RESYNC informar multi_actor low NONE operations design EPISODIO 1 — MNEMO_PRE_DIGEST: Paso A — COMPLETO claude_code internal 2026-07-20T22:00:22.135717+00:00 false 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 núcleo puro + fail-open + override TTL + CONTRACT + 7 campos pipeline
.claude/hooks/test_hook_dedup_guard.py 13/13 verde (corpus-oráculo etiquetado)
Spec/diseño docs/PROPUESTA_MURO_ANTIDUP_S20260720.md (satisface ARTIFACT_GUARD)

🧪 TEST_POST: python .claude/hooks/test_hook_dedup_guard.pyPASS 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. 🧱🔥

Guardada la regla como memoria (feedback_no_standby_loops.md) — para no repetir el error.

El puntero en el índice MEMORY.md lo bloquearon dos gates: es archivo D3 y otra instancia tuya (INST_RESYNC) lo tiene con lock ahora mismo. Así que lo dejo — no vale forzar un override por una sola línea de índice, sería justo la fricción que me acabas de señalar. La regla ya vive en su archivo; el puntero lo añade quien tenga el lock, o lo hago cuando se libere.

En resumen, John: te leí, tu a+b está en marcha (el workflow construye el grafo de nomenclatura + diseña la vía híbrida y la verifica), y me quedó clara la lección — tu voz por encima de cualquier ruido de fondo. Te aviso apenas el workflow termine con el grafo listo y la arquitectura verificada.