Lista de verificação abrangente para conduzir revisões de código minuciosas, cobrindo funcionalidade, segurança, desempenho e manutenibilidade
Scanned 9/8/2026
Install to Claude Code
npx -y skills add artubss/SKILLS-CLAUDE-CODE --skill code-review-checklist --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Code Review Checklist?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/artubss-code-review-checklist)More formats (shields.io, HTML) on the badges page.
---
name: code-review-checklist
description: "Lista de verificação abrangente para conduzir revisões de código minuciosas, cobrindo funcionalidade, segurança, desempenho e manutenibilidade"
---
# Lista de Verificação para Revisão de Código
## Visão Geral
Fornece uma lista de verificação sistemática para conduzir revisões de código minuciosas. Esta habilidade ajuda revisores a garantir qualidade de código, capturar bugs, identificar problemas de segurança e manter consistência em toda a base de código.
## Quando Usar Esta Habilidade
- Use ao revisar pull requests
- Use ao conduzir auditorias de código
- Use ao estabelecer padrões de revisão de código para um time
- Use ao treinar novos desenvolvedores em práticas de revisão de código
- Use quando quiser garantir que nada seja perdido nas revisões
- Use ao criar documentação de revisão de código
## Como Funciona
### Etapa 1: Entenda o Contexto
Antes de revisar o código, vou ajudar você a entender:
- Qual problema este código resolve?
- Quais são os requisitos?
- Quais arquivos foram alterados e por quê?
- Existem issues ou tickets relacionados?
- Qual é a estratégia de testes?
### Etapa 2: Revise a Funcionalidade
Verifique se o código funciona corretamente:
- Ele resolve o problema declarado?
- Casos extremos são tratados?
- O tratamento de erros é apropriado?
- Existem erros lógicos?
- Ele corresponde aos requisitos?
### Etapa 3: Revise a Qualidade do Código
Avalie a manutenibilidade do código:
- O código é legível e claro?
- Os nomes são descritivos?
- Está adequadamente estruturado?
- As funções/métodos são focadas?
- Há complexidade desnecessária?
### Etapa 4: Revise a Segurança
Verifique se há problemas de segurança:
- As entradas são validadas?
- Os dados sensíveis estão protegidos?
- Existem riscos de SQL injection?
- A autenticação/autorização está correta?
- As dependências são seguras?
### Etapa 5: Revise o Desempenho
Procure por problemas de desempenho:
- Existem loops desnecessários?
- O acesso ao banco de dados está otimizado?
- Existem vazamentos de memória?
- O cache é usado adequadamente?
- Existem problemas de consulta N+1?
### Etapa 6: Revise os Testes
Verifique a cobertura de testes:
- Existem testes para o novo código?
- Os testes cobrem casos extremos?
- Os testes são significativos?
- Todos os testes passam?
- A cobertura de testes é adequada?
## Exemplos
### Exemplo 1: Lista de Verificação de Revisão de Funcionalidade
```markdown
## Revisão de Funcionalidade
### Requisitos
- [ ] O código resolve o problema declarado
- [ ] Todos os critérios de aceitação são atendidos
- [ ] Casos extremos são tratados
- [ ] Casos de erro são tratados
- [ ] Entrada do usuário é validada
### Lógica
- [ ] Sem erros lógicos ou bugs
- [ ] Condições estão corretas (sem erros off-by-one)
- [ ] Loops terminam corretamente
- [ ] Recursão possui casos base apropriados
- [ ] Gerenciamento de estado está correto
### Tratamento de Erros
- [ ] Erros são capturados apropriadamente
- [ ] Mensagens de erro são claras e úteis
- [ ] Erros não expõem informações sensíveis
- [ ] Operações falhadas são revertidas
- [ ] Logging é apropriado
### Exemplos de Problemas a Capturar:
**❌ Ruim - Validação ausente:**
\`\`\`javascript
function createUser(email, password) {
// Sem validação!
return db.users.create({ email, password });
}
\`\`\`
**✅ Bom - Validação apropriada:**
\`\`\`javascript
function createUser(email, password) {
if (!email || !isValidEmail(email)) {
throw new Error('Endereço de email inválido');
}
if (!password || password.length < 8) {
throw new Error('Senha deve ter pelo menos 8 caracteres');
}
return db.users.create({ email, password });
}
\`\`\`
```
### Exemplo 2: Lista de Verificação de Revisão de Segurança
```markdown
## Revisão de Segurança
### Validação de Entrada
- [ ] Todas as entradas do usuário são validadas
- [ ] SQL injection é prevenido (use consultas parametrizadas)
- [ ] XSS é prevenido (escape output)
- [ ] Proteção CSRF está em vigor
- [ ] Upload de arquivos é validado (tipo, tamanho, conteúdo)
### Autenticação & Autorização
- [ ] Autenticação é exigida quando necessário
- [ ] Verificações de autorização estão presentes
- [ ] Senhas são criptografadas (nunca armazenadas em texto plano)
- [ ] Sessões são gerenciadas com segurança
- [ ] Tokens expiram apropriadamente
### Proteção de Dados
- [ ] Dados sensíveis são criptografados
- [ ] Chaves de API não estão hardcoded
- [ ] Variáveis de ambiente são usadas para secrets
- [ ] Dados pessoais seguem regulamentações de privacidade
- [ ] Credenciais de banco de dados estão seguras
### Dependências
- [ ] Sem dependências vulneráveis conhecidas
- [ ] Dependências estão atualizadas
- [ ] Dependências desnecessárias são removidas
- [ ] Versões de dependências estão fixadas
### Exemplos de Problemas a Capturar:
**❌ Ruim - Risco de SQL injection:**
\`\`\`javascript
const query = \`SELECT * FROM users WHERE email = '\${email}'\`;
db.query(query);
\`\`\`
**✅ Bom - Consulta parametrizada:**
\`\`\`javascript
const query = 'SELECT * FROM users WHERE email = $1';
db.query(query, [email]);
\`\`\`
**❌ Ruim - Secret hardcoded:**
\`\`\`javascript
const API_KEY = 'sk_live_abc123xyz';
\`\`\`
**✅ Bom - Variável de ambiente:**
\`\`\`javascript
const API_KEY = process.env.API_KEY;
if (!API_KEY) {
throw new Error('A variável de ambiente API_KEY é obrigatória');
}
\`\`\`
```
### Exemplo 3: Lista de Verificação de Revisão de Qualidade de Código
```markdown
## Revisão de Qualidade de Código
### Legibilidade
- [ ] Código é fácil de entender
- [ ] Nomes de variáveis são descritivos
- [ ] Nomes de funções explicam o que fazem
- [ ] Lógica complexa possui comentários
- [ ] Números mágicos são substituídos por constantes
### Estrutura
- [ ] Funções são pequenas e focadas
- [ ] Código segue princípio DRY (Don't Repeat Yourself)
- [ ] Separação adequada de responsabilidades
- [ ] Estilo de código consistente
- [ ] Sem código morto ou comentado
### Manutenibilidade
- [ ] Código é modular e reutilizável
- [ ] Dependências são mínimas
- [ ] Mudanças são retrocompatíveis
- [ ] Mudanças disruptivas estão documentadas
- [ ] Débito técnico é anotado
### Exemplos de Problemas a Capturar:
**❌ Ruim - Nomes pouco claros:**
\`\`\`javascript
function calc(a, b, c) {
return a * b + c;
}
\`\`\`
**✅ Bom - Nomes descritivos:**
\`\`\`javascript
function calculateTotalPrice(quantity, unitPrice, tax) {
return quantity * unitPrice + tax;
}
\`\`\`
**❌ Ruim - Função fazendo muita coisa:**
\`\`\`javascript
function processOrder(order) {
// Validar pedido
if (!order.items) throw new Error('Sem itens');
// Calcular total
let total = 0;
for (let item of order.items) {
total += item.price * item.quantity;
}
// Aplicar desconto
if (order.coupon) {
total *= 0.9;
}
// Processar pagamento
const payment = stripe.charge(total);
// Enviar email
sendEmail(order.email, 'Pedido confirmado');
// Atualizar inventário
updateInventory(order.items);
return { orderId: order.id, total };
}
\`\`\`
**✅ Bom - Responsabilidades separadas:**
\`\`\`javascript
function processOrder(order) {
validateOrder(order);
const total = calculateOrderTotal(order);
const payment = processPayment(total);
sendOrderConfirmation(order.email);
updateInventory(order.items);
return { orderId: order.id, total };
}
\`\`\`
```
## Boas Práticas
### ✅ Faça Isto
- **Revise Mudanças Pequenas** - PRs menores são mais fáceis de revisar minuciosamente
- **Verifique Testes Primeiro** - Certifique-se que testes passam e cobrem código novo
- **Execute o Código** - Teste localmente quando possível
- **Faça Perguntas** - Não assuma, peça esclarecimentos
- **Seja Construtivo** - Sugira melhorias, não apenas critique
- **Foque em Problemas Importantes** - Não seja excessivamente crítico com problemas menores de estilo
- **Use Ferramentas Automatizadas** - Linters, formatadores, scanners de segurança
- **Revise Documentação** - Verifique se documentação está atualizada
- **Considere Desempenho** - Pense em escala e eficiência
- **Verifique Regressões** - Garanta que funcionalidade existente ainda funciona
### ❌ Não Faça Isto
- **Não Aprove Sem Ler** - Realmente revise o código
- **Não Seja Vago** - Forneça feedback específico com exemplos
- **Não Ignore Segurança** - Problemas de segurança são críticos
- **Não Pule Testes** - Código sem testes causará problemas
- **Não Seja Rude** - Seja respeitoso e profissional
- **Não Aprovação Automática** - Cada revisão deve agregar valor
- **Não Revise Quando Cansado** - Você perderá problemas importantes
- **Não Esqueça Contexto** - Entenda o quadro maior
## Lista de Verificação Completa para Revisão
### Antes da Revisão
- [ ] Leia a descrição do PR e issues relacionadas
- [ ] Entenda qual problema está sendo resolvido
- [ ] Verifique se testes passam em CI/CD
- [ ] Baixe o branch e execute localmente
### Funcionalidade
- [ ] Código resolve o problema declarado
- [ ] Casos extremos são tratados
- [ ] Tratamento de erros é apropriado
- [ ] Entrada do usuário é validada
- [ ] Sem erros lógicos
### Segurança
- [ ] Sem vulnerabilidades de SQL injection
- [ ] Sem vulnerabilidades de XSS
- [ ] Autenticação/autorização está correta
- [ ] Dados sensíveis estão protegidos
- [ ] Sem secrets hardcoded
### Desempenho
- [ ] Sem consultas de banco de dados desnecessárias
- [ ] Sem problemas de consulta N+1
- [ ] Algoritmos eficientes usados
- [ ] Sem vazamentos de memória
- [ ] Cache usado apropriadamente
### Qualidade de Código
- [ ] Código é legível e claro
- [ ] Nomes são descritivos
- [ ] Funções são focadas e pequenas
- [ ] Sem duplicação de código
- [ ] Segue convenções do projeto
### Testes
- [ ] Código novo possui testes
- [ ] Testes cobrem casos extremos
- [ ] Testes são significativos
- [ ] Todos os testes passam
- [ ] Cobertura de testes é adequada
### Documentação
- [ ] Comentários de código explicam por quê, não o quê
- [ ] Documentação de API está atualizada
- [ ] README é atualizado se necessário
- [ ] Mudanças disruptivas estão documentadas
- [ ] Guia de migração fornecido se necessário
### Git
- [ ] Mensagens de commit são claras
- [ ] Sem conflitos de merge
- [ ] Branch está atualizado com main
- [ ] Sem arquivos desnecessários commitados
- [ ] .gitignore está adequadamente configurado
## Armadilhas Comuns
### Problema: Casos Extremos Ausentes
**Sintomas:** Código funciona no caminho feliz mas falha em casos extremos
**Solução:** Faça perguntas "E se...?"
- E se a entrada for null?
- E se o array estiver vazio?
- E se o usuário não estiver autenticado?
- E se a requisição de rede falhar?
### Problema: Vulnerabilidades de Segurança
**Sintomas:** Código expõe riscos de segurança
**Solução:** Use lista de verificação de segurança
- Execute scanners de segurança (npm audit, Snyk)
- Verifique OWASP Top 10
- Valide todas as entradas
- Use consultas parametrizadas
- Nunca confie em entrada do usuário
### Problema: Cobertura de Testes Inadequada
**Sintomas:** Código novo não possui testes ou testes inadequados
**Solução:** Exija testes para todo código novo
- Testes unitários para funções
- Testes de integração para features
- Testes de casos extremos
- Testes de casos de erro
### Problema: Código Pouco Claro
**Sintomas:** Revisor não consegue entender o que código faz
**Solução:** Solicite melhorias
- Melhores nomes de variáveis
- Comentários explicativos
- Funções menores
- Estrutura clara
## Modelos de Comentários de Revisão
### Solicitando Mudanças
```markdown
**Problema:** [Descreva o problema]
**Código atual:**
\`\`\`javascript
// Mostre código problemático
\`\`\`
**Sugestão de correção:**
\`\`\`javascript
// Mostre código melhorado
\`\`\`
**Por quê:** [Explique por que isto é melhor]
```
### Fazendo Perguntas
```markdown
**Pergunta:** [Sua pergunta]
**Contexto:** [Por que você está perguntando]
**Sugestão:** [Se você tiver uma]
```
### Elogiando Código Bom
```markdown
**Legal!** [O que você gostou]
Isto é ótimo porque [explique por quê]
```
## Habilidades Relacionadas
- `@requesting-code-review` - Prepare código para revisão
- `@receiving-code-review` - Lide com feedback de revisão
- `@systematic-debugging` - Debug de problemas encontrados na revisão
- `@test-driven-development` - Garanta que código possui testes
## Recursos Adicionais
- [Guias de Revisão de Código do Google](https://google.github.io/eng-practices/review/)
- [OWASP Top 10](https://owasp.org/www-project-top-ten/)
- [Boas Práticas de Revisão de Código](https://github.com/thoughtbot/guides/tree/main/code-review)
- [Como Revisar Código](https://www.kevinlondon.com/2015/05/05/code-review-best-practices.html)
---
**Dica Profissional:** Use um modelo de lista de verificação para cada revisão a fim de garantir consistência e minuciosidade. Personalize-o conforme as necessidades específicas do seu time!Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!