paso 2 verificado: se hidrata y se mira, no se declara
El criterio de terminado del paso 2 decía «y la imagen los lleva», y eso no se comprueba declarando. Hidratación real con el orden del ensamblado (busybox primero, el userland encima, como USERLAND_COMPONENTS): ningún binario de los declarados lo sigue ganando busybox — grep, sed, find, xargs, diff, cmp, gzip, zcat, xz, bc, dc, vi, cpio, killall, pstree, fuser y los de coreutils salen todos del paquete que corresponde. Y la prueba que faltaba: hidratar la xz canónica ENCIMA de xz-tools —el escenario que motivó quitarle lib/ e include/ a la variante— deja liblzma.a de la canónica, usr/bin/xz de la variante, y xz --version sigue contestando. Conviven, que es lo que la receta afirmaba y ahora está medido en vez de razonado. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Semántico sayk'uy
Mana ima sutichaypas t'ikrakurqanchu: qillqalla, yachachiylla utaq willaylla t'ikrakurqan.
1 qillqakuna · +18 −0
- docs/plan-botar-busybox.md +18 −0
diff --git a/docs/plan-botar-busybox.md b/docs/plan-botar-busybox.md
index 52236dfa..36125147 100644
--- a/docs/plan-botar-busybox.md
+++ b/docs/plan-botar-busybox.md
@@ -1360,3 +1360,21 @@ Recortar otra vez ahora duplica ese trabajo para la granja.
**El siguiente recorte junta todo lo que ya está decidido y se hace UNA vez:** los 6 de kmod, los 3
de /dev, y los 6 alias internos de iproute2 (`ipaddr iplink ipneigh iproute iprule iptunnel`, que no
son comandos de nadie) — **15 applets, 277 → 262**, sin escribir una línea y sin reemplazar nada.
+
+## El paso 2, verificado en una hidratación real (2026-09-22)
+
+El criterio de terminado del paso 2 era «cuando `build-state.py` los marca con perfil **y la imagen
+los lleva**». Lo segundo no se comprueba declarando: se hidrata y se mira. Hecho, con el orden real
+del ensamblado —busybox primero, el userland encima, que es lo que hace `USERLAND_COMPONENTS`:
+
+```
+grep → grep find → find diff → diffutils xz → xz (xz-tools)
+sed → sed xargs → xargs cmp → diffutils bc → bc dc → bc
+gzip → gzip zcat → zcat vi → vim cpio → bsdcpio
+killall/pstree/fuser → psmisc chmod/uname/id/stat/ls/cat → coreutils (uutils)
+```
+
+**Ningún binario de los declarados lo sigue ganando busybox.** Y la prueba que faltaba: hidratar la
+`xz` canónica ENCIMA de `xz-tools` —el escenario que motivó quitarle `lib/` e `include/` a la
+variante— deja `liblzma.a` de la canónica, `usr/bin/xz` de la variante, y `xz --version` sigue
+contestando. **Conviven**, que es lo que la receta afirmaba y ahora está medido en vez de razonado.