feat(episode): DEPURA_sonidos-de-voz-silenciados-sin-borrar-n_S20260705.R66_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD
Skill: NONE | Type: troubleshooting
Summary: EPISODIO 66 — BLINDADAS: 🔇 Sonidos de voz: silenciados (sin borrar nada)
This commit is contained in:
parent
43e2ead39f
commit
2c00a0cee4
1 changed files with 44 additions and 0 deletions
|
|
@ -0,0 +1,44 @@
|
|||
---
|
||||
episode_id: "fc095783-76f3-4ff1-8280-56e2dfb1e74f"
|
||||
puente_flat: "DEPURA_sonidos-de-voz-silenciados-sin-borrar-n_S20260705.R66_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD"
|
||||
session_code: "S20260705.EVAL_INSTRUMENT_FORGE_SKILL"
|
||||
acto_dialogico: "informar"
|
||||
actor_flujo: "multi_actor"
|
||||
criticidad_aegis: "low"
|
||||
skill_dominante: "NONE"
|
||||
fase_proyecto: "operations"
|
||||
tipo_semantico: "troubleshooting"
|
||||
summary_one_line: "EPISODIO 66 — BLINDADAS: 🔇 Sonidos de voz: silenciados (sin borrar nada)"
|
||||
source_type: "claude_code"
|
||||
trust_boundary: "internal"
|
||||
created_at: "2026-07-12T16:16:37.005044+00:00"
|
||||
relectura_tagged: false
|
||||
forgejo_commit_sha: "pending"
|
||||
---
|
||||
|
||||
Listo. **Todo verde — Fase 7 cerrada.** El interruptor funciona y ya está **apagado**.
|
||||
|
||||
## 🔇 Sonidos de voz: silenciados (sin borrar nada)
|
||||
|
||||
Encontré el sistema — se llaman **"voice hooks"**. Un solo script (`safe_voice_hook.py`) registrado en los 30 eventos de Claude Code reproduce un `.wav` por cada uno (*"Claude está a punto de usar una herramienta"*, *"La herramienta terminó correctamente"*, etc.).
|
||||
|
||||
**Qué hice:** le añadí un **interruptor maestro** — antes no existía; la única forma de apagar era borrar listas. Ahora es un solo valor:
|
||||
|
||||
| Archivo | Cambio | Efecto |
|
||||
|---|---|---|
|
||||
| [voice_hooks_config.json](.claude/hooks/config/voice_hooks_config.json) | `"enabled": false` | 🔇 silencio total (**activo ahora**) |
|
||||
| [safe_voice_hook.py:80](.claude/hooks/scripts/safe_voice_hook.py) | guard clause 3 líneas | lee el switch; ausente/`true`→suena, `false`→calla |
|
||||
|
||||
**Nada se borró:** el manifest (30 sonidos + textos), la doble allowlist y el registro en `settings.local.json` quedan **intactos**. Es reversible con un flip.
|
||||
|
||||
**Verificación empírica (no "creo que funciona"):**
|
||||
- `event_is_allowed` → **OFF=`False`**, ON=`True`, sin-la-clave=`True` (compat) — 3 asserts pasan.
|
||||
- Config on-disk: `enabled = False`. Hook end-to-end en mudo → **exit 0, sin reproducir**.
|
||||
- Es **inmediato y en vivo**: el script relee la config en cada evento, no hace falta reiniciar.
|
||||
|
||||
## 🔊 Cómo prenderlo/apagarlo luego
|
||||
|
||||
- **Dímelo a mí** (lo que pediste): *"Ember, prende los sonidos"* / *"apaga los sonidos"* → yo volteo el `enabled`.
|
||||
- **Tú mismo** (si quieres, 5 seg): abre `voice_hooks_config.json`, cambia `"enabled": false` → `true`. El `_README_voz` al inicio del archivo lo explica.
|
||||
|
||||
**Rollback:** `git checkout HEAD -- .claude/hooks/scripts/safe_voice_hook.py .claude/hooks/config/voice_hooks_config.json`
|
||||
Loading…
Reference in a new issue