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:
parent
2bce12f759
commit
ada2a6a619
1 changed files with 21 additions and 0 deletions
|
|
@ -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...
|
||||
Loading…
Reference in a new issue