Code checker
Binario `ardumaker check`: reglas del estándar de ArduMaker sobre el repositorio, hooks de Git y salida JSON para CI y agentes de IA.
- Categoría: Inteligencia artificial y agentes
- Estado: Disponible
- Requisitos: Una cuenta de ArduMaker (el programa no tiene modo anónimo); Linux x86-64 o Windows de 64 bits (no hay binario para macOS); Un repositorio Git para los hooks
- Herramientas MCP: Sin herramientas MCP: se usa desde el panel.
¿Qué permite hacer?
- Revisar un repositorio contra las reglas del estándar de ArduMaker (198 en la versión actual), agrupadas en familias con identificador (
FMT,SEC,REPO,LANG,CMT,PY…). - Corregir solo lo que se arregla solo (
ardumaker fix). - Instalar hooks de Git que rechazan un commit o un push con errores:
pre-commit,commit-msgypre-push. - Obtener el resultado en JSON para CI y para agentes, y las reglas completas en un único Markdown para un agente (
ardumaker rules --agents). - Poner y mantener el encabezado de autoría en cada archivo.
¿Cuándo conviene usarlo?
- Antes de cada commit (los hooks lo hacen solos).
- En CI, con
--stricty--json, como modo de entrega. - Cuando un agente de IA escribe código: le da las reglas y una forma objetiva de comprobarlas.
¿Cómo funciona en ArduMaker?
Instalar y entrar
- Se descarga el binario de la página de descargas: un archivo nativo por sistema (
ardumaker-<versión>-linux-x86_64oardumaker-<versión>-windows-amd64.exe), con su SHA-256 publicado. ardumaker loginabre el navegador; sin navegador (SSH, contenedores, agentes),ardumaker login --deviceimprime un enlace y un código corto que se aprueban en la web. La sesión se renueva sola mientras se use.- En CI no hay terminal: con
ARDUMAKER_EMAILyARDUMAKER_PASSWORDcada comando entra solo; la contraseña no se guarda, solo los tokens. ardumaker initprepara la carpeta: Git,.gitignore, encabezados y hooks, y deja el binario en.ardumaker/para que quien clone pueda correr las revisiones.
Revisar
ardumaker check # todo el proyecto
ardumaker check --staged # solo lo que va al commit
ardumaker check --strict --json # avisos cuentan como error; JSON a stdout
ardumaker check --only SEC,REPO # solo esas familias
ardumaker check --range origin/main..HEAD
ardumaker rules FMT-003 # qué mide una regla y cómo exceptuarlacheckno escribe nada, con una excepción: con--stagedpone el encabezado de ArduMaker en los archivos que van al commit y los vuelve a agregar (--no-headerssolo lo informa).- Cada hallazgo trae el identificador de la regla y el valor medido.
- Códigos de salida:
0limpio,1errores (o avisos con--strict),2uso incorrecto. - Reusa la última corrida para archivos sin cambios;
--no-cacherevisa todo otra vez.
Ajustar el estándar
- Por proyecto, en
.ardumaker/.ardumaker.conf: por ejemplo{"rules": {"off": ["CMT-002"]}}, con el motivo escrito al lado. - En una línea, con motivo obligatorio:
#+estandar: ignore+ la regla (PY-002) +- <motivo>. - Por corrida:
--onlyy--skip. - Un hook se saltea una vez con
git commit --no-verify.
¿Qué cambia realmente?
checkno cambia archivos (salvo encabezados con--staged);fixsí escribe las correcciones automáticas.hooks --installagrega los hooks en.git/hooks; nunca pisa el hook de otra herramienta sin--force.initcrea.ardumaker/con el binario y la configuración, y lo deja en el repositorio.- En la cuenta: una sesión de tipo binario por equipo, visible y revocable desde
/me.
Qué se puede afirmar con el resultado
El resultado de check es una medición contra reglas concretas, no un juicio sobre el código. Un agente que lo informa a una persona tiene que decir exactamente eso:
| Se puede afirmar | No se puede afirmar |
|---|---|
«ardumaker check --strict terminó con código 0 en esta versión y con esta configuración» | «El código es correcto» o «funciona»: el checker no ejecuta el programa |
| «Hay N hallazgos: SEC-xxx en tal archivo y línea, con tal valor medido» | «Las pruebas pasan»: puede exigir que una prueba exista, no que pase |
«Las familias revisadas fueron estas» (si se usó --only o --skip) | «No hay vulnerabilidades»: las reglas de seguridad buscan patrones (secretos, logs sensibles, configuraciones peligrosas), no auditan |
«Con --staged, lo que va en este commit cumple» | «El repositorio entero cumple», si solo se revisó lo preparado o un rango |
| «Estas reglas están apagadas o exceptuadas, con estos motivos» | «La arquitectura es la adecuada»: no reemplaza el diseño ni la revisión de una persona |
Esquema
- git commit: dispara pre-commit
- ardumaker check --staged: reglas sobre lo preparado; pone encabezados
- commit-msg: revisa el mensaje del commit
- pre-push: revisa antes de subir
- Resultado: código 0 sigue; código 1 rechaza
Resultado esperado
- Con
--json, el resultado sale como un solo objeto JSON en stdout y todo lo demás por stderr:ardumaker check --json | jqfunciona sin filtrar nada. ardumaker versiondice qué build corre;ardumaker updatebusca e instala una versión nueva, comparando tamaño y SHA-256 antes de reemplazar.- Si el programa falla por dentro, envía un informe de falla a ArduMaker y muestra el número de reporte para citarlo.
Errores y resolución
| Situación | Causa | Qué hacer |
|---|---|---|
| Código de salida 1 | Hay errores (o avisos con --strict) | Corregir o correr ardumaker fix para lo que se arregla solo |
| Código de salida 2 | Uso incorrecto del comando | Revisar ardumaker check --help |
| Pide iniciar sesión | Todo comando trabaja a nombre de una cuenta | ardumaker login o login --device |
| El hook no se instala | Ya hay un hook de otra herramienta | Revisar ardumaker hooks --status; usar --force solo a conciencia |
| Una excepción en línea no se acepta | Falta el motivo | Escribir - <motivo> después del identificador |
Relación con MCP
No hay herramientas MCP para el checker: corre en la máquina donde está el código, como binario. Un agente lo usa desde su terminal con ardumaker check --json y ardumaker rules --agents. Más información en /checker.