archgate check
Executa todas as verificações automatizadas de conformidade com ADRs no codebase.
archgate check [options] [files...]Carrega cada ADR com rules: true no frontmatter, executa o arquivo .rules.ts complementar e reporta violações com caminhos de arquivo e números de linha. Quando caminhos de arquivo são fornecidos como argumentos posicionais, apenas ADRs cujos padrões files correspondem a esses arquivos são executados.
| Opção | Descrição |
|---|---|
--staged | Verificar apenas arquivos no git stage (útil para hooks de pre-commit) |
--json | Saída JSON legível por máquina |
--ci | Formato de anotação do GitHub Actions |
--adr <id> | Verificar apenas regras de um ADR específico |
--verbose | Mostrar regras aprovadas e informações de tempo |
Argumentos
Seção intitulada “Argumentos”| Argumento | Descrição |
|---|---|
[files...] | Caminhos de arquivo opcionais para limitar as verificações. Apenas ADRs cujos padrões files correspondem serão executados. Suporta pipe via stdin. |
Códigos de saída
Seção intitulada “Códigos de saída”| Código | Significado |
|---|---|
| 0 | Todas as regras passaram. Nenhuma violação encontrada. |
| 1 | Uma ou mais violações detectadas. |
| 2 | Erro na execução de regra (ex.: regra malformada, bloqueio do scanner de segurança). |
Exemplos
Seção intitulada “Exemplos”Verificar o projeto inteiro:
archgate checkVerificar apenas arquivos no stage antes de commitar:
archgate check --stagedVerificar um único ADR:
archgate check --adr ARCH-001Verificar arquivos específicos (apenas ADRs correspondentes são executados):
archgate check src/foo.ts src/bar.tsPipe do git (verificar apenas arquivos alterados):
git diff --name-only | archgate check --jsonObter saída JSON para integração com CI:
archgate check --jsonObter anotações do GitHub Actions:
archgate check --ciFormato da saída JSON
Seção intitulada “Formato da saída JSON”Quando --json é usado, a saída é um único objeto JSON:
{ "pass": false, "total": 4, "passed": 3, "failed": 1, "warnings": 0, "errors": 1, "infos": 0, "ruleErrors": 0, "truncated": false, "results": [ { "adrId": "ARCH-001", "ruleId": "register-function-export", "description": "Command file must export a register*Command function", "status": "fail", "totalViolations": 1, "shownViolations": 1, "violations": [ { "message": "Command file must export a register*Command function", "file": "src/commands/broken.ts", "line": 1, "endLine": 1, "endColumn": 42, "severity": "error" } ], "durationMs": 12 } ], "durationMs": 42}Campos de violação
Seção intitulada “Campos de violação”| Campo | Tipo | Descrição |
|---|---|---|
message | string | Descrição da violação |
file | string? | Caminho relativo do arquivo |
line | number? | Linha inicial (base 1) |
endLine | number? | Linha final (base 1) — para destaque preciso no editor |
endColumn | number? | Coluna final (base 0) — para destaque preciso no editor |
fix | string? | Correção sugerida (apenas orientação) |
severity | string | "error", "warning" ou "info" |
Arquivos de regra bloqueados
Seção intitulada “Arquivos de regra bloqueados”Quando um arquivo de regra é bloqueado pelo scanner de segurança (ex.: usa Bun.spawn()) ou um arquivo .rules.ts complementar está ausente, o resultado aparece na saída JSON com status: "error" e ruleId: "security-scan". As violações incluem o arquivo e a linha exata do código bloqueado (ou a linha rules: true no ADR para arquivos complementares ausentes).