Argus
Estrutura de QA com IA que captura erros de JS, falhas de acessibilidade, regressões visuais e problemas de segurança via Chrome DevTools MCP — sem necessidade de scripts de teste.
Documentação
Argus — A Camada de QA para Desenvolvimento Assistido por IA
Seu agente de IA escreve o código. A Argus verifica o que ele realmente construiu.
Uma linha na sua configuração MCP dá ao Claude (ou a qualquer agente MCP) um motor real de auditoria Chrome — 67 categorias de auditoria · 149 tipos de achados · zero arquivos de teste para escrever ou manter. E com Aegis, o que ele encontra nunca vaza seus segredos para o LLM.
Início Rápido · O Ciclo de Correção · O Que Ele Detecta · Sua Stack · Ferramentas MCP · Configuração Completa · Referência
Por Que a Argus Existe
Agentes de IA agora escrevem a maior parte do código — e julgam seu próprio trabalho por se compila e parece pronto, não pelo que realmente acontece no navegador. A exceção não capturada no terceiro clique. O formulário que envia credenciais via HTTP. O LCP de 4 segundos. O botão que sumiu no modo escuro. O endpoint de API martelado em um loop infinito.
A Argus fecha essa lacuna. Ela dirige um Chrome real (via Chrome DevTools Protocol) contra seu aplicativo rodando localmente e entrega ao agente — ou a você — um relatório de bugs estruturado e classificado por severidade. O agente corrige; a Argus verifica novamente; o ciclo fecha antes de o código sair da sua máquina.
| 🧪 Sem arquivos de teste, nunca | A Argus audita o aplicativo renderizado — DOM, console, rede, pixels — não seu código-fonte. Nada para escrever, nada para manter quando o agente refatora |
| 🤖 Feito para o ciclo do agente | O único motor de QA que o Claude pode chamar nativamente via MCP. Auditar → corrigir → re-auditar sem sair da conversa |
| 🔒 Seguro para agentes por padrão | Aegis: achados são redigidos em cada fronteira de saída — segredos, PII e detalhes de exploração nunca chegam à janela de contexto do LLM (OWASP LLM02, ativado por padrão, falha-fechada) |
| 🧰 Também uma ferramenta de QA normal | Auditorias em lote via CLI, gate de PR no GitHub Action, relatórios Slack com capturas de tela, diffs dev-vs-staging, modo de observação — com ou sem agente |
Início Rápido
Sem instalação.
npxbusca a Argus na primeira execução.
1 — Adicione duas linhas ao .mcp.json na raiz do seu projeto:
{
"mcpServers": {
"chrome-devtools": { "command": "npx", "args": ["-y", "chrome-devtools-mcp@latest"] },
"argus": { "command": "npx", "args": ["-y", "argusqa-os"] }
}
}
Ou via CLI do Claude Code:
claude mcp add chrome-devtools -- npx -y chrome-devtools-mcp@latest
claude mcp add argus -- npx -y argusqa-os
2 — Inicie o Chrome (detecta automaticamente seu Chrome, define os flags corretos):
npx -y -p argusqa-os argus-chrome
Prefere iniciar o Chrome manualmente? (comandos macOS / Windows / Linux)
# macOS
open -a "Google Chrome" --args --remote-debugging-port=9222 --headless=new
# Windows (PowerShell)
& "C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222 --headless=new --no-sandbox --disable-gpu --user-data-dir="$env:TEMP\chrome-argus"
# Linux
google-chrome --remote-debugging-port=9222 --headless=new --no-sandbox
3 — Pergunte ao seu agente:
Run argus_audit on http://localhost:3000
É isso. Os achados voltam estruturados e classificados por severidade — na conversa, no Slack ou como um report.html local. Algo errado? npx -y -p argusqa-os argus-doctor diagnostica sua configuração em um comando.
O Ciclo de Correção
É assim que a Argus parece dentro de uma sessão de codificação agêntica:
You: Build me a checkout page with a card form.
Agent: [writes the code, dev server renders it]
You: Run argus_audit on http://localhost:3000/checkout
Argus: ● 2 critical · 3 warnings
● uncaught TypeError in checkout.js (visible on submit)
● form posts over HTTP — security_no_https
▲ card inputs missing labels + autocomplete (a11y/WCAG)
▲ LCP 4.1s — hero image unoptimized
▲ duplicate POST /api/cart ×7 — likely render loop
Agent: [fixes all five]
You: Run argus_get_context
Argus: ✓ resolved: 5 · persisting: 0 · new: 0
argus_get_context faz diff com o snapshot anterior, para que o agente saiba exatamente o que corrigiu, o que quebrou e o que resta — sem reler paredes de saída.
"Mas meu agente já consegue dirigir um navegador…" — consegue. Dirigir não é julgar. Um MCP de navegador bruto (Playwright MCP, chrome-devtools-mcp puro) dá ao agente mãos e olhos; o agente então precisa re-derivar o que verificar a cada sessão, queimando contexto em exploração de log de console. A Argus é a camada de julgamento por cima: 149 tipos de achados codificados com limites, política de severidade, baselines entre execuções, filtragem de flakiness, deduplicação, dicas de causa-raiz — retornados em uma chamada, redigidos por padrão.
O Que a Argus Detecta
32 motores de análise, 149 tipos distintos de problemas, zero manutenção de arquivos de teste:
| Categoria | O que detecta |
|---|---|
| JavaScript | Exceções não capturadas, rejeições de promise não tratadas, console.error em rotas críticas |
| Rede e API | HTTP 5xx, falhas de autenticação 401/403, chamadas de API duplicadas (loops infinitos), erros 4xx, links quebrados |
| Performance | LCP > 2500ms, CLS > 0.1, TTFB > 800ms, APIs lentas > 1s/3s, payloads > 500KB/2MB, bundles JS > 500KB |
| Acessibilidade | axe-core (80+ regras WCAG), simulação de daltonismo, ARIA ausente, foco de teclado, hierarquia de títulos |
| SEO | Meta description ausente, tags OG, canonical, viewport, h1 |
| Segurança | Tokens de autenticação em localStorage/URL, eval(), CSP/X-Frame-Options ausentes, violações de CSP, SRI ausente em scripts externos, exposição de source maps, redirecionamentos abertos, CVEs npm |
| CSS | Overrides em cascata, vazamento de estilos de componentes, regras não utilizadas, conflitos de estilo inline do React |
| Conteúdo | null/undefined como texto visível, lorem ipsum, imagens quebradas, listas de dados vazias |
| Responsivo | Overflow horizontal em 375px/768px, alvos de toque < 44×44px |
| Memória | Nós DOM destacados via snapshot de heap V8, crescimento de heap entre navegações |
| Visual | Regressão de captura de tela em nível de pixel via pixelmatch (≥0,1% aviso, ≥5% crítico) |
| Figma | Fidelidade design-para-implementação — 13 tipos de propriedades (cor, espaçamento, tipografia, sombras, etc.) |
| Formulários | required, autocomplete, aria-describedby ausentes; inputs sem rótulo |
| Fontes | FOIT, FOUT, fallbacks ausentes, carregamentos lentos > 1s, formatos abaixo do ideal |
| Movimento | Violações de prefers-reduced-motion, autoplay sem controles de pausa |
| Tema | Lacunas no modo escuro — variáveis CSS estáticas, tratamento de prefers-color-scheme ausente |
| Baseline de rede | Novas requisições, requisições ausentes, regressões de código de status vs baseline HAR salvo |
| Diff de ambiente | Dev vs staging — diff de capturas de tela, mudanças de DOM, regressões de console/rede |
E cada achado é pós-processado com:
| Pós-processador | O que adiciona |
|---|---|
| Filtragem inteligente de baseline | Achados que oscilam entre execuções são marcados como noisy e rebaixados para info — heurísticas puras entre execuções, sem chamadas de API (ARGUS_NOISE_FILTER=0 para desativar) |
| Vinculação de causa-raiz | Novos achados são anotados com os commits git recentes e arquivos mais prováveis de tê-los causado (ARGUS_ROOT_CAUSE=0 para desativar) |
Todos os achados são classificados como
critical/warning/infoe roteados para o canal Slack certo — ou exibidos no relatório HTML local. Para tabelas de severidade por achado e métodos de detecção, veja REFERENCE.md.
Funciona com Sua Stack
A Argus audita a saída renderizada, não seu código-fonte — então é agnóstica de framework por construção. Se roda no Chrome, a Argus pode auditar:
| Frameworks SPA | React, Vue, Angular, Svelte/SvelteKit, Solid, Preact, Astro… |
| Meta-frameworks | Next.js, Nuxt, Remix, Gatsby — além de extras cientes de framework: descoberta de rotas Next.js e React Router, mapeamento de PR por grafo de importação ("este componente mudou → audite apenas as rotas que o renderizam"), consciência de caminhos monorepo |
| Renderizado no servidor | Rails, Django, Laravel, Flask, Spring, PHP — qualquer coisa que sirva HTML a um navegador |
| Estático / sem framework | HTML/CSS/JS puro, sites de documentação, landing pages |
| APIs (via página) | Validação de schema de resposta, verificações de status/tempo em cada requisição que a página faz |
Limites honestos: renderização apenas em Chrome/Chromium (sem diferenças de motor Safari/Firefox), apenas web (sem apps nativos mobile/desktop), e serviços de backend são verificados através do tráfego que a página gera — não como suítes de teste de API independentes.
Confidencialidade — Fronteira de Saída Aegis
Ativado por padrão. A Argus audita seu aplicativo em busca de segredos e vulnerabilidades — então seus achados são exatamente os dados que você menos quer que saiam da sua máquina. Aegis os redige em cada fronteira externa antes de cruzarem. Para equipes que adotam agentes de IA, esta é a diferença entre "usamos uma ferramenta de QA com IA" e "podemos dizer ao nosso líder de segurança exatamente por que é seguro."
Um achado enviado a um destino externo — uma resposta de ferramenta MCP (que cai na janela de contexto do agente chamador e transita para o provedor de modelo desse agente), uma mensagem Slack, um comentário de PR GitHub + suas anotações ::error, o relatório HTML hospedado/CI, ou logs de CI — é reduzido a uma projeção de necessidade de conhecimento: um achado sensível cruza como seu type + route + severity + um marcador 🔒, e nunca seu payload bruto (message, evidence, corpos de requisição/resposta, cabeçalhos, cookies, stack). URLs são projetadas com a query string removida (tokens se escondem lá). Um achado benigno mantém sua mensagem — mas essa mensagem ainda é limpa de qualquer segredo ou PII acidentalmente embutido.
| Princípio | Comportamento |
|---|---|
| Fidelidade local preservada | O relatório JSON em disco e o HTML aberto localmente mantêm 100% do detalhe — a redação só remove detalhe no caminho de saída |
| Falha-fechada | Em qualquer erro de classificador ou formato de achado desconhecido, a Aegis redige mais, nunca menos |
| Negar por padrão | Apenas uma allowlist explícita de campos seguros cruza; um novo campo não vaza nada até ser deliberadamente colocado na allowlist |
| Detecção em 5 camadas | Regras de categoria ∪ 13 regex de segredos ∪ raridade estatística (entropia / eficiência de token) ∪ 7 regras de PII validadas por Luhn ∪ reforço de contexto |
| Opt-out | ARGUS_REDACT_SENSITIVE=0 → saída byte-idêntica à pré-Aegis |
Isso implementa as mitigações do OWASP LLM02:2025 — Divulgação de Informações Sensíveis (minimização de dados, redação, filtragem de saída negar-por-padrão) nas próprias fronteiras da Argus. Um cofre opcional de reidratação local (ARGUS_REDACT_VAULT=1) pode emitir tokens reversíveis e sem informação para artefatos estáveis em diff — re-inflate localmente com npm run report:rehydrate. A mudança completa de comportamento está documentada em CHANGELOG.md.
Ferramentas MCP
Pergunte ao Claude (ou a qualquer cliente MCP) — sem necessidade de terminal:
| Ferramenta | Descrição |
|---|---|
argus_audit | Passagem rápida — JS, rede, acessibilidade, SEO, segurança, CSS, conteúdo |
argus_audit_full | Passagem profunda — adiciona Lighthouse, verificações responsivas, detecção de vazamento de memória, bugs de estado hover |
argus_compare | Diff dev vs staging — capturas de tela, delta de achados, regressões de ambiente |
argus_get_context | Captura tudo que está quebrado na aba aberta — com diff resolved / new / persisting vs o último snapshot (o ciclo de correção) |
argus_watch_snapshot | Snapshot da aba aberta sem navegar (preserva estado de autenticação/formulário) |
argus_last_report | Retorna o último relatório JSON sem re-executar |
argus_design_audit | URL Figma → 13 tipos de achados de design-token (cor, espaçamento, tipografia, sombras, etc.) |
argus_visual_diff | Comparação de baseline de captura de tela. Passe updateBaseline: true para redefinir. |
argus_pr_validate | Busca diff de PR GitHub → mapeia arquivos alterados para rotas afetadas → auditoria direcionada → decisão de bloqueio ciente de baseline (bloqueia em achados que o PR introduz) + comentário de PR idempotente + Check Run → { blocked, findings, baseline, reporting } |
Toda resposta de ferramenta é projetada através da fronteira de saída Aegis antes de chegar ao agente, e carrega um aviso opcional
redaction({ redacted, total }) quando detalhe sensível foi retido.
Exemplos de prompts:
Run argus_audit on http://localhost:3000/checkout
Run argus_audit_full on http://localhost:3000/dashboard
Run argus_compare
Run argus_get_context
Testado em Batalha, Não em Vibração
A correção da própria Argus é aplicada da mesma forma que ela audita a sua:
- 998/998 asserções rígidas em um harness de integração de 171 blocos dirigindo Chrome real contra 64 páginas fixture — incluindo controles negativos por categoria (zero sobre-disparo), schemas de resposta dourados para todas as 9 ferramentas MCP, e um canário de deriva upstream que detecta mudanças de API do chrome-devtools-mcp no momento do bump de versão
- 562 testes unitários sem Chrome (Vitest) + fuzzing de parser baseado em propriedades
npm audit: 0 vulnerabilidades · CodeQL + Dependabot em todo PR · Socket.dev: 100/100/100 em vulnerabilidade/qualidade/licença- Arquivos de sessão e tokens capturados gravados
0600, somente dono
Configuração Completa
Pré-requisitos
| Requisito | Versão |
|---|---|
| Node.js | v20.19+ |
| Chrome | Stable (desktop ou headless) |
| Claude Code | Última versão (npm install -g @anthropic-ai/claude-code) — ou qualquer cliente MCP |
| Workspace do Slack | Opcional — omita para o modo local report.html |
Opção A — Servidor MCP (recomendado para usuários do Claude Code)
Nenhuma instalação local necessária. Use o Quick Start acima e adicione sua URL de destino:
# .env in your project root
TARGET_DEV_URL=http://localhost:3000
TARGET_STAGING_URL=https://staging.example.com # optional — enables argus_compare
Opcional — Notificações do Slack:
- api.slack.com/apps → Create New App → nomeie-o como BugBot
- OAuth & Permissions → Bot Token Scopes:
chat:write,files:write,files:read - Instale no workspace → copie o token
xoxb-... - Crie os canais
#bugs-critical,#bugs-warnings,#bugs-digeste execute/invite @BugBotem cada um
SLACK_BOT_TOKEN=xoxb-...
SLACK_CHANNEL_CRITICAL=C0000000000
SLACK_CHANNEL_WARNINGS=C0000000001
SLACK_CHANNEL_DIGEST=C0000000002
Sem Slack: o Argus gera automaticamente
reports/report.htmle o abre no seu navegador — zero configuração extra.
Opção B — Pacote npm (CI / dependência de desenvolvimento)
npm install --save-dev argusqa-os
npx argus init # interactive wizard — detects framework, discovers routes, writes .env
npm run crawl # run after Chrome is started
Opção C — Clone o Repositório (contribuidores / código-fonte completo)
git clone https://github.com/ironclawdevs27/Argus.git
cd Argus
npm install
npm run init # interactive setup wizard
Configuração manual (pule o assistente):
cp .env.example .env
# Fill in TARGET_DEV_URL and optional Slack tokens
Em seguida, configure suas rotas em src/config/targets.js:
export const routes = [
{ path: '/', name: 'Home', critical: true, waitFor: 'main' },
{ path: '/login', name: 'Login', critical: true, waitFor: 'form' },
{ path: '/dashboard', name: 'Dashboard', critical: true, waitFor: '[data-testid="dashboard"]' },
{ path: '/settings', name: 'Settings', critical: false, waitFor: null },
];
critical: true— erros nesta rota vão para#bugs-criticalwaitFor— seletor CSS que o Argus aguarda antes de capturar (sinaliza página pronta)
Comandos CLI
npm run chrome # Launch Chrome with --remote-debugging-port=9222 (auto-detects binary)
npm run doctor # Pre-flight check: Chrome reachable, .mcp.json valid, .env has TARGET_DEV_URL
npm run crawl # Batch audit of all configured routes
npm run compare # Dev vs staging diff (CSS-only if no staging URL)
npm run watch # Passive monitor — polls open Chrome tab every 1s
npm run report:html # Generate reports/report.html from last JSON audit
npm run report:pdf # Export HTML report to A4 PDF (requires: npm install puppeteer)
npm run server # Start Slack slash-command server (port 3001)
npm run init # Interactive setup wizard
npm run test:unit # 562 unit tests — no Chrome required
npm run test:harness # 171-block correctness harness — requires Chrome
npm run test:harness:log # same, but tees full output to harness-results.txt
npm run test:coverage # merged unit + harness coverage gate (requires Chrome)
Modo de observação — monitoramento ao vivo enquanto você (ou seu agente) desenvolve:
# Terminal 1: start your app
npm run dev
# Terminal 2: start Argus watcher
npm run watch
# Ctrl+C → stops monitor and writes reports/report.html
Comando de barra do Slack (sob demanda, de qualquer canal):
/argus-retest https://staging.example.com/checkout
Para expor o servidor via túnel: cloudflared tunnel --url http://localhost:3001 (gratuito, sem necessidade de conta). Defina a URL resultante como Request URL no Slack App → Slash Commands.
GitHub Actions CI — Portão de PR
O Argus é fornecido como uma GitHub Action composta: em cada PR, ele mapeia o diff para as rotas afetadas, audita-as e bloqueia o merge apenas em descobertas que o PR introduz (ciente da linha de base) — com um comentário de PR idempotente e um Check Run.
Adicione aos segredos do seu repositório (Settings → Secrets → Actions):
| Segredo | Obrigatório | Valor |
|---|---|---|
TARGET_STAGING_URL | Sim | Sua URL base de staging |
SLACK_BOT_TOKEN | Não | Token xoxb-... (omita para modo somente HTML) |
SLACK_CHANNEL_CRITICAL | Não* | ID do canal (necessário quando o Slack está configurado) |
SLACK_CHANNEL_WARNINGS | Não* | ID do canal |
SLACK_CHANNEL_DIGEST | Não* | ID do canal |
GITHUB_TOKEN | Não | Injetado automaticamente pelo Actions para comentários de PR + Check Runs |
O workflow incluído é executado no push para main, diariamente às 6h UTC e em acionamento manual. Se problemas críticos forem encontrados, o pipeline falha.
Variáveis de Ambiente
Referência completa (clique para expandir)
| Variável | Padrão | Descrição |
|---|---|---|
TARGET_DEV_URL | — | Obrigatório. URL base do seu ambiente de desenvolvimento |
TARGET_STAGING_URL | — | URL de staging — habilita argus_compare; omita para modo somente CSS |
SLACK_BOT_TOKEN | — | Token xoxb-.... Omita para o modo local report.html |
SLACK_SIGNING_SECRET | — | Para verificação do comando de barra /argus-retest |
SLACK_CHANNEL_CRITICAL | — | ID do canal para bugs críticos |
SLACK_CHANNEL_WARNINGS | — | ID do canal para avisos |
SLACK_CHANNEL_DIGEST | — | ID do canal para informações / resumo diário |
PORT | 3001 | Porta do servidor do comando de barra do Slack |
REPORT_OUTPUT_DIR | ./reports | Onde gravar relatórios JSON |
ARGUS_CONCURRENCY | 1 | Clientes MCP paralelos para rastreamento de rotas |
ARGUS_LOG_LEVEL | info | trace / debug / info / warn / error |
ARGUS_LOG_PRETTY | — | Defina 1 para logs legíveis em desenvolvimento |
ARGUS_RETRY_ATTEMPTS | 3 | Máximo de tentativas para chamadas MCP navigate/fill |
ARGUS_WATCH_INTERVAL_MS | 1000 | Intervalo de sondagem do modo de observação (ms) |
ARGUS_WATCH_UI_PORT | 3002 | Porta do painel web do modo de observação |
ARGUS_SOURCE_DIR | — | Caminho da fonte do aplicativo — habilita análise de variáveis de ambiente / feature flags / rotas mortas e mapeamento de rotas de PR ciente do framework (grafo de importação: um componente/folha de estilo alterado → apenas as rotas que o renderizam) |
ARGUS_ENV_FILE | — | Caminho para o .env do aplicativo para referência cruzada do código |
SCREENSHOT_DIFF_THRESHOLD | 0.5 | Limite de % de diff de pixels para comparação de ambientes |
GITHUB_TOKEN | — | Para comentários de PR + Check Runs |
GITHUB_REPOSITORY | — | Formato owner/repo |
GITHUB_PR_NUMBER | — | Injetado automaticamente pelo Actions a partir do contexto do PR |
ARGUS_CRITICAL_THRESHOLD | 1 | Novos críticos antes de bloquear o merge (0 = nunca bloquear) |
ARGUS_DIFF_IMAGE_URL | — | URL da imagem de diff visual para incorporar no comentário do PR |
OTEL_EXPORTER_OTLP_ENDPOINT | — | Coletor OTLP para Jaeger / Grafana Tempo |
FIGMA_API_TOKEN | — | Obrigatório para argus_design_audit |
FONT_SLOW_MS | 1000 | Limite de carregamento lento de fontes web (ms) |
A11Y_CONTRAST_AA | 4.5 | Contraste mínimo WCAG AA para simulação de CVD |
ARGUS_REDACT_SENSITIVE | ON | Aegis redação de saída. 0 desativa (saída pré-Aegis byte-idêntica) |
ARGUS_REDACT_MODE | mask | Estilo de trecho correspondente: mask / label / hash / token / drop |
ARGUS_REDACT_HTML | off local / ON no CI | 1 redige também o relatório HTML hospedado |
ARGUS_REDACT_VAULT | OFF | 1 (com ARGUS_REDACT_MODE=token) gera tokens reversíveis AEGIS_<hmac16> em um cofre local 0600; re-inflate com npm run report:rehydrate |
Solução de Problemas
Primeiro recurso para qualquer problema:
npx -y -p argusqa-os argus-doctor— verifica a acessibilidade do Chrome, a validade da configuração MCP e as chaves de ambiente necessárias, e imprime a correção exata para cada falha.
Chrome DevTools MCP não conectando
claude mcp add chrome-devtools -- npx chrome-devtools-mcp@latest
# Restart Claude Code after adding
Mensagens do Slack não sendo postadas
- O token deve começar com
xoxb-(nãoxoxp-,xoxe-ouxapp-) - Execute
/invite @BugBotem cada canal - Escopos necessários:
chat:write,files:write,files:read
Capturas de tela em branco
- A página não estabilizou — aumente
pageSettleMsemsrc/config/targets.jsou adicione um seletorwaitForpara a rota
/argus-retest retorna "dispatch_failed"
- A URL do túnel mudou — atualize a Request URL no Slack App → Slash Commands e reinstale
A análise de CSS retorna resultados vazios
- A página pode estar atrás de autenticação — certifique-se de estar logado na instância do Chrome que o Argus está controlando
O pipeline de CI falha imediatamente
- O Chrome pode não iniciar rápido o suficiente — aumente
sleep 3parasleep 5em .github/workflows/argus.yml
Como o Argus Difere do Playwright / Cypress
O Argus é uma camada complementar, não um substituto para testes unitários ou E2E:
| Playwright / Cypress | MCP de navegador bruto (Playwright MCP, chrome-devtools-mcp) | Argus | |
|---|---|---|---|
| Propósito | Testar sua lógica e contratos de API | Dar ao agente mãos e olhos de navegador | Dar ao agente (e a você) julgamento sobre o que está quebrado |
| O que você obtém | Passou / falhou em scripts que você escreveu | Acesso bruto a DOM/console/rede | 149 tipos de descobertas codificados, severidades, linhas de base, filtragem de ruído, dicas de causa raiz |
| Manutenção | Arquivos de teste, para sempre | Re-prompt das verificações a cada sessão | Zero — audita o aplicativo renderizado |
| Quando executa | Na sua suíte de testes | Quando o agente pensa em olhar | Sob demanda, no CI como portão de PR, ou continuamente (modo de observação) |
| Saída | Passou / falhou | O que o agente notou | Relatórios estruturados com capturas de tela — Slack, HTML, comentários de PR — segredos redigidos |
Limitações Conhecidas
Todas as 998 asserções do harness passam (998/998) — atualmente não há restrições conhecidas de camada MCP ou Chrome. O Lighthouse executa em headless (após a correção do argumento lighthouse_audit); as asserções suaves restantes (traços de performance, crescimento de heap dependente de GC) são promovidas a asserções duras contadas apenas na faixa semanal estrita-suave (harness-strict.yml) via ARGUS_HARNESS_STRICT_SOFT. Limites de escopo: apenas Chrome/Chromium, apenas aplicativos web — veja Works With Your Stack.
Argus Hospedado — Membros Fundadores
Quer auditorias sem executar Chrome ou npm — com histórico, tendências, agendamentos e um painel de equipe? Argus Cloud está em acesso antecipado para membros fundadores: US$ 19/mês, bloqueado para sempre (regular US$ 29).
Torne-se um membro fundador → argus-qa.com
O mecanismo de código aberto nesta página permanece MIT e totalmente funcional, sempre — o nível hospedado vende conveniência e memória, nunca detecções.
Estrutura do Projeto
src/
argus.js — single-page audit entry point
mcp-server.js — 9 MCP tools exposed to Claude / any MCP client
orchestration/ — crawl loop, Slack/GitHub dispatch, env comparison, watch mode
utils/ — 32 analysis engines (accessibility, security, performance, PDF, recording, etc.)
adapters/browser.js — CdpBrowserAdapter — wraps all chrome-devtools-mcp calls
config/targets.js — routes, thresholds, auth steps
cli/
init.js — argus init interactive setup wizard
chrome-launcher.js — npm run chrome / argus-chrome — launches Chrome with correct flags
doctor.js — npm run doctor / argus-doctor — pre-flight checks
pr-validate.js — headless CI entry point for GitHub Actions
test-harness/ — 171-block correctness harness, 998 hard assertions, 64 fixture pages
test/unit/ — 562 Vitest unit tests (no Chrome required)
landing/ — Product landing page (React 19 + Vite + Tailwind)
Mapa completo do código-fonte → CLAUDE.md · Referência MCP/DSL → SKILL.md
Contribuindo
Contribuições são bem-vindas — páginas de fixture, novas categorias de detecção, descoberta de rotas de framework, documentação. Comece com CONTRIBUTING.md.
- Faça um fork do repositório e crie uma branch
npm run test:unit— verifique sem Chrome (562 testes)npm run test:harness— cobertura completa de integração (requer Chrome na porta 9222)- Abra um PR — o Argus audita a si mesmo via o workflow de CI
Licença
MIT © ironclawdevs27
Argus Panoptes — o gigante que tudo vê da mitologia grega, que nunca dormia.