Sobre el proyecto
magus es un sistema de construcción y orquestador de tareas diseñado para monorepos políglotas. Se distribuye como un único binario Go enlazado estáticamente, sin necesidad de instalar una segunda toolchain. Los targets se escriben en Buzz, un pequeño lenguaje de scripting tipado integrado en el binario, y se declaran como funciones exportadas en un archivo `magusfile.buzz`.
Las características clave incluyen:
- **Conjuntos afectados**: Un grafo de dependencias de proyectos y declaraciones de entradas a nivel de archivo permite que `magus affected <target>` ejecute solo los proyectos que un cambio puede alcanzar, en orden de dependencias. Esto reduce el trabajo de CI a lo que un diff realmente toca.
- **Caché direccionada por contenido**: Cada target declara sus entradas y salidas. magus calcula el hash de las entradas y reproduce las salidas almacenadas (SHA-256) cuando se solicita el mismo trabajo nuevamente, produciendo resultados idénticos byte por byte.
- **Grafo de conocimiento**: Se construye a partir de fuentes declaradas (magusfile, documentación, índice SCIP, historial de git, CODEOWNERS), no se infiere mediante un indexador externo. Responde consultas como `magus query "kind=target lint"`, `magus explain <node>` y `magus refs <symbol>`. El grafo es un subproducto de ser la fuente de verdad para las construcciones.
- **Un solo vocabulario**: Targets, spells (adaptadores de lenguaje), charms (modificadores como `rw` para lectura-escritura) y ops (invocaciones de herramientas) se nombran una vez y se reutilizan en CLI, configuración y grafo.
- **Interfaz de terminal**: Una banda de progreso fijada en la parte inferior del terminal que no borra el scrollback, con árboles de fallos agrupados por proyecto y un selector de búsqueda en el grafo. Todas las superficies se degradan a texto plano sin terminal.
- **Consola de navegador**: Aplicaciones web opcionales de solo lectura (panel, explorador de grafos, visor de registros, rastro de actividad, diff) servidas por el daemon a través de loopback, sin interfaz de usuario integrada en el binario. Los datos nunca salen de la máquina.
- **Integración con agentes**: Habilidades instalables para Codex y Claude Code, además de un índice de enrutamiento `MAGUS.md` comprometido, permiten que los agentes de IA consulten el grafo y ejecuten targets de manera determinista.
Arquitectura: Un daemon (`magus server start`) expone un socket Unix para el despacho local de CLI y un servidor HTTP para MCP, API de solo lectura y servicios Connect, todo detrás de una cadena de guardas (verificación anti-DNS-rebind, token portador, CORS). Los endpoints de salud no están protegidos. Un listener LAN con límite de tiempo puede compartir una consola de solo lectura con un teléfono.
No objetivos: sin ejecución remota, sin gestión de toolchains, sin sandbox hermético (desactivado por defecto, sin capa de kernel en macOS), sin aislamiento de contenedores y un ecosistema pequeño (proyecto joven, mayormente trabajo de una persona).
Para comenzar: Instala mediante un script curl (revísalo antes de ejecutarlo), luego escribe un `magusfile.buzz` con funciones exportadas para build, test, lint, etc. Comandos como `magus ls`, `magus run test`, `magus affected ci` y `magus query` proporcionan respuestas inmediatas.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.