---
name: wasabeef/revisión-sistemática-de-pr
source: https://app.decimal.ai/s/wasabeef-revisio-n-sistema-tica-de-pr@1/SKILL.md
source_sha256: 31669399cd7d
---

# Revisión sistemática de PR

Asegura la calidad del código y solidez arquitectónica a través de revisiones sistemáticas de Pull Request.

## Uso

```bash
# Revisión comprensiva de PR
gh pr view 123 --comments
"Revisar sistemáticamente este PR y proporcionar feedback desde perspectivas de calidad de código, seguridad y arquitectura"

# Revisión enfocada en seguridad
gh pr diff 123
"Enfocarse en revisar riesgos de seguridad y vulnerabilidades"

# Revisión desde perspectiva de arquitectura
gh pr checkout 123 && find . -name "*.js" | head -10
"Evaluar la arquitectura desde perspectivas de separación de capas, dependencias y principios SOLID"
```

## Ejemplos Básicos

```bash
# Evaluación cuantitativa de calidad de código
find . -name "*.js" -exec wc -l {} + | sort -rn | head -5
"Evaluar complejidad de código, tamaño de funciones y duplicación, y señalar mejoras"

# Verificación de vulnerabilidades de seguridad
grep -r "password\|secret\|token" . --include="*.js" | head -10
"Verificar riesgos de filtración de información sensible, hardcoding y bypass de autenticación"

# Detección de violaciones de arquitectura
grep -r "import.*from.*\.\./\.\." . --include="*.js"
"Evaluar violaciones de capas, dependencias circulares y problemas de acoplamiento"
```

## Sistema de Clasificación de Comentarios

```text
🔴 critical.must: Problemas críticos
├─ Vulnerabilidades de seguridad
├─ Problemas de integridad de datos
└─ Riesgos de falla del sistema

🟡 high.imo: Mejoras de alta prioridad
├─ Riesgo de mal funcionamiento
├─ Problemas de rendimiento
└─ Disminución significativa de mantenibilidad

🟢 medium.imo: Mejoras de prioridad media
├─ Mejora de legibilidad
├─ Mejora de estructura de código
└─ Mejora de calidad de pruebas

🟢 low.nits: Puntos menores
├─ Unificación de estilo
├─ Corrección de errores tipográficos
└─ Adición de comentarios

🔵 info.q: Preguntas/información
├─ Confirmación de intención de implementación
├─ Antecedentes de decisiones de diseño
└─ Compartir mejores prácticas
```

## Perspectivas de Revisión

### 1. Corrección de Código

- **Errores lógicos**: Valores límite, verificaciones de null, manejo de excepciones
- **Integridad de datos**: Seguridad de tipos, validación
- **Manejo de errores**: Completitud, procesamiento apropiado

### 2. Seguridad

- **Autenticación/autorización**: Verificaciones apropiadas, gestión de permisos
- **Validación de entrada**: Contramedidas SQL injection, XSS
- **Información sensible**: Restricciones de logging, cifrado

### 3. Rendimiento

- **Algoritmos**: Complejidad temporal, eficiencia de memoria
- **Base de datos**: Consultas N+1, optimización de índices
- **Recursos**: Fugas de memoria, utilización de caché

### 4. Arquitectura

- **Separación de capas**: Dirección de dependencias, separación apropiada
- **Acoplamiento**: Acoplamiento fuerte, utilización de interfaces
- **Principios SOLID**: Responsabilidad única, abierto-cerrado, inversión de dependencias

## Flujo de Revisión

1. **Pre-verificación**: Información de PR, diff de cambios, issues relacionados
2. **Verificaciones sistemáticas**: Seguridad → Corrección → Rendimiento → Arquitectura
3. **Feedback constructivo**: Sugerencias específicas de mejora y ejemplos de código
4. **Seguimiento**: Confirmación de correcciones, estado de CI, aprobación final

## Ejemplos de Comentarios Efectivos

### Problemas de Seguridad

**Formato:**

```text
**critical.must.** [Descripción del problema]

[Código propuesto]

[Explicación de la necesidad]
```

**Ejemplo:**

```text
**critical.must.** La contraseña se almacena en texto plano

// Corrección propuesta
const bcrypt = require('bcrypt');
const hashedPassword = await bcrypt.hash(password, 12);

Se requiere hashing para prevenir riesgos de seguridad.
```

### Mejora de Rendimiento

**Formato:**

```text
**high.imo.** [Descripción del problema]

[Código de mejora]

[Explicación del beneficio]
```

**Ejemplo:**

```text
**high.imo.** Ocurre problema de consulta N+1

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

Esto puede reducir significativamente el número de consultas.
```

### Violación de Arquitectura

**Formato:**

```text
**high.must.** [Descripción de la violación]

[Explicación detallada y solución recomendada]
```

**Ejemplo:**

```text
**high.must.** Ocurrió violación de capa

La capa de dominio depende directamente de la capa de infraestructura.
Por favor introducir una interfaz siguiendo el principio de inversión de dependencias.
```

## Notas

- **Tono constructivo**: Comunicación colaborativa en lugar de agresiva
- **Sugerencias específicas**: Proporcionar soluciones junto con señalar problemas
- **Priorización**: Abordar en orden de Crítico → Alto → Medio → Bajo
- **Mejora continua**: Documentar resultados de revisión en base de conocimiento