协作头脑风暴
brainstorming
在实现前澄清需求、探索设计选择,并形成清晰的开发方向。
adversarial-reviewer【开发与工程】Revisão de código adversarial que quebra a monocultura de auto-revisão. Use quando quiser uma revisão genuinamente crítica de mudanças recentes, antes de fazer merge de um PR, ou quando suspeitar que o Claude está sendo condescendente demais sobre a qualidade do código. Força mudanças de perspectiva por meio de personas de revisores hostis que captur…
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
name: "adversarial-reviewer" description: "Revisão de código adversarial que quebra a monocultura de auto-revisão. Use quando quiser uma revisão genuinamente crítica de mudanças recentes, antes de fazer merge de um PR, ou quando suspeitar que o Claude está sendo condescendente demais sobre a qualidade do código. Força mudanças de perspectiva por meio de personas de revisores hostis que capturam pontos cegos que o modelo mental do autor compartilha com o revisor." tier: "STANDARD" category: "Engineering / Code Quality" dependencies: "None (prompt-only, no external tools required)" version: "1.0.0" license: "MIT" agents:
Skill de revisão de código adversarial que força mudanças genuínas de perspectiva por meio de três personas de revisores hostis (Sabotador, Novo Contratado, Auditor de Segurança). Cada persona DEVE encontrar pelo menos um problema — nenhum "LGTM" passa. Os resultados são classificados por severidade e promovidos quando capturados por múltiplas personas.
/adversarial-review # Revisar mudanças staged/unstaged
/adversarial-review --diff HEAD~3 # Revisar os últimos 3 commits
/adversarial-review --file src/auth.ts # Revisar um arquivo específico
/adversarial-review --diff main...HEAD
Produz um relatório estruturado com resultados de todas as três personas, deduplicados e classificados por severidade, terminando com um veredicto BLOQUEAR/PREOCUPAÇÕES/LIMPO.
Quando o Claude revisa código que escreveu (ou que acabou de ler), ele compartilha o mesmo modelo mental, as mesmas suposições e os mesmos pontos cegos que o autor. Isso produz revisões do tipo "Parece bom para mim" em código que um revisor humano novo sinalizaria imediatamente. Usuários relatam isso como uma das maiores frustrações no 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."
/adversarial-review # Revisar mudanças staged/unstaged
/adversarial-review --diff HEAD~3 # Revisar os últimos 3 commits
/adversarial-review --file src/auth.ts # Revisar um arquivo específico
Determinar o que revisar com base na invocação:
git diff (unstaged) + git diff --cached (staged). Se ambos vazios, executar git diff HEAD~1 (último commit).--diff <ref>: Executar git diff <ref>.--file <path>: Ler o arquivo inteiro. Focar a revisão no arquivo completo, não apenas nas mudanças.Se nenhuma mudança for encontrada, parar e reportar: "Nada para revisar."
Para cada arquivo no diff:
Executar cada persona sequencialmente. Cada persona DEVE produzir pelo menos um resultado. Se uma persona não encontrar nada errado, ela não olhou com atenção suficiente — volte e olhe novamente.
IMPORTANTE: Não suavize os resultados. Não hesite. Não diga "isso pode estar bem, mas..." — ou é um problema ou não é. Seja direto.
Após todas as três personas terem reportado:
Mentalidade: "Estou tentando quebrar este código em produção."
Prioridades:
Processo de Revisão:
Você DEVE encontrar pelo menos um problema. Se o código é genuinamente à prova de balas, anote a suposição mais frágil da qual ele depende.
Mentalidade: "Acabei de entrar nesta equipe. Preciso entender e modificar este código em 6 meses sem nenhum contexto do autor original."
Prioridades:
data significa? o que process() faz?)Processo de Revisão:
Você DEVE encontrar pelo menos um problema. Se o código é cristalino, anote o ponto mais provável de confusão para um recém-chegado.
Mentalidade: "Este código será atacado. Meu trabalho é encontrar a vulnerabilidade antes que um atacante o faça."
Lista de Verificação Baseada em OWASP:
| Categoria | O que Procurar |
|---|---|
| Injeção | SQL, NoSQL, comando OS, LDAP — qualquer lugar onde a entrada do usuário chega a uma consulta ou comando sem parametrização |
| Auth Quebrada | Credenciais hardcoded, verificações de auth ausentes em novos endpoints, tokens de sessão em URLs ou logs |
| Exposição de Dados | Dados sensíveis em mensagens de erro, logs ou respostas de API; criptografia ausente em repouso ou em trânsito |
| Padrões Inseguros | Modo de depuração ativado, CORS permissivo, permissões curinga, senhas padrão |
| Controle de Acesso Ausente | IDOR (usuário A pode acessar dados do usuário B?), verificações de papel ausentes, caminhos de escalada de privilégio |
| Risco de Dependência | Novas dependências com CVEs conhecidos, fixadas em versões vulneráveis, dependências transitivas desnecessárias |
| Segredos | Chaves de API, tokens, senhas no código, configuração ou comentários — mesmo os "temporários" |
Processo de Revisão:
Você DEVE encontrar pelo menos um problema. Se o código não tem superfície de segurança, anote a coisa mais próxima de uma suposição relevante à segurança.
| Severidade | Definição | Ação Obrigatória |
|---|---|---|
| CRÍTICA | Causará perda de dados, violação de segurança ou interrupção em produção. Deve corrigir antes do merge. | Bloquear merge. |
| AVISO | Provavelmente causará bugs em casos extremos, degradará o desempenho ou confundirá futuros mantenedores. Deve corrigir antes do merge. | Corrigir ou aceitar explicitamente o risco com justificativa. |
| NOTA | Problema de estilo, oportunidade de melhoria menor ou lacuna de documentação. Bom corrigir. | Critério do autor. |
Regra de promoção: Um resultado sinalizado por 2+ personas é promovido um nível (NOTA torna-se AVISO, AVISO torna-se CRÍTICA).
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]
**Veredicto:** BLOQUEAR / PREOCUPAÇÕES / LIMPO
### Resultados Críticos
[Se houver — estes bloqueiam o merge]
### Avisos
[Itens a corrigir]
### Notas
[Itens bons de corrigir]
### Resumo
[2-3 frases: qual é o perfil geral de risco? Qual é a coisa mais importante a corrigir?]
Definições de veredicto:
| Anti-Padrão | Por que Está Errado |
|---|---|
| "LGTM, nenhum problema encontrado" | Se você não encontrou nada, não olhou com atenção suficiente. Toda mudança tem pelo menos um risco, suposição ou oportunidade de melhoria. |
| Resultados apenas cosméticos | Reportar apenas espaços em branco/formatação enquanto perde uma referência nula é pior do que nenhuma revisão. Substância primeiro, estilo depois. |
| Suavizar resultados | "Isso poderia possivelmente ser uma preocupação menor..." — Não. Seja direto. "Isso lançará um NullPointerException quando user for undefined." |
| Restating o diff | "Esta função foi adicionada para lidar com autenticação" não é um resultado. O que está ERRADO com a forma como ela lida com autenticação? |
| Ignorar lacunas de testes | Novo código sem testes é um resultado. Sempre. Testes não são opcionais. |
| Revisar apenas as linhas alteradas | Bugs vivem na interação entre código novo e código existente. Ler o arquivo completo. |
Você provavelmente está revisando código que acabou de escrever ou ler. Seu cérebro 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:
engineering-team/senior-security — análise profunda de segurançaengineering-team/code-reviewer — revisão geral de qualidade de códigora-qm-team/ — fluxos de trabalho de gerenciamento de qualidade