Communitygithub.com

Revisor de Código Adversarial

Revisão de código adversarial que quebra a monocultura da auto-revisão. Use quando quiser uma revisão genuinamente crítica de mudanças recentes, antes de mesclar um PR, ou quando suspeitar que o Claude está sendo muito complacente sobre a qualidade do código. Força mudanças de perspectiva por meio de personas de revisor hostis que captam pontos cegos que o modelo mental do autor compartilha com o revisor.

O que é Revisor de Código Adversarial?

Esta skill implementa uma revisão de código adversarial que força mudanças genuínas de perspectiva através de três personas hostis de revisor (Sabotador, Novo Contratado, Auditor de Segurança). Cada persona deve encontrar pelo menos um problema — sem espaço para 'LGTM'. Os achados são classificados por severidade e promovidos quando capturados por múltiplas personas. A skill resolve um dos maiores problemas com revisão de código assistida por IA: o viés de confirmação, onde o modelo compartilha o mesmo modelo mental do autor, resultando em revisões superficiais. É especialmente útil antes de mesclar PRs, após longas sessões de codificação, ou quando o Claude dá uma aprovação fácil. O revisor segue um fluxo de trabalho estruturado: coleta as mudanças, lê o contexto completo, executa cada persona sequencialmente, deduplica e sintetiza os achados, e produz um veredito final (BLOQUEAR / PREOCUPAÇÕES / LIMPO). Inclui tabelas de classificação de severidade, exemplos de invocação e anti-padrões a evitar. Funciona com qualquer plataforma de agente que suporte execução de comandos (Claude Code, Cursor, Codex, etc.) através de comandos slash como /adversarial-review.

Funciona com✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/SamuelChien/mega-skills-collection/tree/HEAD/adversarial-reviewer

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

O que Revisor de Código Adversarial faz?

Descrição

Skill de revisão de código adversarial que força mudanças genuínas de perspectiva através de três personas hostis de revisor (Sabotador, Novo Contratado, Auditor de Segurança). Cada persona DEVE encontrar pelo menos um problema — nenhum "LGTM" escapa. Os achados são classificados por severidade e promovidos quando capturados por múltiplas personas.

Características

  • Três personas adversariais — Sabotador (quebras em produção), Novo Contratado (manutenibilidade), Auditor de Segurança (baseado em OWASP)
  • Achados obrigatórios — Cada persona deve apresentar pelo menos um problema, eliminando revisões de carimbo
  • Promoção de severidade — Problemas capturados por 2+ personas são promovidos um nível de severidade
  • Quebra da armadilha da auto-revisão — Técnicas concretas para superar pontos cegos do modelo mental compartilhado
  • Vereditos estruturados — BLOQUEAR / PREOCUPAÇÕES / LIMPO com orientação clara de mesclagem

Uso

/adversarial-review              # Revisar mudanças staged/unstaged
/adversarial-review --diff HEAD~3  # Revisar últimos 3 commits
/adversarial-review --file src/auth.ts  # Revisar um arquivo específico

Exemplos

Exemplo: Revisando um PR Antes de Mesclar

/adversarial-review --diff main...HEAD

Produz um relatório estruturado com achados de todas as três personas, deduplicados e classificados por severidade, terminando com um veredito BLOQUEAR/PREOCUPAÇÕES/LIMPO.

Problema Que Isso Resolve

Quando o Claude revisa código que ele escreveu (ou que acabou de ler), ele compartilha o mesmo modelo mental, suposições e pontos cegos que o autor. Isso produz revisões "Parece bom para mim" em código que um revisor humano fresco sinalizaria imediatamente. Usuários relatam isso como uma das maiores frustrações com o desenvolvimento assistido por IA.

Esta skill força uma mudança genuína de perspectiva ao exigir que você adote personas adversariais — cada uma com prioridades diferentes, medos diferentes e definições diferentes de "código ruim".

Índice

  1. Início Rápido
  2. Fluxo de Revisão
  3. As Três Personas
  4. Classificação de Severidade
  5. Formato de Saída
  6. Anti-Padrões
  7. Quando Usar Isso

Início Rápido

/adversarial-review              # Revisar mudanças staged/unstaged
/adversarial-review --diff HEAD~3  # Revisar últimos 3 commits
/adversarial-review --file src/auth.ts  # Revisar um arquivo específico

Fluxo de Revisão

Passo 1: Coletar as Mudanças

Determine o que revisar com base na invocação:

  • Sem argumentos: Execute git diff (unstaged) + git diff --cached (staged). Se ambos vazios, execute git diff HEAD~1 (último commit).
  • --diff <ref>: Execute git diff <ref>.
  • --file <path>: Leia o arquivo inteiro. Foque a revisão no arquivo completo, não apenas nas mudanças.

Se nenhuma mudança for encontrada, pare e reporte: "Nada para revisar."

Passo 2: Ler o Contexto Completo

Para cada arquivo no diff:

  1. Leia o arquivo completo (não apenas as linhas alteradas) — bugs se escondem em como o novo código interage com o código existente.
  2. Identifique o propósito da mudança: correção de bug, nova funcionalidade, refatoração, mudança de configuração, teste.
  3. Observe quaisquer convenções do projeto de CLAUDE.md, .editorconfig, configurações de lint ou padrões existentes.

Passo 3: Executar Todas as Três Personas

Execute cada persona sequencialmente. Cada persona DEVE produzir pelo menos um achado. Se uma persona não encontrar nada errado, ela não procurou o suficiente — volte e procure novamente.

IMPORTANTE: Não suavize os achados. Não use meios-termos. Não diga "isso pode estar ok mas..." — ou é um problema ou não é. Seja direto.

Passo 4: Deduplicar e Sintetizar

Depois que todas as três personas relatarem:

  1. Mescle achados duplicados (mesmo problema capturado por múltiplas personas).
  2. Promova achados capturados por 2+ personas para o próximo nível de severidade.
  3. Produza a saída final estruturada.

As Três Personas

Persona 1: O Sabotador

Mentalidade: "Estou tentando quebrar este código em produção."

Prioridades:

  • Entrada que nunca foi validada
  • Estado que pode se tornar inconsistente
  • Acesso concorrente sem sincronização
  • Caminhos de erro que engolem exceções ou retornam resultados enganosos
  • Suposições sobre formato, tamanho ou disponibilidade de dados que podem ser violadas
  • Erros de off-by-one, estouro de inteiros, desreferenciação de null/undefined
  • Vazamentos de recursos (manipuladores de arquivo, conexões, assinaturas, listeners)

Processo de Revisão:

  1. Para cada função/método alterado, pergunte: "Qual é a pior entrada que eu poderia enviar para isso?"
  2. Para cada chamada externa, pergunte: "E se isso falhar, expirar ou retornar lixo?"
  3. Para cada mutação de estado, pergunte: "E se isso executar duas vezes? Concorrentemente? Nunca?"
  4. Para cada condicional, pergunte: "E se nenhum dos ramos estiver correto?"

Você DEVE encontrar pelo menos um problema. Se o código é genuinamente à prova de balas, note a suposição mais frágil da qual ele depende.


Persona 2: O Novo Contratado

Mentalidade: "Acabei de entrar neste time. Preciso entender e modificar este código em 6 meses com zero contexto do autor original."

Prioridades:

  • Nomes que não comunicam intenção (o que dados significa? o que processar() faz?)
  • Lógica que requer ler 3+ outros arquivos para entender
  • Números mágicos, strings mágicas, constantes não explicadas
  • Funções fazendo mais de uma coisa (o nome diz X mas também faz Y e Z)
  • Informação de tipo faltando que força o leitor a rastrear cadeias de chamadas
  • Inconsistência com o estilo de código circundante ou convenções do projeto
  • Testes que testam detalhes de implementação em vez de comportamento
  • Comentários que descrevem o quê (redundante) em vez de porquê (útil)

Processo de Revisão:

  1. Leia cada função alterada como se nunca tivesse visto o código. Consegue entender o que ela faz apenas pelo nome, parâmetros e corpo?
  2. Trace um caminho de código do início ao fim. Quantos arquivos você precisa abrir?
  3. Verifique: um novo contribuidor saberia onde adicionar uma funcionalidade similar?
  4. Procure por "o autor sabia algo que o leitor não saberá" — conhecimento implícito embutido no código.

Você DEVE encontrar pelo menos um problema. Se o código é cristalino, note o ponto mais provável de confusão para um recém-chegado.


Persona 3: O Auditor de Segurança

Mentalidade: "Este código será atacado. Meu trabalho é encontrar a vulnerabilidade antes que um atacante o faça."

Checklist Baseado em OWASP:

CategoriaO Que Procurar
InjeçãoSQL, NoSQL, comando do SO, LDAP — qualquer lugar onde entrada do usuário atinge uma consulta ou comando sem parametrização
Autenticação QuebradaCredenciais hardcoded, verificações de autenticação faltando em novos endpoints, tokens de sessão em URLs ou logs
Exposição de DadosDados sensíveis em mensagens de erro, logs ou respostas de API; criptografia ausente em repouso ou em trânsito
Padrões InsegurosModo de depuração deixado ativo, CORS permissivo, permissões curinga, senhas padrão
Controle de Acesso AusenteIDOR (o usuário A pode acessar dados do usuário B?), verificações de papel ausentes, caminhos de escalonamento de privilégio
Risco de DependênciaNovas dependências com CVEs conhecidas, fixadas em versões vulneráveis, dependências transitórias desnecessárias
SegredosChaves de API, tokens, senhas no código, configuração ou comentários — mesmo que "temporários"

Processo de Revisão:

  1. Identifique cada fronteira de confiança que o código cruza (entrada do usuário, chamadas de API, banco de dados, sistema de arquivos, variáveis de ambiente).
  2. Para cada fronteira: a entrada é validada? A saída é sanitizada? O princípio do menor privilégio é seguido?
  3. Verifique: um usuário autenticado poderia escalar privilégios através desta mudança?
  4. Verifique: esta mudança expõe alguma nova superfície de ataque?

Você DEVE encontrar pelo menos um problema. Se o código não tem superfície de segurança, note a coisa mais próxima de uma suposição relevante para segurança.

Classificação de Severidade

SeveridadeDefiniçãoAção Necessária
CRÍTICOCausará perda de dados, violação de segurança ou interrupção de produção. Deve corrigir antes da mesclagem.Bloquear mesclagem.
AVISOProvavelmente causará bugs em casos extremos, degradará desempenho ou confundirá mantenedores futuros. Deve corrigir antes da mesclagem.Corrigir ou aceitar explicitamente o risco com justificativa.
NOTAProblema de estilo, oportunidade de melhoria menor ou lacuna de documentação. Bom corrigir.Critério do autor.

Regra de promoção: Um achado sinalizado por 2+ personas é promovido um nível (NOTA vira AVISO, AVISO vira CRÍTICO).

Formato de Saída

Estruture sua revisão da seguinte forma:

## Revisão Adversarial: [breve descrição do que foi revisado]

**Escopo:** [arquivos revisados, linhas alteradas, tipo de mudança]
**Veredito:** BLOQUEAR / PREOCUPAÇÕES / LIMPO

### Achados Críticos
[Se houver — estes bloqueiam a mesclagem]

### Avisos
[Itens que devem ser corrigidos]

### Notas
[Itens bons de corrigir]

### Resumo
[2-3 frases: qual é o perfil de risco geral? Qual é a coisa mais importante a corrigir?]

Definições de veredito:

  • BLOQUEAR — 1+ achados CRÍTICOS. Não mesclar até resolvido.
  • PREOCUPAÇÕES — Nenhum crítico mas 2+ avisos. Mesclar por sua conta e risco.
  • LIMPO — Apenas notas. Seguro mesclar.

Anti-Padrões

O Que Esta Skill NÃO É

Anti-PadrãoPor Que Está Errado
"LGTM, nenhum problema encontrado"Se você não encontrou nada, não procurou o suficiente. Toda mudança tem pelo menos um risco, suposição ou oportunidade de melhoria.
Achados apenas cosméticosRelatar apenas espaçamento/formatação enquanto perde uma desreferenciação nula é pior do que nenhuma revisão. Substância primeiro, estilo depois.
Amenizar os golpes"Isso pode ser uma preocupação menor..." — Não. Seja direto. "Isso lançará uma NullPointerException quando usuário for undefined."
Reafirmar o diff"Esta função foi adicionada para lidar com autenticação" não é um achado. O que está ERRADO em como ela lida com autenticação?
Ignorar lacunas de testeCódigo novo sem testes é um achado. Sempre. Testes não são opcionais.
Revisar apenas as linhas alteradasBugs vivem na interação entre código novo e existente. Leia o arquivo completo.

A Armadilha da Auto-Revisão

Você provavelmente está revisando código que acabou de escrever ou de ler. Seu cérebro (pesos) formou o mesmo modelo mental que produziu este código. Você naturalmente achará que parece correto porque corresponde às suas expectativas.

Para quebrar este padrão:

  1. Leia o código de baixo para cima (comece pela última função, vá para trás).
  2. Para cada função, declare seu contrato antes de ler o corpo. O corpo corresponde?
  3. Suponha que toda variável pode ser null/undefined até prova em contrário.
  4. Suponha que toda chamada externa falhará.
  5. Pergunte: "Se eu deletasse esta mudança completamente, o que quebraria?" — se a resposta é "nada", a mudança pode ser desnecessária.

Quando Usar Isso

  • Antes de mesclar qualquer PR — especialmente PRs auto-autorados sem revisor humano
  • Após uma longa sessão de codificação — fadiga produz pontos cegos; esta skill compensa
  • Quando o Claude disse "parece bom" — se você recebeu uma aprovação fácil, execute isso para uma segunda opinião
  • Em código sensível à segurança — autenticação, pagamentos, acesso a dados, endpoints de API
  • Quando algo "parece estranho" — confie no instinto e execute uma revisão adversarial

Referências Cruzadas

  • Relacionado: engineering-team/senior-security — análise de segurança profunda
  • Relacionado: engineering-team/code-reviewer — revisão de qualidade de código geral
  • Complementar: ra-qm-team/ — workflows de gestão de qualidade

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

SamuelChien/mega-skills-collection

Security audit, hardening, threat modeling (STRIDE/PASTA), Red/Blue Team, OWASP checks, code review, incident response, and infrastructure security for any project.

SamuelChien/mega-skills-collection

Arquitecto de Soluciones Principal y Consultor Tecnológico de Andru.ia. Diagnostica y traza la hoja de ruta óptima para proyectos de IA en español.

SamuelChien/mega-skills-collection

Ingeniero de Sistemas de Andru.ia. Diseña, redacta y despliega nuevas habilidades (skills) dentro del repositorio siguiendo el Estándar de Diamante.

SamuelChien/mega-skills-collection

Estratega de Inteligencia de Dominio de Andru.ia. Analiza el nicho específico de un proyecto para inyectar conocimientos, regulaciones y estándares únicos del sector. Actívalo tras definir el nicho.

SamuelChien/mega-skills-collection

2D game development principles. Sprites, tilemaps, physics, camera.

SamuelChien/mega-skills-collection

3D game development principles. Rendering, shaders, physics, cameras.

SamuelChien/mega-skills-collection

Expert in building 3D experiences for the web - Three.js, React Three Fiber, Spline, WebGL, and interactive 3D scenes. Covers product configurators, 3D portfolios, immersive websites, and bringing depth to web experiences.

SamuelChien/mega-skills-collection

Accessibility audit skill for scanning, fixing, and verifying WCAG 2.2 Level A and AA compliance across React, Next.js, Vue, Angular, Svelte, and plain HTML codebases. Use when auditing accessibility, fixing a11y violations, checking color contrast, generating compliance reports, or integrating accessibility checks into CI/CD pipelines.

SamuelChien/mega-skills-collection

Ab Test Analyzer - Auto-activating skill for Data Analytics. Triggers on: ab test analyzer, ab test analyzer Part of the Data Analytics skill category.

SamuelChien/mega-skills-collection

A B Test Config Creator - Auto-activating skill for ML Deployment. Triggers on: a b test config creator, a b test config creator Part of the ML Deployment skill category.

SamuelChien/mega-skills-collection

When the user wants to plan, design, or implement an A/B test or experiment. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "conversion experiment," "statistical significance," or "test this." For tracking implementation, see analytics-tracking.

SamuelChien/mega-skills-collection

Acceptance Criteria Creator - Auto-activating skill for Enterprise Workflows. Triggers on: acceptance criteria creator, acceptance criteria creator Part of the Enterprise Workflows skill category.

SamuelChien/mega-skills-collection

Use when a coding task should be driven end-to-end from issue intake through implementation, review, deployment, and acceptance verification with minimal human re-intervention.

SamuelChien/mega-skills-collection

Accessibility Audit Runner - Auto-activating skill for Frontend Development. Triggers on: accessibility audit runner, accessibility audit runner Part of the Frontend Development skill category.

SamuelChien/mega-skills-collection

You are an accessibility expert specializing in WCAG compliance, inclusive design, and assistive technology compatibility. Conduct audits, identify barriers, and provide remediation guidance.

SamuelChien/mega-skills-collection

Web accessibility patterns for WCAG 2.2 compliance including ARIA, keyboard navigation, screen readers, and testing

SamuelChien/mega-skills-collection

Manage Discord channel access — approve pairings, edit allowlists, set DM/group policy. Use when the user asks to pair, approve someone, check who's allowed, or change policy for the Discord channel.

SamuelChien/mega-skills-collection

Create unified specification packages across Business, Development, and Design teams. Staged elaboration (L0 Vision → L1 Requirements → L2 Team Detail → L3 Acceptance Criteria) to build shared understanding. Does not write code.

SamuelChien/mega-skills-collection

Research a company or person and get actionable sales intel. Works standalone with web search, supercharged when you connect enrichment tools or your CRM. Trigger with "research [company]", "look up [person]", "intel on [prospect]", "who is [name] at [company]", or "tell me about [company]".

SamuelChien/mega-skills-collection

Validate messaging consistency across website, GitHub repos, and local documentation generating read-only discrepancy reports. Use when checking content alignment or finding mixed messaging. Trigger with phrases like "check consistency", "validate documentation", or "audit messaging".

Habilidades Relacionadas