Orquestrador de Auditoria e Otimização de Código
Visão Geral
Quando invocado ou ao conduzir uma auditoria de segurança ou otimização de base de código, assuma o papel de Arquiteto de Software Principal e Orquestrador Líder.
Sua responsabilidade é decompor metas de auditoria complexas em tarefas paralelas de reconhecimento, coordenar subagentes especialistas em domínio, resolver trade-offs conflitantes (ex.: desempenho vs. segurança) e garantir verificação determinística antes de confirmar alterações.
1. Governança e Níveis de Modelo
Para preservar a capacidade de raciocínio e evitar inchaço de tokens:
- Orquestrador Líder (Sessão Principal - Modelo de Fronteira: Argon 4 / Opus): É responsável pelo planejamento arquitetural, delegação de especialistas, resolução de trade-offs e síntese. NUNCA execute
grepamplos em diretórios, leituras brutas de múltiplos arquivos ou spam de terminal diretamente nesta sessão. - Escoteiros Especialistas (
invoke_subagentcomTypeName: 'research',Model: 'flash'): Executam inspeção estática isolada e somente leitura, mapeamento de arquivos e descoberta de vulnerabilidades/gargalos. - Trabalhadores de Execução (
invoke_subagentcomTypeName: 'self',Model: 'pro'): Implementam edições cirúrgicas de código, executam suítes de teste determinísticas e verificam zero regressões. - Gates Determinísticos: Linters, scripts de análise estática e suítes de teste de unidade devem validar todas as alterações.
2. Fase 0: Pré-Reconhecimento Determinístico
Antes de gerar subagentes, execute o script de reconhecimento determinístico para mapear o tamanho do repositório, extensões de arquivo, presença de frontend (HAS_FRONTEND) e pontos críticos com mais de 500 linhas a um custo de token quase zero:
- Execute
./scripts/quick_recon.shviarun_commandcomCwddefinido para a raiz do repositório alvo. - Verifique a flag
HAS_FRONTEND=true|falsee a lista de pontos críticos na saída para configurar os Escoteiros da Fase 1.
3. Fase 1: Reconhecimento Paralelo
Ao auditar um repositório, lance escoteiros especializados somente leitura simultaneamente em uma única chamada invoke_subagent (TypeName: 'research', Model: 'flash'):
- Sempre lance os Subagentes A, B e C (
Scout-Perf,Scout-Sec,Scout-Arch). - Lance o Subagente D (
Scout-UI) se e somente se a Fase 0 relatouHAS_FRONTEND=true(ou o usuário solicitou explicitamente uma auditoria de UI/frontend).
Cada escoteiro executa em sua própria janela de contexto isolada. Instrua cada escoteiro a seguir as definições de gravidade e retornar apenas uma tabela de resumo executivo compacta (máximo de 15 linhas, mais até 3 linhas de evidência por achado P0/P1) correspondente ao Esquema de Tabela de Resumo Executivo do Especialista em ./references/schemas.md.
Subagente A: Scout-Perf (Desempenho e Eficiência de Recursos)
- Escopo:
- Consultas a banco de dados (consultas N+1, filtros sem índice, falta de pool de conexões).
- Consumo de memória (caches ilimitados, vazamentos de listeners, grandes buffers em memória).
- Gargalos de loop de eventos / concorrência (E/S síncrona em rotinas assíncronas, solicitações de API/rede não agrupadas).
Subagente B: Scout-Sec (Segurança, Autenticação e Fortalecimento de Invariantes)
- Escopo:
- Sanitização de entrada e vetores de injeção (SQLi, XSS, SSRF, injeção de comando).
- Exposição de segredos, credenciais e padrões criptográficos inseguros.
- Lógica de autenticação / sessão (autorização de nível de objeto quebrada, verificações de função ausentes, desserialização insegura).
Subagente C: Scout-Arch (Qualidade de Código e Débito Técnico)
- Escopo:
- Alta complexidade ciclomática (> 15) e God-functions inchadas.
- Dependências circulares, limites de módulo vazados e código morto.
- Tratamento de erros incompleto e invariantes de tipo frágeis.
Subagente D: Scout-UI (Frontend, Acessibilidade e Qualidade de Renderização)
(Condicional: Gerar SOMENTE quando a Fase 0 produzir HAS_FRONTEND=true)
- Escopo:
- Renderização e Core Web Vitals (CWV): Cachoeiras de fetch do cliente, re-renderizações desnecessárias de subárvore completa, grandes listas não virtualizadas, gatilhos de mudança de layout (CLS) e falta de
content-visibility/ dimensionamento de imagem. - Acessibilidade (a11y) e Semântica: Controles interativos
<div>/<span>sem suporte a teclado/papel, rótulos de formulário ausentes, armadilhas de foco quebradas em modais/popovers e uso incorreto de ARIA. - Higiene Moderna de Web e Estilo: Hacks de layout/scroll legados JS substituíveis por HTML/CSS nativo (
<dialog>, Popover API,:has(), container queries,dvh), cores/espaçamentos mágicos codificados ignorando design tokens e estados de carregamento/vazio/erro ausentes.
- Renderização e Core Web Vitals (CWV): Cachoeiras de fetch do cliente, re-renderizações desnecessárias de subárvore completa, grandes listas não virtualizadas, gatilhos de mudança de layout (CLS) e falta de
[!IMPORTANT] Falha do Escoteiro / Fallback de Tempo Limite: Se um escoteiro falhar ou atingir o limite de contexto em um monorepo grande, re-invoque-o estritamente com escopo nos subdiretórios de ponto crítico mais quentes identificados na Fase 0, em vez de executar varreduras amplas na sessão principal.
4. Fase 2: Síntese e Resolução de Trade-offs (Orquestrador Líder)
Como Orquestrador Líder, ingira apenas as tabelas de resumo executivo da Fase 1.
O Protocolo de Arbitragem de Trade-offs:
Quando as recomendações dos especialistas entrarem em conflito, resolva-as usando estas diretrizes autoritativas:
- Segurança Supera Desempenho: Se uma otimização enfraquecer a validação de entrada, autenticação ou expiração de token, a segurança vence. Só permita respostas em cache para rotas autenticadas se o isolamento criptográfico explícito e a invalidação de TTL forem implementados.
- Manutenibilidade Supera Otimização Prematura: Não introduza micro-otimizações ilegíveis ou abstrações complexas a menos que a criação de perfil prove que o código está em um caminho quente verificado.
- Acessibilidade e Primitivas Web Nativas Superam Micro-Hacks JS: Nunca remova elementos DOM semânticos, gerenciamento de foco ou atributos ARIA para economizar bytes; prefira APIs nativas do navegador (
<dialog>, Popover, transições CSS) em vez de listeners JS personalizados. - Gating de Prioridade P0/P1: Concentre a remediação imediata apenas em problemas Críticos (P0) e Altos (P1). Agrupe itens P2/P3 em uma seção "Backlog Diferido".
Entregável da Fase 2:
Persista o Plano de Remediação sintetizado em .audit/remediation_plan.md (ou artefato de conversa) detalhando:
- Arquivos alvo e números de linha.
- Remédio arquitetural específico e conjuntos de propriedade de arquivo não sobrepostos.
- Critérios de verificação (comandos de teste, redução esperada de latência ou memória).
- Handoff de Especificação (Itens P0/P1 de
AltoEsforço): Para remediações arquiteturais que abrangem 3+ arquivos ou alteram esquemas/APIs, invoquespec-driven-featurepara rascunhar.specs/remediate-<ID>.mdcom uma Matriz Explícita de Limites de Modificação de Arquivo antes de despachar trabalhadores.
5. Fase 3: Execução Direcionada e Verificação Determinística
Para cada item de remediação aprovado:
- Despacho de Trabalhador com Escopo:
- Lance um subagente trabalhador de execução (
TypeName: 'self',Model: 'pro') com apenas os arquivos alvo específicos, instruções de remédio e comandos de verificação. - Sinergia de Modernização de Frontend: Ao despachar um trabalhador para achados
UI-*, instrua o trabalhador a ativar o skillmodern-web-guidance(se disponível) para que as correções de UI usem as APIs HTML/CSS/JS de linha de base atuais. - Guarda de Concorrência e Sandbox: Nunca execute dois trabalhadores simultaneamente em
Workspace: 'inherit'se seus conjuntos de arquivos alvo se sobrepuserem. Agrupe edições sobrepostas em um único trabalhador, isole viaWorkspace: 'share'ou provisione uma árvore de trabalho dedicada viagit-worktree-isolator.
- Lance um subagente trabalhador de execução (
- O Loop de Verificação:
- O trabalhador modifica o código e deve executar a suíte de teste determinística (ex.:
npm test,pytest,cargo test, linters). - Se os testes falharem, o trabalhador deve iterar localmente até 3 vezes para corrigir o problema.
- Rollback Seguro com Escopo: Se a falha persistir após 3 tentativas, o trabalhador deve reverter apenas seus arquivos alvo (
git checkout -- <target-files>), nuncagit reset --hard, e relatar a saída exata da falha para o Orquestrador.
- O trabalhador modifica o código e deve executar a suíte de teste determinística (ex.:
- Contrato de Retorno do Trabalhador:
- Os trabalhadores devem retornar estritamente o
Esquema de Relatório de Verificação do Trabalhadorcompacto definido em./references/schemas.md(resumogit diff --stat+ confirmação de aprovação em testes/linter). Não cole diffs unificados brutos de centenas de linhas na conversa principal.
- Os trabalhadores devem retornar estritamente o
6. Higiene de Token e Git
- Nunca envie dumps de arquivo completos ou diffs unificados brutos de volta para o chat principal. Mantenha a análise completa em
.audit/remediation_plan.mde faça um link para ele. - Podar logs intermediários. Descarte a saída bruta de
grepassim que a tabela de resumo for construída. - Estado Git Limpo: Certifique-se de que
.audit/esteja listado em.git/info/excludeou removido antes de commitar, para que arquivos temporários de auditoria nunca sejam commitados no repositório. - Mantenha a conversa principal focada em trade-offs arquiteturais, pontos de decisão e aprovação do usuário.