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.
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-msgepre-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
--stricte--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
- Descarrega-se o binário da página de transferências: um arquivo nativo por sistema (
ardumaker-<versão>-linux-x86_64ouardumaker-<versão>-windows-amd64.exe), com o seu SHA-256 publicado. ardumaker loginabre o navegador; sem navegador (SSH, contêineres, agentes),ardumaker login --deviceimprime um link e um código curto que se aprovam na web. A sessão renova-se sozinha enquanto for usada.- Em CI não há terminal: com
ARDUMAKER_EMAILeARDUMAKER_PASSWORDcada comando entra sozinho; a senha não é guardada, só os tokens. ardumaker initprepara 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 exceptuarlachecknão escreve nada, com uma exceção: com--stagedpõe o cabeçalho da ArduMaker nos arquivos que vão para o commit e volta a adicioná-los (--no-headerssó o informa).- Cada achado traz o identificador da regra e o valor medido.
- Códigos de saída:
0limpo,1erros (ou avisos com--strict),2uso incorreto. - Reutiliza a última execução para arquivos sem alterações;
--no-cacherevê 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:
--onlye--skip. - Um hook salta-se uma vez com
git commit --no-verify.
O que muda realmente?
checknão altera arquivos (salvo cabeçalhos com--staged);fixescreve as correções automáticas.hooks --installacrescenta os hooks em.git/hooks; nunca substitui o hook de outra ferramenta sem--force.initcria.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-se | Nã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
- git commit: dispara o pre-commit
- ardumaker check --staged: regras sobre o preparado; põe cabeçalhos
- commit-msg: revê a mensagem do commit
- pre-push: revê antes de enviar
- Resultado: código 0 segue; código 1 rejeita
Resultado esperado
- Com
--json, o resultado sai como um único objeto JSON no stdout e tudo o resto pelo stderr:ardumaker check --json | jqfunciona sem filtrar nada. ardumaker versiondiz que build corre;ardumaker updateprocura 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ção | Causa | O que fazer |
|---|---|---|
| Código de saída 1 | Há erros (ou avisos com --strict) | Corrigir ou correr ardumaker fix para o que se corrige sozinho |
| Código de saída 2 | Uso incorreto do comando | Rever ardumaker check --help |
| Pede para iniciar sessão | Todo o comando trabalha em nome de uma conta | ardumaker login ou login --device |
| O hook não é instalado | Já existe um hook de outra ferramenta | Rever ardumaker hooks --status; usar --force só conscientemente |
| Uma exceção em linha não é aceite | Falta o motivo | Escrever - <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.