---
name: wasabeef/revisão-sistemática-de-pr
source: https://app.decimal.ai/s/wasabeef-revisa-o-sistema-tica-de-pr@1/SKILL.md
source_sha256: 1338bf9e0284
---

# Revisão sistemática de PR

Revisão sistemática de Pull Request para garantir qualidade do código e sanidade da arquitetura.

## Como usar

```bash
# Revisão abrangente de PR
gh pr view 123 --comments
"Revise sistematicamente este PR e forneça feedback dos pontos de vista de qualidade de código, segurança e arquitetura"

# Revisão focada em segurança
gh pr diff 123
"Revise com foco em riscos de segurança e vulnerabilidades"

# Revisão do ponto de vista da arquitetura
gh pr checkout 123 && find . -name "*.js" | head -10
"Avalie a arquitetura dos pontos de vista de separação de camadas, dependências e princípios SOLID"
```

## Exemplos Básicos

```bash
# Avaliação numérica da qualidade do código
find . -name "*.js" -exec wc -l {} + | sort -rn | head -5
"Avalie a complexidade do código, tamanho das funções e grau de duplicação e aponte pontos de melhoria"

# Verificação de vulnerabilidades de segurança
grep -r "password\|secret\|token" . --include="*.js" | head -10
"Verifique riscos de vazamento de informações confidenciais, hardcoding e bypass de autenticação"

# Detecção de violações de arquitetura
grep -r "import.*from.*\.\./\.\." . --include="*.js"
"Avalie problemas de violação de camadas, dependências circulares e acoplamento"
```

## Sistema de Classificação de Comentários

```text
🔴 critical.must: Problemas críticos
├─ Vulnerabilidades de segurança
├─ Problemas de integridade de dados
└─ Risco de falha do sistema

🟡 high.imo: Melhorias de alta prioridade
├─ Risco de mau funcionamento
├─ Problemas de performance
└─ Grande redução da manutenibilidade

🟢 medium.imo: Melhorias de prioridade média
├─ Melhoria da legibilidade
├─ Melhoria da estrutura do código
└─ Melhoria da qualidade dos testes

🟢 low.nits: Observações menores
├─ Padronização de estilo
├─ Correção de typos
└─ Adição de comentários

🔵 info.q: Perguntas e Fornecimento de informações
├─ Confirmação de intenção da implementação
├─ Contexto de decisões de design
└─ Compartilhamento de melhores práticas
```

## Pontos de Vista da Revisão

### 1. Precisão do Código

- **Erros lógicos**: Valores limite, verificação Null, tratamento de exceções
- **Integridade de dados**: Segurança de tipo, validação
- **Tratamento de erros**: Abrangência, processamento adequado

### 2. Segurança

- **Autenticação e Autorização**: Verificação adequada, gestão de permissões
- **Validação de entrada**: Contramedidas SQL injection, XSS
- **Informações confidenciais**: Proibição de output em logs, criptografia

### 3. Performance

- **Algoritmos**: Complexidade temporal, eficiência de memória
- **Banco de dados**: Consultas N+1, otimização de índices
- **Recursos**: Vazamentos de memória, utilização de cache

### 4. Arquitetura

- **Separação de camadas**: Direção de dependência, separação adequada
- **Grau de acoplamento**: Baixo acoplamento, utilização de interfaces
- **Princípios SOLID**: Responsabilidade única, aberto-fechado, inversão de dependência

## Fluxo de Revisão

1. **Verificação prévia**: Informações do PR, diferenças de mudanças, Issues relacionadas
2. **Verificação sistemática**: Segurança → Precisão → Performance → Arquitetura
3. **Feedback construtivo**: Propostas de melhoria específicas e exemplos de código
4. **Follow-up**: Confirmação de correções, estado do CI, aprovação final

## Exemplos de Comentários Eficazes

### Problemas de Segurança

**Formato:**

```text
**critical.must.** [Descrição do problema]

[Proposta de correção específica]

[Explicação da necessidade]
```

**Exemplo:**

```text
**critical.must.** Senha está sendo armazenada em texto plano

// Proposta de correção
const bcrypt = require('bcrypt');
const hashedPassword = await bcrypt.hash(password, 12);

Hashing é obrigatório para prevenir riscos de segurança.
```

### Melhoria de Performance

**Formato:**

```text
**high.imo.** [Descrição do problema]

[Proposta de melhoria específica]

[Explicação dos benefícios]
```

**Exemplo:**

```text
**high.imo.** Problema de consulta N+1 irá ocorrer

// Proposta de melhoria: Eager Loading
const users = await User.findAll({ include: [Post] });

Pode reduzir drasticamente o número de consultas.
```

### Violação de Arquitetura

**Formato:**

```text
**high.must.** [Descrição da violação]

[Explicação do problema arquitetural]
[Proposta de solução]
```

**Exemplo:**

```text
**high.must.** Violação de camada está ocorrendo

A camada de domínio está dependendo diretamente da camada de infraestrutura.
Introduza interfaces com o princípio de inversão de dependência.
```

## Observações

- **Tom construtivo**: Comunicação colaborativa, não agressiva
- **Propostas específicas**: Apresentar soluções, não apenas apontar problemas
- **Priorização**: Responder na ordem Critical → High → Medium → Low
- **Melhoria contínua**: Transformar resultados de revisão em base de conhecimento