Code checker

Binário `ardumaker check`: regras do padrão da ArduMaker sobre o repositório, hooks de Git e saída JSON para CI e agentes de IA.

  • Categoria: Inteligência artificial e agentes
  • Estado: Disponível
  • Requisitos: Uma conta ArduMaker (o programa não tem modo anónimo); Linux x86-64 ou Windows de 64 bits (não há binário para macOS); Um repositório Git para os hooks
  • Ferramentas MCP: Sem ferramentas MCP: usa-se a partir do painel.

Markdown

O que permite fazer?

  • Rever um repositório contra as regras do padrão da ArduMaker (198 na versão atual), agrupadas em famílias com identificador (FMT, SEC, REPO, LANG, CMT, PY…).
  • Corrigir só o que se corrige sozinho (ardumaker fix).
  • Instalar hooks de Git que rejeitam um commit ou um push com erros: pre-commit, commit-msg e pre-push.
  • Obter o resultado em JSON para CI e para agentes, e as regras completas em um único Markdown para um agente (ardumaker rules --agents).
  • Pôr e manter o cabeçalho de autoria em cada arquivo.

Quando convém usar?

  • Antes de cada commit (os hooks fazem-no sozinhos).
  • Em CI, com --strict e --json, como modo de entrega.
  • Quando um agente de IA escreve código: dá-lhe as regras e uma forma objetiva de as verificar.

Como funciona na ArduMaker?

Instalar e entrar

  1. Descarrega-se o binário da página de transferências: um arquivo nativo por sistema (ardumaker-<versão>-linux-x86_64 ou ardumaker-<versão>-windows-amd64.exe), com o seu SHA-256 publicado.
  2. ardumaker login abre o navegador; sem navegador (SSH, contêineres, agentes), ardumaker login --device imprime um link e um código curto que se aprovam na web. A sessão renova-se sozinha enquanto for usada.
  3. Em CI não há terminal: com ARDUMAKER_EMAIL e ARDUMAKER_PASSWORD cada comando entra sozinho; a senha não é guardada, só os tokens.
  4. ardumaker init prepara a pasta: Git, .gitignore, cabeçalhos e hooks, e deixa o binário em .ardumaker/ para que quem clonar possa correr as revisões.

Rever

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 não escreve nada, com uma exceção: com --staged põe o cabeçalho da ArduMaker nos arquivos que vão para o commit e volta a adicioná-los (--no-headers só o informa).
  • Cada achado traz o identificador da regra e o valor medido.
  • Códigos de saída: 0 limpo, 1 erros (ou avisos com --strict), 2 uso incorreto.
  • Reutiliza a última execução para arquivos sem alterações; --no-cache revê tudo outra vez.

Ajustar o padrão

  • Por projeto, em .ardumaker/.ardumaker.conf: por exemplo {"rules": {"off": ["CMT-002"]}}, com o motivo escrito ao lado.
  • Em uma linha, com motivo obrigatório: # + estandar: ignore + a regra (PY-002) + - <motivo>.
  • Por execução: --only e --skip.
  • Um hook salta-se uma vez com git commit --no-verify.

O que muda realmente?

  • check não altera arquivos (salvo cabeçalhos com --staged); fix escreve as correções automáticas.
  • hooks --install acrescenta os hooks em .git/hooks; nunca substitui o hook de outra ferramenta sem --force.
  • init cria .ardumaker/ com o binário e a configuração, e deixa-o no repositório.
  • Na conta: uma sessão de tipo binário por máquina, visível e revogável a partir de /me.

O que se pode afirmar com o resultado

O resultado do check é uma medição contra regras concretas, não um juízo sobre o código. Um agente que o comunica a uma pessoa tem de dizer exatamente isso:

Pode afirmar-seNão pode afirmar-se
“ardumaker check --strict terminou com código 0 nesta versão e com esta configuração”“O código está correto” ou “funciona”: o checker não executa o programa
“Há N achados: SEC-xxx em tal arquivo e linha, com tal valor medido”“Os testes passam”: pode exigir que um teste exista, não que passe
“As famílias revistas foram estas” (se se usou --only ou --skip)“Não há vulnerabilidades”: as regras de segurança procuram padrões (segredos, logs sensíveis, configurações perigosas), não auditam
“Com --staged, o que vai neste commit cumpre”“O repositório inteiro cumpre”, se só se reviu o preparado ou um intervalo
“Estas regras estão desligadas ou excecionadas, com estes motivos”“A arquitetura é a adequada”: não substitui o desenho nem a revisão de uma pessoa

Esquema

  1. git commit: dispara o pre-commit
  2. ardumaker check --staged: regras sobre o preparado; põe cabeçalhos
  3. commit-msg: revê a mensagem do commit
  4. pre-push: revê antes de enviar
  5. Resultado: código 0 segue; código 1 rejeita
Um commit com os hooks instalados

Resultado esperado

  • Com --json, o resultado sai como um único objeto JSON no stdout e tudo o resto pelo stderr: ardumaker check --json | jq funciona sem filtrar nada.
  • ardumaker version diz que build corre; ardumaker update procura e instala uma versão nova, comparando tamanho e SHA-256 antes de substituir.
  • Se o programa falhar por dentro, envia um relatório de falha à ArduMaker e mostra o número do relatório para o citar.

Erros e resolução

SituaçãoCausaO que fazer
Código de saída 1Há erros (ou avisos com --strict)Corrigir ou correr ardumaker fix para o que se corrige sozinho
Código de saída 2Uso incorreto do comandoRever ardumaker check --help
Pede para iniciar sessãoTodo o comando trabalha em nome de uma contaardumaker login ou login --device
O hook não é instaladoJá existe um hook de outra ferramentaRever ardumaker hooks --status; usar --force só conscientemente
Uma exceção em linha não é aceiteFalta o motivoEscrever - <motivo> depois do identificador

Relação com MCP

Não há ferramentas MCP para o checker: corre como binário na máquina onde está o código. Um agente usa-o a partir do seu terminal com ardumaker check --json e ardumaker rules --agents. Mais informação em /checker.

Funcionalidades relacionadas