audit — auditoria de prontidão para produção
Roda uma auditoria completa e gera o Scorecard de Prontidão Comercial (0–100).
npx @vibeharness/cli audit # scorecard no terminal
npx @vibeharness/cli audit --report # + AUDIT_REPORT.md com prompts de correção
npx @vibeharness/cli audit --site # + relatório visual (.vibe/report/index.html)
npx @vibeharness/cli audit --fail-under 80 # exit 1 se score < 80 (para CI)
npx @vibeharness/cli audit --json # findings + fix prompt em JSON
Com MCP instalado
A tool vibe_audit devolve os findings e o fix prompt sanitizado —
a sua IA corrige os próprios achados e re-audita até passar do gate.
Relatório visual (.vibe/report/index.html)

Com --site — ou aceitando o prompt após --report — o VibeHarness gera um
site autocontido (zero dependência, abre com um clique) com:
- :gauge: Score em destaque e meta do gate de lançamento
Cards por seção com barra de progresso
Findings por severidade, com o prompt de correção copiável
O prompt em lote para corrigir todos os críticos de uma vez
Por pedir autorização e escrever em .vibe/report/, o relatório serve como
documentação versionável do status do projeto — commit após cada auditoria
importante e você terá o histórico da evolução da prontidão.
Segurança do relatório
Findings vêm de nomes de arquivo e código (controláveis por um atacante). Todo conteúdo é sanitizado e escapado no HTML — o relatório não executa nada além dos botões de copiar.
As 7 seções do scorecard
| Seção | Máx | O que verifica |
|---|---|---|
| 30 | 19 padrões de segredo, CORS wildcard, cookies sem flags, JWT inseguro, CSRF | |
| 10 | npm audit (high/critical) |
|
| :flag-br: LGPD | 20 | PII em logs, consentimento, páginas obrigatórias, DSR, RLS, hash de senha |
| 10 | god objects, console.logs, sugestões do knip | |
| 10 | migrations versionadas vs db push |
|
| 10 | health check, rate limiting, error handlers | |
| :accessibility: Acessibilidade | 10 | alt ausente, botões/inputs sem label |
AUDIT_REPORT.md: a correção já vem escrita
Cada finding traz um AI Fix Prompt pronto para colar no Cursor, Claude ou Copilot. No final, um prompt em lote cobre todos os findings críticos/altos.
Meta de lançamento
Score ≥ 70 e zero findings críticos. O CI instalado pelo init
bloqueia PRs abaixo do gate automaticamente.
Falsos positivos e triagem
Desde a v0.8 os scanners classificam achados heurísticos antes de pontuar
(triagem real | fixture | env-reference | ci-ephemeral | static-message) e
rebaixam a severidade dos sabidamente benignos — sem nunca ocultá-los:
- Valor que é referência a variável (
API_KEY="$VAR") →env-reference(info) - Placeholder óbvio (
'server-secret','test-key') →fixture(low) - URI de banco local/CI (
postgres:postgres@localhost) →ci-ephemeral(low) - Palavra sensível em mensagem estática de log (sem dado) →
static-message(info)
Para arquivos sabidamente benignos (fixtures com segredos falsos), crie
.vibe/auditignore (sintaxe gitignore). Projetos CLI/biblioteca não são
cobrados por obrigações web (banner de cookies, páginas de privacidade).