tawasuyu

sergio/takana

> Una distribución Linux construida con un laboratorio funcional y hermético en el > sótano, y una terminal mutable, clásica y anárquica en el piso de arriba — diseñada > desde el suelo para que una IA programadora entienda, modifique y co…

TOML 1411Shell 141Markdown 85Rust 842918 Definiciones

ADR 0020: el corpus ya se defiende solo en 53 de las 142 — el radio de explosión son 89, no 142

Medido al construir `wtype` en la caja: su fase de install empieza con `set -e` puesto a mano por el
autor. No es la única — 53 de las 142 recetas con fase multi-comando hacen lo mismo.

Son dos datos. Uno: nadie escribe `set -e` en 53 recetas por gusto, se escribe después de que algo
selle mal, así que el default ya estaba pagándose de a una. Dos: esas 53 ya corren bajo `set -e` y
no romperían con `-ec`, o sea que la migración es sobre las 89 restantes y la muestra del
experimento sale de ahí, no de las 142.

08b475ec175a310cfafa4129ee3dc33359d56a66 · por Sergio · (hace 1 mes) · padre cd8469e09 · ver el árbol en este commit

Delta semántico

Ninguna definición cambió: el cambio es de texto, documentación o datos.

1 archivos · +12 −3

diff --git a/docs/adr/0020-fases-de-build-sin-set-e.md b/docs/adr/0020-fases-de-build-sin-set-e.md
index 83e91439..6b42b66d 100644
--- a/docs/adr/0020-fases-de-build-sin-set-e.md
+++ b/docs/adr/0020-fases-de-build-sin-set-e.md
@@ -60,6 +60,14 @@ finales**.
 - Las ~800 restantes **no están expuestas**: usan las fases que genera `resolve_phases`, que encadena
   con `&&` (`autoreconf -fi && ./configure …`), y `&&` sí propaga el fallo.
 
+**Y el corpus YA resolvió esto a mano, en un tercio de los casos.** 53 de esas 142 recetas abren
+alguna fase con un `set -e` propio — `wtype` es una de ellas. Eso son dos datos, no uno:
+
+1. **El default está mal y los autores ya lo sabían.** Nadie escribe `set -e` en 53 recetas por gusto;
+   se escribe después de que algo selle mal. Es la misma lección que este ADR, pagada de a una.
+2. **Achica el radio de explosión.** Esas 53 ya corren bajo `set -e` y no romperían con `-ec`: la
+   migración no son 142 recetas, son **89** — las expuestas que todavía no se defienden solas.
+
 ## Lo que hoy tapa el agujero, y por qué no alcanza
 
 En `zsh` el artefacto se salvó de verdad — pero no por el estado de salida, sino por **dos guardianes
@@ -96,11 +104,12 @@ Lo que hay hoy es un **cribado sobre logs**, no una medición del radio de explo
 falta es: *¿cuántas de las 142 recetas expuestas dejan de sellar bajo `-ec`?* Y no se puede sacar
 leyendo: hay que reconstruirlas.
 
-    # sobre una muestra de las 142, con el lock tomado una sola vez (CLAUDE.md regla 1)
+    # sobre una muestra de las 89, con el lock tomado una sola vez (CLAUDE.md regla 1)
     flock -o work/.farm-build.lock bash -c 'for r in <muestra>; do takana --store ./store build "$r"; done'
 
-Con `-ec` puesto y contando los que caen. Una muestra de 20 alcanza para decidir; el corpus entero es
-la validación. **Hasta que ese número exista, este ADR no se adopta.**
+Con `-ec` puesto y contando los que caen. La muestra sale de las **89 sin `set -e` propio**, no de las
+142: las otras 53 ya corren así y no aportan información. Una muestra de 20 alcanza para decidir; el
+corpus entero es la validación. **Hasta que ese número exista, este ADR no se adopta.**
 
 ## Consecuencias que se caen solas