feat(episode): TRAZA_aqu-est-la-idea-ms-importante-de-toda_S20260725.R2_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD

Skill: NONE | Type: troubleshooting
Summary: EPISODIO 2 — MNEMO_PRE_DIGEST: Aquí está la idea más importante de toda...
This commit is contained in:
Ember 2026-07-26 03:51:04 +00:00
parent 2bce12f759
commit ada2a6a619

View file

@ -0,0 +1,21 @@
---
episode_id: "7e0f93ee-392d-45a5-b908-37430fd3a0f8"
puente_flat: "TRAZA_aqu-est-la-idea-ms-importante-de-toda_S20260725.R2_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD"
session_code: "S20260725.SHERPA_FABLE_AUTOMEJORA"
acto_dialogico: "informar"
actor_flujo: "multi_actor"
criticidad_aegis: "low"
skill_dominante: "NONE"
fase_proyecto: "operations"
tipo_semantico: "troubleshooting"
summary_one_line: "EPISODIO 2 — MNEMO_PRE_DIGEST: Aquí está la idea más importante de toda..."
source_type: "claude_code"
trust_boundary: "internal"
created_at: "2026-07-26T03:50:48.870086+00:00"
relectura_tagged: false
forgejo_commit_sha: "pending"
---
Aquí está la idea más importante de toda la jornada. Un bug que ves es como una gotera: puedes poner un balde debajo (arreglar ESA gotera) o preguntarte "¿el techo entero tiene el mismo defecto de fábrica?". Cuando barrí el código con AST (el árbol sintáctico: una radiografía que ve las llamadas REALES, no texto), la respuesta fue brutal: el mismo defecto — leer salida de subprocesos sin declarar el alfabeto — existía en **35 puntos de 19 archivos**, incluyendo piezas que leen episodios de PostgreSQL y salida de git todos los días. Treinta y cinco minas del mismo tipo, esperando su byte raro. Arreglar solo el LOOP_READ habría sido el balde bajo una gotera con 34 más creciendo. "Chaleco antibalas" significa que blindamos **todas** con el mismo fix uniforme, verificado por script (35/35, 0 anomalías, re-barrido a cero). Y con criterio: 2 casos que PARECÍAN iguales (`tempfile.mkstemp`) se excluyeron porque ahí `text=True` significa otra cosa — "arreglarlos" habría sido crear un bug nuevo. Eso es la diferencia entre matar una instancia y **cerrar una clase**. ## [R7.seccion3.P3] "El tripwire hace imposible que esto regrese EN SILENCIO"
Un tripwire es literalmente un cable-trampa: no evita que alguien entre, pero garantiza que NO entre sin que suene la alarma. En software es un **test permanente** que quedó viviendo en la suite: `test_clase_encoding_todas_las_libs_subprocess`. Cada vez que corren los tests, ese test re-hace el barrido AST completo sobre las librerías y exige CERO infractores. ¿Por qué importa tanto? Porque el riesgo real no era solo el pasado — era el futuro: dentro de tres meses, una instancia nueva (o yo misma, u otro modelo) escribe una llamada nueva a subprocess, olvida el `encoding=`, y la mina renace...