gioser

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…

busybox recortado: 401 -> 277 applets, con vigía y cinco indultos medidos

Paso 1 de docs/plan-botar-busybox.md. 124 applets fuera del defconfig: los 105 que
no se reemplazan (dpkg, rpm, httpd, telnetd, ubi*, nand*, i2c*) y 19 cuya función ya
hace otro componente (init/runit -> arje-zero, syslogd/klogd/logread -> hammerd).
Binario de 1.230.976 a 977.096 bytes.

CORRIGE UN ERROR DEL PLAN: arje-zero y hammerd reemplazan la FUNCIÓN, no el COMANDO
-- son un binario cada uno. Por eso 5 indultos: setuidgid (la card de gitea lo
ejecuta), switch_root (el /init del instalador, antes de que arje exista) y
poweroff/halt/reboot (nada más en el corpus apaga la máquina).

scripts/busybox-vigia.py falla si alguien invoca un applet retirado; lee la lista de
la propia receta para que no haya dos que se desincronicen. Su primera versión daba
91 hits y ninguno real: las cuatro reglas que lo bajaron a 0 están documentadas.

El mapa applet->símbolo sale de las líneas //applet: del fuente, no de poner el
nombre en mayúsculas: eso falla en 6 casos medidos, dos de ellos en la lista.

Verificado: 277 applets exactos, los 5 indultados presentes, y zlib-ng, jq y
logrotate reconstruidas y selladas con el busybox recortado -- el sandbox sigue en
pie. Son 3 de las 24 dependientes, no las 24, y el boot de la imagen no se probó.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

c5a27d9b4c8d4f53a5562e11df7102121da77a20 · por Sergio · (hace 1 mes) · padre 58e797297 · ver el árbol en este commit

Delta semántico · 5

scripts/busybox-vigia.py

4 archivos · +651 −408

diff --git a/docs/plan-botar-busybox.md b/docs/plan-botar-busybox.md
index 4b2b8a7f..69a72cdd 100644
--- a/docs/plan-botar-busybox.md
+++ b/docs/plan-botar-busybox.md
@@ -69,8 +69,11 @@ migración de llamadores, no un borrado.** Mirar quién los invoca en `scripts/`
 | `diffutils` | 2 | `diff cmp` |
 | `findutils` / `findutils-xargs` / `libarchive` | 3 | `find` · `xargs` · `cpio` |
 
-**Los 24 de `arje-zero` y `hammerd` no cuestan nada**: el reemplazo ya corre en el producto. Son
-applets instalados que nadie ejecuta. Salen del `defconfig` y se prueba que la imagen arranque igual.
+⚠ **CORRECCIÓN (2026-09-21, al ejecutar el paso 1): los 24 de `arje-zero` y `hammerd` NO son
+gratis, y esta tabla decía mal.** Esas dos recetas reemplazan la **función**, no el **comando**:
+cada una instala UN binario (`-p arje-zero`, `-p hammerd`), así que no existe un `poweroff`, un
+`logger` ni un `setuidgid` que las respalde. «Cubierto» significaba «nadie necesita correr esto»,
+y para 5 de los 24 era falso. Ver los indultos del paso 1.
 
 ### 128 · Sin dueño
 
@@ -135,9 +138,7 @@ trabajo #1 es medirlo, no adoptarlo.**
 Cada paso es una unidad de trabajo con su criterio de terminado. Los tres primeros **no tocan el
 frente C** y se pueden hacer hoy.
 
-1. **Recortar el `defconfig`.** Sacar los 105 de `BORRAR` + los 24 que `arje-zero`/`hammerd` ya
-   reemplazan = **129 applets menos, cero código escrito**. Terminado cuando la imagen arranca, el
-   E2E de QEMU pasa y `find . -type l | wc -l` baja de 401 a ~272.
+1. ~~**Recortar el `defconfig`.**~~ **HECHO, 2026-09-21 — 401 → 277 applets. Veredicto al final.**
 2. **Declarar la munición que ya existe.** `uutils`, `findutils`, `findutils-xargs`, `diffutils`,
    `brush`, `gzip`, `libarchive` a los perfiles de `targets.toml`. Terminado cuando `build-state.py`
    los marca con perfil y la imagen los lleva.
@@ -330,3 +331,89 @@ y valen 129 applets y dos piezas de userland. Gastar el turno en pelear el shell
 Lo que sí conviene hacer ya, porque es gratis: **suscribirse a #1394** y **medir brush como `/bin/sh`
 del PRODUCTO** (`product-boot-test.sh` + las cards), que es un consumidor que no genera libtool y
 donde brush no tiene ninguna evidencia en contra.
+
+
+---
+
+# Paso 1 — el recorte, HECHO y MEDIDO
+
+**Fecha:** 2026-09-21 · **Dónde:** `dev.gioser.net`, bajo `flock -o`, contra un store tirable y con
+un directorio de recetas por hardlinks — el `recipes/` del worker no se tocó.
+
+> **401 → 277 applets.** 124 retirados, 5 indultados, binario de **1.230.976 → 977.096 bytes**
+> (−20,6 %). Nuevo hash `b3:a24fdbf6…` (el vigente era `2a2b1280…`). Y **3 de las 24 recetas que
+> declaran busybox build-dep se reconstruyeron y sellaron con el recortado**: el sandbox sigue en pie.
+
+## Lo que el ejercicio corrigió del plan
+
+**Mi tabla decía que los 24 applets de `arje-zero`/`hammerd` eran gratis. Es falso para 5 de ellos.**
+Esas recetas instalan **un binario cada una** (`-p arje-zero`, `-p hammerd`): reemplazan la FUNCIÓN,
+no el COMANDO. No hay un `poweroff` ni un `setuidgid` detrás. Los cinco indultos, con su razón:
+
+| indultado | por qué se queda |
+|---|---|
+| `setuidgid` | la card de **gitea** hace `setuidgid gitea` (`recipes/gitea.toml:89`, «applet de busybox, comprobado presente»). Sin él el servicio arranca, muere y reintenta para siempre |
+| `switch_root` | el `/init` del initramfs del instalador lo ejecuta (`scripts/takana-live-install.sh:375`), **antes** de que arje exista |
+| `poweroff` · `halt` · `reboot` | **nada más en el corpus apaga la máquina.** arje-zero es PID 1, no una CLI. Quitarlos deja un producto que no se puede apagar desde la shell |
+
+Los tres primeros los encontró el vigía; los tres últimos, preguntarse qué instala arje-zero de
+verdad en vez de creerle a mi propia tabla.
+
+## El vigía — y por qué un vigía ingenuo no sirve
+
+`scripts/busybox-vigia.py` falla si alguna receta, script o card invoca un applet retirado. **Lee la
+lista de la propia receta** (`RETIRADOS='…'`) cruzada con la columna `simbolo_kconfig` del TSV, así
+que no hay dos listas que se desincronicen.
+
+Su primera versión daba **91 hits y ninguno real**. Las cuatro reglas que lo bajaron a 0, todas
+medidas contra falsos positivos concretos:
+
+| regla | qué mataba |
+|---|---|
+| quitar comentarios antes de buscar | `# busybox provee sendmail, no mail` (logrotate), `/// los dos fsync no son prolijidad` |
+| en Rust/Python, mirar sólo cadenas **que parezcan una línea de comandos** | `"init"` como nombre de capacidad, `tree` como variable, `rx = re.compile(…)` |
+| ignorar nombres que el propio script define como función | `$(ts)` en los seis scripts de `scripts/farm/` |
+| ignorar patrones de `case` y `command -v X` | `proc\|sys\|dev\|init) continue ;;` · `command -v dpkg` en el censo de la mudanza |
+
+Y `[` / `[[` no se vigilan: son palabras del shell, y todo script bash del hub los usa sin que eso
+sea una llamada a un applet.
+
+⚠ **El vigía mira ESTE repo.** No ve los `configure` de terceros que corren dentro del sandbox, que
+son quienes podrían llamar a `which` o `unzip`. Por eso la verificación de abajo no es opcional.
+
+## El mapa applet → símbolo NO se deriva por mayúsculas
+
+Sale de las líneas `//applet:` del fuente de busybox 1.36.1 y vive en la columna `simbolo_kconfig`
+del TSV. Poner el nombre en mayúsculas **falla en 6 casos medidos**: `[`→`TEST1`, `[[`→`TEST2`,
+`arch`→`BB_ARCH`, `nbd-client`→`NBDCLIENT`, `sh`→`SH_IS_ASH`, `sysctl`→`BB_SYSCTL`. Dos de esos seis
+estaban en la lista a retirar.
+
+## Verificación
+
+| qué | resultado |
+|---|---|
+| applets tras el recorte | **277** (401 − 124), exactamente los previstos |
+| los 5 indultados presentes | ✅ y también `sh` y `getty` |
+| los que debían irse | ✅ `httpd telnetd dpkg rpm init syslogd runsv tree which unzip` fuera |
+| **el sandbox sigue construyendo** | ✅ `zlib-ng`, `jq` y `logrotate` reconstruidas y selladas con el busybox recortado |
+
+⚠ **Son 3 de las 24, no las 24.** Las otras 21 —entre ellas `linux`, `llama-cpp`, `protobuf`,
+`qdrant`— no se probaron: son horas de cómputo en una caja que está con la campaña de KDE. Si alguna
+usa un applet retirado, se verá en su próximo build y el vigía **no** lo habría anticipado, porque el
+llamador estaría en un `configure` de terceros.
+
+## El coste, dicho antes de que sorprenda
+
+**Cambiar esta lista re-hashea busybox, y con él las 24 recetas que lo declaran build-dep**:
+`abseil-cpp chrony cronie crun dwarves firmware-tigerlake ia-modelo-embeddings intel-ucode jq libmnl
+libnftnl linux linux-firmware llama-cpp logrotate nftables opensmtpd popt protobuf qdrant
+sof-firmware valkey wireless-regdb zlib-ng`. **`linux` está en la lista**: el kernel se reconstruye.
+La granja lo hará en su propio ciclo; no se disparó a mano.
+
+## Lo que queda del paso 1
+
+- **Arrancar una imagen.** Lo medido es que el artefacto sella y que el sandbox construye. Que el
+  producto **bootee** con 277 applets no se probó: falta `product-boot-test.sh`.
+- **Las otras 21 dependientes**, cuando la granja llegue.
+- El siguiente corte natural son los `BORRAR` que no se tocaron por prudencia y los 272 que siguen:
+  el número baja a 0 por el paso 2 (declarar la munición sellada) y el 5 (`grep`/`sed` POSIX).
diff --git a/docs/state/busybox-applets.tsv b/docs/state/busybox-applets.tsv
index 0b5948d1..0c36cca0 100644
--- a/docs/state/busybox-applets.tsv
+++ b/docs/state/busybox-applets.tsv
@@ -1,402 +1,402 @@
-applet	destino	estado_del_dueño	equivalencia	nota
-[	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-[[	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-acpid	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-add-shell	shadow	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-addgroup	shadow	sellada+perfil	NO-drop-in	shadow da groupadd
-adduser	shadow	sellada+perfil	NO-drop-in	shadow da useradd
-adjtimex	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-arch	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-arp	iproute2	sellada+perfil	NO-drop-in	iproute2 da `ip neigh`
-arping	iputils	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-ascii	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-ash	brush	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-awk	awk-DECISION	—	n/a	DECIDIR — gawk (C) y goawk (Go) sellados sin perfil; ninguno es Rust
-base32	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-base64	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-basename	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-bc	bc-TRAER	—	n/a	TRAER — no hay receta bc
-beep	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-blkdiscard	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-blkid	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-blockdev	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-bootchartd	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-brctl	iproute2	sellada+perfil	NO-drop-in	iproute2 da `ip link ... type bridge`
-bunzip2	bzip2	sellada+perfil	sin-verificar	cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-bzcat	bzip2	sellada+perfil	sin-verificar	cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-bzip2	bzip2	sellada+perfil	sin-verificar	cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-cal	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-cat	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-chat	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-chattr	e2fsprogs	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-chgrp	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-chmod	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-chown	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-chpasswd	shadow	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-chpst	arje-zero	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-chroot	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-chrt	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-chvt	kbd	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-cksum	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-clear	ncurses	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-cmp	diffutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-comm	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-conspy	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-cp	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-cpio	libarchive	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-crc32	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-crond	cronie	sellada+perfil	sin-verificar	servidor
-crontab	cronie	sellada+perfil	sin-verificar	servidor
-cryptpw	shadow	sellada+perfil	NO-drop-in	shadow no lo trae
-cttyhack	getty-ESCRIBIR	—	n/a	ESCRIBIR — hoy la card de getty ejecuta /bin/busybox (lib.rs:429)
-cut	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-date	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-dc	bc-TRAER	—	n/a	TRAER — no hay receta bc
-dd	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-deallocvt	kbd	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-delgroup	shadow	sellada+perfil	NO-drop-in	shadow da groupdel
-deluser	shadow	sellada+perfil	NO-drop-in	shadow da userdel
-depmod	kmod-ESCRIBIR	—	n/a	ESCRIBIR — no hay receta kmod; Rust sobre finit_module + modules.dep
-devmem	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-df	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-dhcprelay	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-diff	diffutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-dirname	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-dmesg	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-dnsd	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-dnsdomainname	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-dos2unix	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-dpkg	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-dpkg-deb	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-du	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-dumpkmap	kbd	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-dumpleases	dhcpcd	sellada+perfil	NO-drop-in	dhcpcd no lo trae
-echo	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-ed	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-egrep	grep-posix	—	n/a	ESCRIBIR — CLI POSIX sobre grep-searcher/grep-regex de ripgrep; `grep` GNU (sellado, sin perfil) como puente
-eject	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-env	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-envdir	arje-zero	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-envuidgid	arje-zero	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-ether-wake	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-expand	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-expr	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-factor	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-fakeidentd	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-fallocate	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-false	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-fatattr	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-fbset	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-fbsplash	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-fdflush	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-fdformat	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-fdisk	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-fgconsole	kbd	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-fgrep	grep-posix	—	n/a	ESCRIBIR — CLI POSIX sobre grep-searcher/grep-regex de ripgrep; `grep` GNU (sellado, sin perfil) como puente
-find	findutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-findfs	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-flock	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-fold	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-free	procps-ng	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-freeramdisk	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-fsck	e2fsprogs	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-fsck.minix	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-fsfreeze	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-fstrim	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-fsync	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-ftpd	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-ftpget	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-ftpput	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-fuser	psmisc-TRAER	—	n/a	TRAER — no hay receta psmisc; procps-ng NO trae killall/pstree
-getopt	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-getty	getty-ESCRIBIR	—	n/a	ESCRIBIR — hoy la card de getty ejecuta /bin/busybox (lib.rs:429)
-grep	grep-posix	—	n/a	ESCRIBIR — CLI POSIX sobre grep-searcher/grep-regex de ripgrep; `grep` GNU (sellado, sin perfil) como puente
-groups	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-gunzip	gzip	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-gzip	gzip	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-halt	arje-zero	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-hd	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-hdparm	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-head	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-hexdump	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-hexedit	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-hostid	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-hostname	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-httpd	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-hush	brush	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-hwclock	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-i2cdetect	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-i2cdump	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-i2cget	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-i2cset	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-i2ctransfer	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-id	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-ifconfig	iproute2	sellada+perfil	NO-drop-in	iproute2 da `ip addr`, no ifconfig (eso es net-tools)
-ifdown	iproute2	sellada+perfil	NO-drop-in	no existe en iproute2
-ifenslave	iproute2	sellada+perfil	NO-drop-in	iproute2 da `ip link ... type bond`
-ifplugd	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-ifup	iproute2	sellada+perfil	NO-drop-in	no existe en iproute2
-inetd	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-init	arje-zero	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-insmod	kmod-ESCRIBIR	—	n/a	ESCRIBIR — no hay receta kmod; Rust sobre finit_module + modules.dep
-install	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-ionice	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-iostat	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-ip	iproute2	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-ipaddr	iproute2	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-ipcalc	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-ipcrm	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-ipcs	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-iplink	iproute2	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-ipneigh	iproute2	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-iproute	iproute2	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-iprule	iproute2	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-iptunnel	iproute2	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-kbd_mode	kbd	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-kill	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-killall	psmisc-TRAER	—	n/a	TRAER — no hay receta psmisc; procps-ng NO trae killall/pstree
-killall5	psmisc-TRAER	—	n/a	TRAER — no hay receta psmisc; procps-ng NO trae killall/pstree
-klogd	hammerd	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-last	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-less	less	sellada+perfil	sin-verificar	cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-link	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-linux32	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-linux64	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-linuxrc	arje-zero	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-ln	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-loadfont	kbd	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-loadkmap	kbd	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-logger	hammerd	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-login	shadow	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-logname	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-logread	hammerd	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-losetup	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-lpd	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-lpq	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-lpr	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-ls	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-lsattr	e2fsprogs	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-lsmod	kmod-ESCRIBIR	—	n/a	ESCRIBIR — no hay receta kmod; Rust sobre finit_module + modules.dep
-lsof	lsof	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-lspci	pciutils	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-lsscsi	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-lsusb	usbutils	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-lzcat	xz	sellada+perfil	sin-verificar	cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-lzma	xz	sellada+perfil	sin-verificar	cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-lzop	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-makedevs	dev-ESCRIBIR	—	n/a	ESCRIBIR/DECIDIR — gestor de /dev (arje o eudev); no hay receta
-makemime	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-man	mandoc	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-md5sum	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-mdev	dev-ESCRIBIR	—	n/a	ESCRIBIR/DECIDIR — gestor de /dev (arje o eudev); no hay receta
-mesg	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-microcom	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-mim	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-mkdir	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-mkdosfs	dosfstools	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-mke2fs	e2fsprogs	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-mkfifo	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-mkfs.ext2	e2fsprogs	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-mkfs.minix	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-mkfs.vfat	dosfstools	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-mknod	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-mkpasswd	shadow	sellada+perfil	NO-drop-in	shadow no lo trae con ese nombre
-mkswap	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-mktemp	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-modinfo	kmod-ESCRIBIR	—	n/a	ESCRIBIR — no hay receta kmod; Rust sobre finit_module + modules.dep
-modprobe	kmod-ESCRIBIR	—	n/a	ESCRIBIR — no hay receta kmod; Rust sobre finit_module + modules.dep
-more	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-mount	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-mountpoint	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-mpstat	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-mt	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-mv	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-nameif	iproute2	sellada+perfil	NO-drop-in	no existe en iproute2
-nanddump	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-nandwrite	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-nbd-client	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-nc	socat	sellada+perfil	NO-drop-in	socat tiene otra sintaxis
-netstat	iproute2	sellada+perfil	NO-drop-in	iproute2 da `ss`
-nice	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-nl	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-nmeter	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-nohup	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-nologin	shadow	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-nproc	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-nsenter	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-nslookup	dns-TRAER	—	n/a	TRAER — no hay receta bind-tools/dog/doggo
-ntpd	chrony	sellada+perfil	NO-drop-in	chrony es otro daemon y otro config
-od	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-openvt	kbd	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-partprobe	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-passwd	shadow	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-paste	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-patch	patch	sellada+perfil	sin-verificar	cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-pgrep	procps-ng	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-pidof	procps-ng	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-ping	iputils	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-ping6	iputils	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-pipe_progress	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-pivot_root	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-pkill	procps-ng	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-pmap	procps-ng	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-popmaildir	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-poweroff	arje-zero	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-powertop	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-printenv	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-printf	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-ps	procps-ng	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-pscan	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-pstree	psmisc-TRAER	—	n/a	TRAER — no hay receta psmisc; procps-ng NO trae killall/pstree
-pwd	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-pwdx	procps-ng	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-raidautorun	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-rdate	chrony	sellada+perfil	NO-drop-in	chrony da chronyd/chronyc
-rdev	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-readahead	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-readlink	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-readprofile	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-realpath	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-reboot	arje-zero	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-reformime	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-remove-shell	shadow	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-renice	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-reset	ncurses	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-resize	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-resume	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-rev	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-rm	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-rmdir	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-rmmod	kmod-ESCRIBIR	—	n/a	ESCRIBIR — no hay receta kmod; Rust sobre finit_module + modules.dep
-route	iproute2	sellada+perfil	NO-drop-in	iproute2 da `ip route`
-rpm	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-rpm2cpio	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-rtcwake	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-run-init	arje-zero	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-run-parts	cronie	sellada+perfil	sin-verificar	servidor
-runlevel	arje-zero	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-runsv	arje-zero	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-runsvdir	arje-zero	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-rx	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-script	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-scriptreplay	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-sed	sed-rs	—	n/a	DECIDIR — `sed` GNU ya sellado y en 7 perfiles; el Rust nativo está por escribir
-seedrng	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-sendmail	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-seq	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-setarch	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-setconsole	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-setfattr	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-setfont	kbd	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-setkeycodes	kbd	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-setlogcons	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-setpriv	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-setserial	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-setsid	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-setuidgid	arje-zero	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-sh	brush	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-sha1sum	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-sha256sum	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-sha3sum	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-sha512sum	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-showkey	kbd	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-shred	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-shuf	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-slattach	iproute2	sellada+perfil	NO-drop-in	sin equivalente en iproute2
-sleep	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-smemcap	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-softlimit	arje-zero	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-sort	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-split	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-ssl_client	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-start-stop-daemon	arje-zero	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-stat	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-strings	binutils	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-mirada,escritorio-sway,servidor
-stty	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-su	shadow	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-sulogin	shadow	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-sum	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-sv	arje-zero	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-svc	arje-zero	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-svlogd	arje-zero	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-svok	arje-zero	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-swapoff	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-swapon	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-switch_root	arje-zero	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-sync	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-sysctl	procps-ng	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-syslogd	hammerd	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-tac	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-tail	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-tar	tar	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-taskset	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-tcpsvd	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-tee	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-telnet	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-telnetd	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-test	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-tftp	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-tftpd	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-time	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-timeout	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-top	procps-ng	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-touch	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-tr	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-traceroute	iputils	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-traceroute6	iputils	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-tree	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-true	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-truncate	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-ts	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-tsort	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-tty	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-ttysize	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-tunctl	iproute2	sellada+perfil	NO-drop-in	iproute2 da `ip tuntap`
-ubiattach	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-ubidetach	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-ubimkvol	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-ubirename	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-ubirmvol	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-ubirsvol	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-ubiupdatevol	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-udhcpc	dhcpcd	sellada+perfil	NO-drop-in	dhcpcd es otro cliente y otro contrato de hooks
-udhcpc6	dhcpcd	sellada+perfil	NO-drop-in	ídem
-udhcpd	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-udpsvd	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-uevent	dev-ESCRIBIR	—	n/a	ESCRIBIR/DECIDIR — gestor de /dev (arje o eudev); no hay receta
-umount	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-uname	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-unexpand	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-uniq	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-unix2dos	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-unlink	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-unlzma	xz	sellada+perfil	sin-verificar	cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-unshare	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-unxz	xz	sellada+perfil	sin-verificar	cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-unzip	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-uptime	procps-ng	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-users	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-usleep	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-uudecode	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-uuencode	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-vconfig	iproute2	sellada+perfil	NO-drop-in	iproute2 da `ip link ... type vlan`
-vi	vim	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-vlock	kbd	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-volname	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-w	procps-ng	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-wall	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-watch	procps-ng	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-watchdog	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-wc	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-wget	wget	sellada+perfil	sin-verificar	servidor
-which	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-who	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-whoami	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-whois	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
-xargs	findutils-xargs	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-xxd	vim	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-xz	xz	sellada+perfil	sin-verificar	cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-xzcat	xz	sellada+perfil	sin-verificar	cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor
-yes	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-zcat	gzip	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen
-zcip	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza
+applet	destino	estado_del_dueño	equivalencia	nota	simbolo_kconfig	recorte_2026_09_21
+[	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	TEST1	sigue
+[[	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	TEST2	RETIRADO
+acpid	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	ACPID	RETIRADO
+add-shell	shadow	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	ADD_SHELL	sigue
+addgroup	shadow	sellada+perfil	NO-drop-in	shadow da groupadd	ADDGROUP	sigue
+adduser	shadow	sellada+perfil	NO-drop-in	shadow da useradd	ADDUSER	sigue
+adjtimex	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	ADJTIMEX	RETIRADO
+arch	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	BB_ARCH	sigue
+arp	iproute2	sellada+perfil	NO-drop-in	iproute2 da `ip neigh`	ARP	sigue
+arping	iputils	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	ARPING	sigue
+ascii	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	ASCII	RETIRADO
+ash	brush	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	ASH	sigue
+awk	awk-DECISION	—	n/a	DECIDIR — gawk (C) y goawk (Go) sellados sin perfil; ninguno es Rust	AWK	sigue
+base32	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	BASE32	sigue
+base64	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	BASE64	sigue
+basename	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	BASENAME	sigue
+bc	bc-TRAER	—	n/a	TRAER — no hay receta bc	BC	sigue
+beep	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	BEEP	RETIRADO
+blkdiscard	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	BLKDISCARD	sigue
+blkid	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	BLKID	sigue
+blockdev	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	BLOCKDEV	sigue
+bootchartd	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	BOOTCHARTD	RETIRADO
+brctl	iproute2	sellada+perfil	NO-drop-in	iproute2 da `ip link ... type bridge`	BRCTL	sigue
+bunzip2	bzip2	sellada+perfil	sin-verificar	cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	BUNZIP2	sigue
+bzcat	bzip2	sellada+perfil	sin-verificar	cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	BZCAT	sigue
+bzip2	bzip2	sellada+perfil	sin-verificar	cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	BZIP2	sigue
+cal	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	CAL	sigue
+cat	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	CAT	sigue
+chat	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	CHAT	RETIRADO
+chattr	e2fsprogs	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	CHATTR	sigue
+chgrp	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	CHGRP	sigue
+chmod	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	CHMOD	sigue
+chown	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	CHOWN	sigue
+chpasswd	shadow	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	CHPASSWD	sigue
+chpst	arje-zero	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	CHPST	RETIRADO
+chroot	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	CHROOT	sigue
+chrt	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	CHRT	sigue
+chvt	kbd	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	CHVT	sigue
+cksum	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	CKSUM	sigue
+clear	ncurses	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	CLEAR	sigue
+cmp	diffutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	CMP	sigue
+comm	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	COMM	sigue
+conspy	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	CONSPY	RETIRADO
+cp	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	CP	sigue
+cpio	libarchive	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	CPIO	sigue
+crc32	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	CRC32	RETIRADO
+crond	cronie	sellada+perfil	sin-verificar	servidor	CROND	sigue
+crontab	cronie	sellada+perfil	sin-verificar	servidor	CRONTAB	sigue
+cryptpw	shadow	sellada+perfil	NO-drop-in	shadow no lo trae	CRYPTPW	sigue
+cttyhack	getty-ESCRIBIR	—	n/a	ESCRIBIR — hoy la card de getty ejecuta /bin/busybox (lib.rs:429)	CTTYHACK	sigue
+cut	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	CUT	sigue
+date	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	DATE	sigue
+dc	bc-TRAER	—	n/a	TRAER — no hay receta bc	DC	sigue
+dd	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	DD	sigue
+deallocvt	kbd	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	DEALLOCVT	sigue
+delgroup	shadow	sellada+perfil	NO-drop-in	shadow da groupdel	DELGROUP	sigue
+deluser	shadow	sellada+perfil	NO-drop-in	shadow da userdel	DELUSER	sigue
+depmod	kmod-ESCRIBIR	—	n/a	ESCRIBIR — no hay receta kmod; Rust sobre finit_module + modules.dep	?	sigue
+devmem	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	DEVMEM	RETIRADO
+df	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	DF	sigue
+dhcprelay	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	DHCPRELAY	RETIRADO
+diff	diffutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	DIFF	sigue
+dirname	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	DIRNAME	sigue
+dmesg	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	DMESG	sigue
+dnsd	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	DNSD	RETIRADO
+dnsdomainname	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	DNSDOMAINNAME	RETIRADO
+dos2unix	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	DOS2UNIX	RETIRADO
+dpkg	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	DPKG	RETIRADO
+dpkg-deb	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	DPKG_DEB	RETIRADO
+du	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	DU	sigue
+dumpkmap	kbd	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	DUMPKMAP	sigue
+dumpleases	dhcpcd	sellada+perfil	NO-drop-in	dhcpcd no lo trae	DUMPLEASES	sigue
+echo	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	ECHO	sigue
+ed	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	ED	RETIRADO
+egrep	grep-posix	—	n/a	ESCRIBIR — CLI POSIX sobre grep-searcher/grep-regex de ripgrep; `grep` GNU (sellado, sin perfil) como puente	EGREP	sigue
+eject	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	EJECT	sigue
+env	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	ENV	sigue
+envdir	arje-zero	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	ENVDIR	RETIRADO
+envuidgid	arje-zero	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	ENVUIDGID	RETIRADO
+ether-wake	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	ETHER_WAKE	RETIRADO
+expand	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	EXPAND	sigue
+expr	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	EXPR	sigue
+factor	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	FACTOR	sigue
+fakeidentd	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	FAKEIDENTD	RETIRADO
+fallocate	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	FALLOCATE	sigue
+false	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	FALSE	sigue
+fatattr	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	FATATTR	RETIRADO
+fbset	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	FBSET	RETIRADO
+fbsplash	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	FBSPLASH	RETIRADO
+fdflush	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	FDFLUSH	RETIRADO
+fdformat	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	FDFORMAT	RETIRADO
+fdisk	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	FDISK	sigue
+fgconsole	kbd	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	FGCONSOLE	sigue
+fgrep	grep-posix	—	n/a	ESCRIBIR — CLI POSIX sobre grep-searcher/grep-regex de ripgrep; `grep` GNU (sellado, sin perfil) como puente	FGREP	sigue
+find	findutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	FIND	sigue
+findfs	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	FINDFS	sigue
+flock	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	FLOCK	sigue
+fold	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	FOLD	sigue
+free	procps-ng	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	FREE	sigue
+freeramdisk	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	FREERAMDISK	RETIRADO
+fsck	e2fsprogs	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	FSCK	sigue
+fsck.minix	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	FSCK_MINIX	sigue
+fsfreeze	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	FSFREEZE	sigue
+fstrim	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	FSTRIM	sigue
+fsync	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	FSYNC	RETIRADO
+ftpd	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	FTPD	RETIRADO
+ftpget	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	FTPGET	RETIRADO
+ftpput	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	FTPPUT	RETIRADO
+fuser	psmisc-TRAER	—	n/a	TRAER — no hay receta psmisc; procps-ng NO trae killall/pstree	FUSER	sigue
+getopt	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	GETOPT	sigue
+getty	getty-ESCRIBIR	—	n/a	ESCRIBIR — hoy la card de getty ejecuta /bin/busybox (lib.rs:429)	GETTY	sigue
+grep	grep-posix	—	n/a	ESCRIBIR — CLI POSIX sobre grep-searcher/grep-regex de ripgrep; `grep` GNU (sellado, sin perfil) como puente	GREP	sigue
+groups	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	GROUPS	sigue
+gunzip	gzip	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	GUNZIP	sigue
+gzip	gzip	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	GZIP	sigue
+halt	arje-zero	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	HALT	INDULTADO: idem poweroff
+hd	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	HD	sigue
+hdparm	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	HDPARM	RETIRADO
+head	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	HEAD	sigue
+hexdump	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	HEXDUMP	sigue
+hexedit	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	HEXEDIT	RETIRADO
+hostid	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	HOSTID	sigue
+hostname	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	HOSTNAME	sigue
+httpd	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	HTTPD	RETIRADO
+hush	brush	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	HUSH	sigue
+hwclock	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	HWCLOCK	sigue
+i2cdetect	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	I2CDETECT	RETIRADO
+i2cdump	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	I2CDUMP	RETIRADO
+i2cget	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	I2CGET	RETIRADO
+i2cset	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	I2CSET	RETIRADO
+i2ctransfer	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	I2CTRANSFER	RETIRADO
+id	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	ID	sigue
+ifconfig	iproute2	sellada+perfil	NO-drop-in	iproute2 da `ip addr`, no ifconfig (eso es net-tools)	IFCONFIG	sigue
+ifdown	iproute2	sellada+perfil	NO-drop-in	no existe en iproute2	IFDOWN	sigue
+ifenslave	iproute2	sellada+perfil	NO-drop-in	iproute2 da `ip link ... type bond`	IFENSLAVE	sigue
+ifplugd	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	IFPLUGD	RETIRADO
+ifup	iproute2	sellada+perfil	NO-drop-in	no existe en iproute2	IFUP	sigue
+inetd	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	INETD	RETIRADO
+init	arje-zero	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	INIT	RETIRADO
+insmod	kmod-ESCRIBIR	—	n/a	ESCRIBIR — no hay receta kmod; Rust sobre finit_module + modules.dep	?	sigue
+install	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	INSTALL	sigue
+ionice	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	IONICE	sigue
+iostat	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	IOSTAT	RETIRADO
+ip	iproute2	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	IP	sigue
+ipaddr	iproute2	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	IPADDR	sigue
+ipcalc	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	IPCALC	RETIRADO
+ipcrm	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	IPCRM	sigue
+ipcs	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	IPCS	sigue
+iplink	iproute2	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	IPLINK	sigue
+ipneigh	iproute2	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	IPNEIGH	sigue
+iproute	iproute2	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	IPROUTE	sigue
+iprule	iproute2	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	IPRULE	sigue
+iptunnel	iproute2	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	IPTUNNEL	sigue
+kbd_mode	kbd	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	KBD_MODE	sigue
+kill	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	KILL	sigue
+killall	psmisc-TRAER	—	n/a	TRAER — no hay receta psmisc; procps-ng NO trae killall/pstree	KILLALL	sigue
+killall5	psmisc-TRAER	—	n/a	TRAER — no hay receta psmisc; procps-ng NO trae killall/pstree	KILLALL5	sigue
+klogd	hammerd	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	KLOGD	RETIRADO
+last	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	LAST	sigue
+less	less	sellada+perfil	sin-verificar	cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	LESS	sigue
+link	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	LINK	sigue
+linux32	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	LINUX32	sigue
+linux64	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	LINUX64	sigue
+linuxrc	arje-zero	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	LINUXRC	RETIRADO
+ln	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	LN	sigue
+loadfont	kbd	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	LOADFONT	sigue
+loadkmap	kbd	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	LOADKMAP	sigue
+logger	hammerd	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	LOGGER	RETIRADO
+login	shadow	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	LOGIN	sigue
+logname	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	LOGNAME	sigue
+logread	hammerd	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	LOGREAD	RETIRADO
+losetup	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	LOSETUP	sigue
+lpd	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	LPD	RETIRADO
+lpq	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	LPQ	RETIRADO
+lpr	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	LPR	RETIRADO
+ls	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	LS	sigue
+lsattr	e2fsprogs	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	LSATTR	sigue
+lsmod	kmod-ESCRIBIR	—	n/a	ESCRIBIR — no hay receta kmod; Rust sobre finit_module + modules.dep	?	sigue
+lsof	lsof	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	LSOF	sigue
+lspci	pciutils	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	LSPCI	sigue
+lsscsi	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	LSSCSI	RETIRADO
+lsusb	usbutils	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	LSUSB	sigue
+lzcat	xz	sellada+perfil	sin-verificar	cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	LZCAT	sigue
+lzma	xz	sellada+perfil	sin-verificar	cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	LZMA	sigue
+lzop	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	LZOP	RETIRADO
+makedevs	dev-ESCRIBIR	—	n/a	ESCRIBIR/DECIDIR — gestor de /dev (arje o eudev); no hay receta	MAKEDEVS	sigue
+makemime	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	MAKEMIME	RETIRADO
+man	mandoc	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	MAN	sigue
+md5sum	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	MD5SUM	sigue
+mdev	dev-ESCRIBIR	—	n/a	ESCRIBIR/DECIDIR — gestor de /dev (arje o eudev); no hay receta	MDEV	sigue
+mesg	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	MESG	sigue
+microcom	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	MICROCOM	RETIRADO
+mim	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	MIM	RETIRADO
+mkdir	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	MKDIR	sigue
+mkdosfs	dosfstools	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	MKDOSFS	sigue
+mke2fs	e2fsprogs	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	MKE2FS	sigue
+mkfifo	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	MKFIFO	sigue
+mkfs.ext2	e2fsprogs	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	MKFS_EXT2	sigue
+mkfs.minix	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	MKFS_MINIX	sigue
+mkfs.vfat	dosfstools	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	MKFS_VFAT	sigue
+mknod	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	MKNOD	sigue
+mkpasswd	shadow	sellada+perfil	NO-drop-in	shadow no lo trae con ese nombre	MKPASSWD	sigue
+mkswap	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	MKSWAP	sigue
+mktemp	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	MKTEMP	sigue
+modinfo	kmod-ESCRIBIR	—	n/a	ESCRIBIR — no hay receta kmod; Rust sobre finit_module + modules.dep	MODINFO	sigue
+modprobe	kmod-ESCRIBIR	—	n/a	ESCRIBIR — no hay receta kmod; Rust sobre finit_module + modules.dep	?	sigue
+more	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	MORE	sigue
+mount	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	MOUNT	sigue
+mountpoint	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	MOUNTPOINT	sigue
+mpstat	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	MPSTAT	RETIRADO
+mt	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	MT	RETIRADO
+mv	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	MV	sigue
+nameif	iproute2	sellada+perfil	NO-drop-in	no existe en iproute2	NAMEIF	sigue
+nanddump	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	NANDDUMP	RETIRADO
+nandwrite	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	NANDWRITE	RETIRADO
+nbd-client	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	NBDCLIENT	RETIRADO
+nc	socat	sellada+perfil	NO-drop-in	socat tiene otra sintaxis	NC	sigue
+netstat	iproute2	sellada+perfil	NO-drop-in	iproute2 da `ss`	NETSTAT	sigue
+nice	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	NICE	sigue
+nl	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	NL	sigue
+nmeter	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	NMETER	RETIRADO
+nohup	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	NOHUP	sigue
+nologin	shadow	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	NOLOGIN	sigue
+nproc	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	NPROC	sigue
+nsenter	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	NSENTER	sigue
+nslookup	dns-TRAER	—	n/a	TRAER — no hay receta bind-tools/dog/doggo	NSLOOKUP	sigue
+ntpd	chrony	sellada+perfil	NO-drop-in	chrony es otro daemon y otro config	NTPD	sigue
+od	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	OD	sigue
+openvt	kbd	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	OPENVT	sigue
+partprobe	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	PARTPROBE	sigue
+passwd	shadow	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	PASSWD	sigue
+paste	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	PASTE	sigue
+patch	patch	sellada+perfil	sin-verificar	cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	PATCH	sigue
+pgrep	procps-ng	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	PGREP	sigue
+pidof	procps-ng	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	PIDOF	sigue
+ping	iputils	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	PING	sigue
+ping6	iputils	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	PING6	sigue
+pipe_progress	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	PIPE_PROGRESS	RETIRADO
+pivot_root	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	PIVOT_ROOT	sigue
+pkill	procps-ng	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	PKILL	sigue
+pmap	procps-ng	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	PMAP	sigue
+popmaildir	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	POPMAILDIR	RETIRADO
+poweroff	arje-zero	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	POWEROFF	INDULTADO: nada más en el corpus apaga la máquina: arje-zero es PID1, no una CLI
+powertop	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	POWERTOP	RETIRADO
+printenv	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	PRINTENV	sigue
+printf	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	PRINTF	sigue
+ps	procps-ng	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	PS	sigue
+pscan	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	PSCAN	RETIRADO
+pstree	psmisc-TRAER	—	n/a	TRAER — no hay receta psmisc; procps-ng NO trae killall/pstree	PSTREE	sigue
+pwd	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	PWD	sigue
+pwdx	procps-ng	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	PWDX	sigue
+raidautorun	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	RAIDAUTORUN	RETIRADO
+rdate	chrony	sellada+perfil	NO-drop-in	chrony da chronyd/chronyc	RDATE	sigue
+rdev	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	RDEV	RETIRADO
+readahead	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	READAHEAD	RETIRADO
+readlink	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	READLINK	sigue
+readprofile	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	READPROFILE	sigue
+realpath	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	REALPATH	sigue
+reboot	arje-zero	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	REBOOT	INDULTADO: idem poweroff; y kernel_ab.rs documenta `reboot -f kexec`
+reformime	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	REFORMIME	RETIRADO
+remove-shell	shadow	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	REMOVE_SHELL	sigue
+renice	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	RENICE	sigue
+reset	ncurses	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	RESET	sigue
+resize	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	RESIZE	RETIRADO
+resume	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	RESUME	RETIRADO
+rev	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	REV	sigue
+rm	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	RM	sigue
+rmdir	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	RMDIR	sigue
+rmmod	kmod-ESCRIBIR	—	n/a	ESCRIBIR — no hay receta kmod; Rust sobre finit_module + modules.dep	?	sigue
+route	iproute2	sellada+perfil	NO-drop-in	iproute2 da `ip route`	ROUTE	sigue
+rpm	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	RPM	RETIRADO
+rpm2cpio	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	RPM2CPIO	RETIRADO
+rtcwake	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	RTCWAKE	sigue
+run-init	arje-zero	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	RUN_INIT	RETIRADO
+run-parts	cronie	sellada+perfil	sin-verificar	servidor	RUN_PARTS	sigue
+runlevel	arje-zero	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	RUNLEVEL	RETIRADO
+runsv	arje-zero	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	RUNSV	RETIRADO
+runsvdir	arje-zero	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	RUNSVDIR	RETIRADO
+rx	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	RX	RETIRADO
+script	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	SCRIPT	sigue
+scriptreplay	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	SCRIPTREPLAY	sigue
+sed	sed-rs	—	n/a	DECIDIR — `sed` GNU ya sellado y en 7 perfiles; el Rust nativo está por escribir	SED	sigue
+seedrng	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	SEEDRNG	RETIRADO
+sendmail	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	SENDMAIL	RETIRADO
+seq	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	SEQ	sigue
+setarch	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	SETARCH	sigue
+setconsole	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	SETCONSOLE	RETIRADO
+setfattr	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	SETFATTR	RETIRADO
+setfont	kbd	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	SETFONT	sigue
+setkeycodes	kbd	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	SETKEYCODES	sigue
+setlogcons	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	SETLOGCONS	RETIRADO
+setpriv	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	SETPRIV	sigue
+setserial	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	SETSERIAL	RETIRADO
+setsid	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	SETSID	sigue
+setuidgid	arje-zero	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	SETUIDGID	INDULTADO: la card de gitea hace `setuidgid gitea` (recipes/gitea.toml:89); arje-zero es UN binario, no lo provee
+sh	brush	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	SH_IS_ASH	sigue
+sha1sum	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	SHA1SUM	sigue
+sha256sum	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	SHA256SUM	sigue
+sha3sum	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	SHA3SUM	RETIRADO
+sha512sum	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	SHA512SUM	sigue
+showkey	kbd	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	SHOWKEY	sigue
+shred	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	SHRED	sigue
+shuf	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	SHUF	sigue
+slattach	iproute2	sellada+perfil	NO-drop-in	sin equivalente en iproute2	SLATTACH	sigue
+sleep	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	SLEEP	sigue
+smemcap	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	SMEMCAP	RETIRADO
+softlimit	arje-zero	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	SOFTLIMIT	RETIRADO
+sort	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	SORT	sigue
+split	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	SPLIT	sigue
+ssl_client	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	SSL_CLIENT	RETIRADO
+start-stop-daemon	arje-zero	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	START_STOP_DAEMON	RETIRADO
+stat	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	STAT	sigue
+strings	binutils	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-mirada,escritorio-sway,servidor	STRINGS	sigue
+stty	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	STTY	sigue
+su	shadow	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	SU	sigue
+sulogin	shadow	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	SULOGIN	sigue
+sum	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	SUM	sigue
+sv	arje-zero	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	SV	RETIRADO
+svc	arje-zero	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	SVC	RETIRADO
+svlogd	arje-zero	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	SVLOGD	RETIRADO
+svok	arje-zero	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	SVOK	RETIRADO
+swapoff	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	SWAPOFF	sigue
+swapon	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	SWAPON	sigue
+switch_root	arje-zero	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	SWITCH_ROOT	INDULTADO: el /init del instalador lo ejecuta (scripts/takana-live-install.sh:375), antes de que arje exista
+sync	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	SYNC	sigue
+sysctl	procps-ng	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	BB_SYSCTL	sigue
+syslogd	hammerd	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	SYSLOGD	RETIRADO
+tac	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	TAC	sigue
+tail	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	TAIL	sigue
+tar	tar	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	TAR	sigue
+taskset	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	TASKSET	sigue
+tcpsvd	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	TCPSVD	RETIRADO
+tee	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	TEE	sigue
+telnet	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	TELNET	RETIRADO
+telnetd	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	TELNETD	RETIRADO
+test	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	TEST	sigue
+tftp	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	TFTP	RETIRADO
+tftpd	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	TFTPD	RETIRADO
+time	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	TIME	RETIRADO
+timeout	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	TIMEOUT	sigue
+top	procps-ng	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	TOP	sigue
+touch	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	TOUCH	sigue
+tr	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	TR	sigue
+traceroute	iputils	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	TRACEROUTE	sigue
+traceroute6	iputils	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	TRACEROUTE6	sigue
+tree	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	TREE	RETIRADO
+true	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	TRUE	sigue
+truncate	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	TRUNCATE	sigue
+ts	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	TS	RETIRADO
+tsort	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	TSORT	sigue
+tty	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	TTY	sigue
+ttysize	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	TTYSIZE	RETIRADO
+tunctl	iproute2	sellada+perfil	NO-drop-in	iproute2 da `ip tuntap`	TUNCTL	sigue
+ubiattach	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	UBIATTACH	RETIRADO
+ubidetach	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	UBIDETACH	RETIRADO
+ubimkvol	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	UBIMKVOL	RETIRADO
+ubirename	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	UBIRENAME	RETIRADO
+ubirmvol	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	UBIRMVOL	RETIRADO
+ubirsvol	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	UBIRSVOL	RETIRADO
+ubiupdatevol	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	UBIUPDATEVOL	RETIRADO
+udhcpc	dhcpcd	sellada+perfil	NO-drop-in	dhcpcd es otro cliente y otro contrato de hooks	UDHCPC	sigue
+udhcpc6	dhcpcd	sellada+perfil	NO-drop-in	ídem	UDHCPC6	sigue
+udhcpd	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	UDHCPD	RETIRADO
+udpsvd	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	UDPSVD	RETIRADO
+uevent	dev-ESCRIBIR	—	n/a	ESCRIBIR/DECIDIR — gestor de /dev (arje o eudev); no hay receta	UEVENT	sigue
+umount	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	UMOUNT	sigue
+uname	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	UNAME	sigue
+unexpand	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	UNEXPAND	sigue
+uniq	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	UNIQ	sigue
+unix2dos	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	UNIX2DOS	RETIRADO
+unlink	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	UNLINK	sigue
+unlzma	xz	sellada+perfil	sin-verificar	cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	UNLZMA	sigue
+unshare	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	UNSHARE	sigue
+unxz	xz	sellada+perfil	sin-verificar	cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	UNXZ	sigue
+unzip	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	UNZIP	RETIRADO
+uptime	procps-ng	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	UPTIME	sigue
+users	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	USERS	sigue
+usleep	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	USLEEP	RETIRADO
+uudecode	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	UUDECODE	RETIRADO
+uuencode	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	UUENCODE	RETIRADO
+vconfig	iproute2	sellada+perfil	NO-drop-in	iproute2 da `ip link ... type vlan`	VCONFIG	sigue
+vi	vim	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	VI	sigue
+vlock	kbd	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	VLOCK	sigue
+volname	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	VOLNAME	RETIRADO
+w	procps-ng	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	W	sigue
+wall	util-linux	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	WALL	sigue
+watch	procps-ng	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	WATCH	sigue
+watchdog	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	WATCHDOG	RETIRADO
+wc	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	WC	sigue
+wget	wget	sellada+perfil	sin-verificar	servidor	WGET	sigue
+which	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	WHICH	RETIRADO
+who	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	WHO	sigue
+whoami	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	WHOAMI	sigue
+whois	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	WHOIS	RETIRADO
+xargs	findutils-xargs	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	XARGS	sigue
+xxd	vim	sellada+perfil	sin-verificar	base,cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	XXD	sigue
+xz	xz	sellada+perfil	sin-verificar	cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	XZ	sigue
+xzcat	xz	sellada+perfil	sin-verificar	cli,escritorio-cosmic,escritorio-gnome,escritorio-kde,escritorio-sway,servidor	XZCAT	sigue
+yes	uutils	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	YES	sigue
+zcat	gzip	sellada SIN perfil	sin-verificar	construida y no viaja en ninguna imagen	ZCAT	sigue
+zcip	BORRAR	—	n/a	BORRAR — sale del defconfig, no se reemplaza	ZCIP	RETIRADO
diff --git a/recipes/busybox.toml b/recipes/busybox.toml
index 34b6a8d6..ca9368f1 100644
--- a/recipes/busybox.toml
+++ b/recipes/busybox.toml
@@ -36,12 +36,31 @@ build = ["make"]
 # El link final asume GNU ld y pasa flags que `zig cc` valida y rechaza (`--warn-common`, `-Map`,
 # `--verbose`); los quitamos de scripts/trylink. Es la incompatibilidad GNU-ld↔zig/lld esperada.
 #
+# ── EL RECORTE (docs/plan-botar-busybox.md, paso 1) ──────────────────────────────────────────────
+# `RETIRADOS` apaga 124 de los 401 applets que `defconfig` instala. No es adelgazar por adelgazar:
+# cada uno o NO SE REEMPLAZA (dpkg, rpm, httpd, telnetd, ubi*, nand*, i2c*: 105) o su función ya la
+# hace otro componente del producto (init/runit -> arje-zero, syslogd/klogd/logread -> hammerd: 19).
+#
+# ⚠ Y 5 se INDULTARON a propósito, porque arje-zero y hammerd reemplazan la FUNCIÓN pero no instalan
+# un COMANDO con ese nombre — son un binario cada uno:
+#   setuidgid    la card de gitea hace `setuidgid gitea` (recipes/gitea.toml:89)
+#   switch_root  el /init del instalador lo ejecuta (scripts/takana-live-install.sh:375)
+#   poweroff/halt/reboot   nada más en el corpus apaga la máquina: arje-zero es PID 1, no una CLI
+#
+# El mapa applet->símbolo sale de las líneas `//applet:` del fuente, NO de poner el nombre en
+# mayúsculas: eso falla en 6 casos medidos (`[`->TEST1, `[[`->TEST2, arch->BB_ARCH, sh->SH_IS_ASH…).
+# Está en la columna `simbolo_kconfig` de docs/state/busybox-applets.tsv.
+#
+# ⚠ Tocar esta lista RE-HASHEA busybox, y con él las 24 recetas que lo declaran build-dep.
+# `scripts/busybox-vigia.py` falla si alguien invoca un applet retirado — sin él esto se deshace
+# solo, porque quitar un applet no rompe nada hasta que arranca una máquina, semanas después.
+#
 # `yes '' | make oldconfig` tras editar .config: sin esto, el compile corre `silentoldconfig`, que
 # al ver opciones NEW (p.ej. WERROR) **prompea interactivamente** leyendo stdin — build
 # no-determinista y flaky (lo destapó la verificación de reproducibilidad de Stage 2). `yes ''`
 # acepta el default de cada NEW ⇒ config resuelta y determinista (busybox 1.36.1 no tiene el target
 # `olddefconfig`, así que usamos `oldconfig` alimentado por `yes`).
-configure = "make CC='zig cc -mcpu=baseline' HOSTCC='zig cc -mcpu=baseline' defconfig && sed -i -e 's/^# CONFIG_STATIC is not set/CONFIG_STATIC=y/' -e 's/^CONFIG_TC=y/# CONFIG_TC is not set/' -e 's/^CONFIG_FEATURE_TC_INGRESS=y/# CONFIG_FEATURE_TC_INGRESS is not set/' .config && yes '' | make CC='zig cc -mcpu=baseline' HOSTCC='zig cc -mcpu=baseline' oldconfig && sed -i -e 's/-Wl,--warn-common//g' -e 's/-Wl,-Map,[^ ]*//g' -e 's/-Wl,--verbose//g' scripts/trylink"
+configure = "make CC='zig cc -mcpu=baseline' HOSTCC='zig cc -mcpu=baseline' defconfig && sed -i -e 's/^# CONFIG_STATIC is not set/CONFIG_STATIC=y/' -e 's/^CONFIG_TC=y/# CONFIG_TC is not set/' -e 's/^CONFIG_FEATURE_TC_INGRESS=y/# CONFIG_FEATURE_TC_INGRESS is not set/' .config && RETIRADOS='ACPID ADJTIMEX ASCII BEEP BOOTCHARTD CHAT CHPST CONSPY CRC32 DEVMEM DHCPRELAY DNSD DNSDOMAINNAME DOS2UNIX DPKG DPKG_DEB ED ENVDIR ENVUIDGID ETHER_WAKE FAKEIDENTD FATATTR FBSET FBSPLASH FDFLUSH FDFORMAT FREERAMDISK FSYNC FTPD FTPGET FTPPUT HDPARM HEXEDIT HTTPD I2CDETECT I2CDUMP I2CGET I2CSET I2CTRANSFER IFPLUGD INETD INIT IOSTAT IPCALC KLOGD LINUXRC LOGGER LOGREAD LPD LPQ LPR LSSCSI LZOP MAKEMIME MICROCOM MIM MPSTAT MT NANDDUMP NANDWRITE NBDCLIENT NMETER PIPE_PROGRESS POPMAILDIR POWERTOP PSCAN RAIDAUTORUN RDEV READAHEAD REFORMIME RESIZE RESUME RPM RPM2CPIO RUNLEVEL RUNSV RUNSVDIR RUN_INIT RX SEEDRNG SENDMAIL SETCONSOLE SETFATTR SETLOGCONS SETSERIAL SHA3SUM SMEMCAP SOFTLIMIT SSL_CLIENT START_STOP_DAEMON SV SVC SVLOGD SVOK SYSLOGD TCPSVD TELNET TELNETD TEST2 TFTP TFTPD TIME TREE TS TTYSIZE UBIATTACH UBIDETACH UBIMKVOL UBIRENAME UBIRMVOL UBIRSVOL UBIUPDATEVOL UDHCPD UDPSVD UNIX2DOS UNZIP USLEEP UUDECODE UUENCODE VOLNAME WATCHDOG WHICH WHOIS ZCIP' && for s in $RETIRADOS; do sed -i \"s/^CONFIG_$s=y$/# CONFIG_$s is not set/\" .config; done && yes '' | make CC='zig cc -mcpu=baseline' HOSTCC='zig cc -mcpu=baseline' oldconfig && sed -i -e 's/-Wl,--warn-common//g' -e 's/-Wl,-Map,[^ ]*//g' -e 's/-Wl,--verbose//g' scripts/trylink"
 compile   = "make -j\"$(nproc)\" CC='zig cc -mcpu=baseline' HOSTCC='zig cc -mcpu=baseline'"
 # busybox instala en CONFIG_PREFIX (no DESTDIR): bin/busybox + symlinks de cada applet.
 install   = "make CC='zig cc -mcpu=baseline' HOSTCC='zig cc -mcpu=baseline' CONFIG_PREFIX=/out install"
diff --git a/scripts/busybox-vigia.py b/scripts/busybox-vigia.py
new file mode 100755
index 00000000..f978322e
--- /dev/null
+++ b/scripts/busybox-vigia.py
@@ -0,0 +1,137 @@
+#!/usr/bin/env python3
+"""Vigía del recorte de busybox (docs/plan-botar-busybox.md, paso 1).
+
+Falla si alguna receta, script o card del repo INVOCA un applet que la receta de busybox
+ya no construye. Sin esto el recorte se deshace solo: nada falla al quitar un applet —
+el fallo aparece en boot, en otra máquina, semanas después.
+
+    scripts/busybox-vigia.py            # exit 1 si hay invocaciones de applets retirados
+    scripts/busybox-vigia.py --list     # imprime los applets retirados y sale 0
+
+La lista de retirados se LEE de recipes/busybox.toml (los `# CONFIG_X is not set` que el
+recorte inyecta), cruzada con el mapa applet->símbolo de docs/state/busybox-applets.tsv.
+Así no hay dos listas que se desincronicen.
+"""
+import re, sys, pathlib, json
+
+RAIZ = pathlib.Path(__file__).resolve().parent.parent
+EXT = {'.sh', '.rs', '.toml', '.py'}
+SALTAR = ('target/', '.git/', 'store/', 'work/', 'docs/')
+
+# Un applet en posición de COMANDO: inicio de línea, o tras | ; & ` $( exec sudo && ||
+PRE = r'(?:^|[|;&`]|\$\(|\bexec\s+|\bsudo\s+|&&\s*|\|\|\s*)[ \t]*'
+POST = r'(?=[ \t;|&)`"\']|$)'
+
+
+def simbolos_retirados():
+    """Los símbolos Kconfig que la receta apaga: la lista RETIRADOS de su fase configure,
+    más cualquier `# CONFIG_X is not set` suelto (el recorte de `tc`, por ejemplo)."""
+    txt = (RAIZ / 'recipes' / 'busybox.toml').read_text()
+    syms = set(re.findall(r'#\s*CONFIG_([A-Z0-9_]+)\s+is\s+not\s+set', txt))
+    for lista in re.findall(r"RETIRADOS='([^']*)'", txt):
+        syms |= set(lista.split())
+    return syms
+
+
+def applets_retirados():
+    """Applets cuyo símbolo Kconfig la receta apaga.
+
+    El mapa applet->símbolo NO se deriva por mayúsculas: sale de la columna
+    `simbolo_kconfig` del TSV, extraída de las líneas `//applet:` del fuente de busybox.
+    Derivarlo estaría MAL en 6 casos medidos: `[`->TEST1, `[[`->TEST2, arch->BB_ARCH,
+    nbd-client->NBDCLIENT, sh->SH_IS_ASH, sysctl->BB_SYSCTL."""
+    syms = simbolos_retirados()
+    if not syms:
+        return set()
+    tsv = RAIZ / 'docs' / 'state' / 'busybox-applets.tsv'
+    filas = [l.split('\t') for l in tsv.read_text().splitlines()[1:] if l.strip()]
+    return {f[0] for f in filas if len(f) > 5 and f[5] in syms}
+
+
+# Palabras del shell, no applets invocables: `[` y `[[` aparecen en todo script bash del HUB
+# (que corre con el bash del hub, no con busybox) y no son llamadas a un applet.
+NO_VIGILAR = {'[', '[['}
+
+
+# Una cadena de Rust/Python sólo se mira si PARECE una línea de comandos. Sin esto, los literales
+# sueltos ("init" como nombre de capacidad, "tree" como variable) ahogan al vigía: 91 hits, 0 reales.
+PARECE_COMANDO = re.compile(r'(?:\bsh\s+-c\b|/bin/|/usr/bin/|/sbin/|&&|\|\||\$\()')
+
+
+def sin_comentarios(txt, suf):
+    """Quita comentarios y, en los lenguajes que no son shell, deja sólo las cadenas que
+    parecen una línea de comandos. Es el 90 % del ruido."""
+    if suf in ('.sh', '.toml'):
+        return re.sub(r'(?m)(?<!\\)#.*$', '', txt)
+    if suf in ('.rs', '.py'):
+        if suf == '.rs':
+            txt = re.sub(r'(?m)//.*$', '', txt)
+        else:
+            txt = re.sub(r'(?m)(?<!\\)#.*$', '', txt)
+        cad = re.findall(r'"((?:[^"\\\n]|\\.)*)"', txt) + re.findall(r"'((?:[^'\\\n]|\\.)*)'", txt)
+        return '\n'.join(c for c in cad if PARECE_COMANDO.search(c))
+    return txt
+
+
+def funciones_definidas(txt):
+    """Nombres definidos como función de shell EN ESE fichero: `ts() {`, `function ts {`."""
+    return set(re.findall(r'(?m)^\s*(?:function\s+)?([A-Za-z_][A-Za-z0-9_-]*)\s*\(\)\s*\{', txt)) | \
+           set(re.findall(r'(?m)^\s*function\s+([A-Za-z_][A-Za-z0-9_-]*)\s*\{', txt))
+
+
+def main():
+    retirados = applets_retirados() - NO_VIGILAR
+    if '--list' in sys.argv:
+        print('\n'.join(sorted(retirados)) or '(la receta no retira ningún applet)')
+        return 0
+    if not retirados:
+        print('busybox-vigia: la receta no retira ningún applet — nada que vigilar')
+        return 0
+    rx = re.compile(PRE + '(' + '|'.join(re.escape(a) for a in
+                    sorted(retirados, key=len, reverse=True)) + ')' + POST, re.M)
+    fallos = []
+    for f in RAIZ.rglob('*'):
+        if not f.is_file() or f.suffix not in EXT:
+            continue
+        rel = str(f.relative_to(RAIZ))
+        if any(rel.startswith(s) or ('/' + s) in rel for s in SALTAR):
+            continue
+        try:
+            crudo = f.read_text(errors='ignore')
+        except OSError:
+            continue
+        if len(crudo) > 900_000:
+            continue
+        propias = funciones_definidas(crudo)
+        txt = sin_comentarios(crudo, f.suffix)
+        lineas = None
+        for m in rx.finditer(txt):
+            ap = m.group(1)
+            if ap in propias:       # una función local del script, no el applet
+                continue
+            antes, despues = txt[:m.start(1)].rstrip(), txt[m.end(1):m.end(1) + 1]
+            # Patrón de `case`, no invocación: `proc|sys|dev|init) continue ;;`
+            if antes.endswith('|') and despues == ')':
+                continue
+            # Comprobación explícita de existencia: quien escribe `command -v X` ya tolera que falte.
+            ini = txt.rfind('\n', 0, m.start(1)) + 1
+            fin = txt.find('\n', m.end(1))
+            if re.search(r'command\s+-v\s+' + re.escape(ap) + r'\b', txt[ini:fin if fin > 0 else len(txt)]):
+                continue
+            if lineas is None:
+                lineas = txt.splitlines()
+            n = txt[:m.start()].count('\n') + 1
+            fallos.append((rel, n, ap, lineas[n - 1].strip()[:100]))
+    print(f'busybox-vigia: {len(retirados)} applets retirados de la receta')
+    if not fallos:
+        print('busybox-vigia: OK — nadie los invoca')
+        return 0
+    print(f'busybox-vigia: FALLO — {len(fallos)} invocaciones de applets retirados\n')
+    for rel, n, ap, linea in fallos:
+        print(f'  {rel}:{n}  [{ap}]  {linea}')
+    print('\nO se indulta el applet en la receta, o se migra el llamador.')
+    return 1
+
+
+if __name__ == '__main__':
+    sys.exit(main())