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.

Markdown

¿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-msg y pre-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 --strict y --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

  1. Se descarga el binario de la página de descargas: un archivo nativo por sistema (ardumaker-<versión>-linux-x86_64 o ardumaker-<versión>-windows-amd64.exe), con su SHA-256 publicado.
  2. ardumaker login abre el navegador; sin navegador (SSH, contenedores, agentes), ardumaker login --device imprime un enlace y un código corto que se aprueban en la web. La sesión se renueva sola mientras se use.
  3. En CI no hay terminal: con ARDUMAKER_EMAIL y ARDUMAKER_PASSWORD cada comando entra solo; la contraseña no se guarda, solo los tokens.
  4. ardumaker init prepara 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 exceptuarla
  • check no escribe nada, con una excepción: con --staged pone el encabezado de ArduMaker en los archivos que van al commit y los vuelve a agregar (--no-headers solo lo informa).
  • Cada hallazgo trae el identificador de la regla y el valor medido.
  • Códigos de salida: 0 limpio, 1 errores (o avisos con --strict), 2 uso incorrecto.
  • Reusa la última corrida para archivos sin cambios; --no-cache revisa 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: --only y --skip.
  • Un hook se saltea una vez con git commit --no-verify.

¿Qué cambia realmente?

  • check no cambia archivos (salvo encabezados con --staged); fix sí escribe las correcciones automáticas.
  • hooks --install agrega los hooks en .git/hooks; nunca pisa el hook de otra herramienta sin --force.
  • init crea .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 afirmarNo 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

  1. git commit: dispara pre-commit
  2. ardumaker check --staged: reglas sobre lo preparado; pone encabezados
  3. commit-msg: revisa el mensaje del commit
  4. pre-push: revisa antes de subir
  5. Resultado: código 0 sigue; código 1 rechaza
Un commit con los hooks instalados

Resultado esperado

  • Con --json, el resultado sale como un solo objeto JSON en stdout y todo lo demás por stderr: ardumaker check --json | jq funciona sin filtrar nada.
  • ardumaker version dice qué build corre; ardumaker update busca 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ónCausaQué hacer
Código de salida 1Hay errores (o avisos con --strict)Corregir o correr ardumaker fix para lo que se arregla solo
Código de salida 2Uso incorrecto del comandoRevisar ardumaker check --help
Pide iniciar sesiónTodo comando trabaja a nombre de una cuentaardumaker login o login --device
El hook no se instalaYa hay un hook de otra herramientaRevisar ardumaker hooks --status; usar --force solo a conciencia
Una excepción en línea no se aceptaFalta el motivoEscribir - <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.

Funciones relacionadas