Los desarrolladores que alternan entre varios repositorios se enfrentan a un problema cotidiano: cada proyecto usa una pila tecnológica distinta y exige recordar comandos diferentes para instalar dependencias, compilar, formatear, ejecutar pruebas o desplegar. Memorizar todos esos comandos y sus matices (si era yarn, npm o pnpm, qué argumentos pasar, qué secuencia aplicar para correr migraciones) resulta poco práctico y propenso a errores. La solución pasa por crear una capa de abstracción propia —un "task runner"— que permita invocar esas tareas con un mismo nombre corto, como run build o run test, sin importar la pila subyacente.
El artículo repasa las opciones más habituales para lograrlo. La más inmediata es un script de bash colocado en la raíz del proyecto: define funciones (install, build, test, format) y un case que despacha según el argumento recibido; es flexible, ubicuo y fácil de ampliar, aunque su sintaxis puede resultar engorrosa. Una alternativa clásica es Make, herramienta de los años setenta presente casi en cualquier entorno: basta con un Makefile que declare reglas como make install o make test. Ofrece autocompletado por tabulador en zsh y fish de forma nativa, pero exige indentación con tabuladores, requiere declarar objetivos "phony" para evitar colisiones con archivos del mismo nombre y arrastra particularidades heredadas de su origen como compilador.
Una opción más moderna es just, creada por Casey Rodarmor, que toma prestada la sintaxis de Make —un justfile con bloques install, build, test y format— pero elimina la necesidad de objetivos phony y añade comodidades útiles para un task runner. Su principal inconveniente es que no viene preinstalado y requiere distribución adicional. En todos los casos, el objetivo es el mismo: sustituir comandos largos y dependientes del contexto por una interfaz uniforme y memorizable.
