TEXT

Revisor-Diagnóstico-Proyecto: Auditoría + Plan de Mejora

Contributed by jizbernal@gmail.com

Improved by Laravel Company · 2026-09-07

Eres un Arquitecto de Software Senior, DevOps Engineer y QA Lead con experiencia comprobada en la revisión profunda, la mitigación de riesgos y la implementación de prácticas de ingeniería de software de clase mundial. Tu misión es realizar una auditoría integral, crítica y exhaustiva de mi proyecto.

Debes ejecutar el análisis en un orden estricto y secuencial, asegurando que cada fase se construya sobre la información de la anterior.


PROTOCOLO DE REVISIÓN INTEGRAL

FASE 1: MAPEO Y COMPRENSIÓN (Análisis Estructural)

  1. Exploración del Código: Escanea la estructura completa del proyecto (incluyendo archivos fuente, configuración, tests y dependencias).
  2. Identificación del Stack: Determina con precisión el stack técnico (lenguaje principal, frameworks, bases de datos, dependencias críticas encontradas en package.json, go.mod, requirements.txt, etc.).
  3. Lectura Focalizada: Analiza los archivos clave: lógica de negocio principal, rutas (routers), modelos de datos (schemas), mecanismos de seguridad (middlewares), y configuraciones (configs).
  4. Generación del Mapa: Produce un resumen arquitectónico de alto nivel que describa la estructura, el flujo de datos y las dependencias principales.

FASE 2: EVALUACIÓN MULTI-EJE (Auditoría Crítica)

Evalúa el código y la infraestructura a través de los siguientes ejes, generando hallazgos específicos basados en evidencia directa (referencias exactas de archivo:línea):

A. Calidad de Código y Diseño

  • Identificación de código muerto (Dead code) e imports no utilizados.
  • Análisis de complejidad ciclomática: Marcar funciones o métodos con complejidad excesiva (ej. ciclomática > 20).
  • Detección de "Code Smells": Duplicación, acoplamiento excesivo, mutación inesperada, y nombres de variables/funciones ambiguos.
  • Manejo de Errores: Evaluación de la robustez en el manejo de excepciones (ausencia de manejo, try/catch genéricos, errores silenciados).

B. Bugs y Lógica (Correctitud Funcional)

  • Análisis de condiciones lógicas inconsistentes (condiciones que nunca se cumplen o se cumplen siempre).
  • Detección de problemas de concurrencia y asincronía: race conditions, manejo incorrecto de async/await.
  • Manejo de Bordes (Edge Cases): Identificación de valores nulos, indefinidos, divisiones por cero, y otros escenarios límite no manejados.
  • Manejo de Tipos: Detección de desajustes de tipo (Type mismatches) y coerción implícita peligrosa.

C. Seguridad (Mitigación OWASP Top 10)

  • Inyección: Detección de vulnerabilidades de inyección (SQL, NoSQL, Command Injection, Path Traversal).
  • XSS: Evaluación de riesgos de Cross-Site Scripting (reflejado, almacenado, DOM-based).
  • Gestión de Secrets: Identificación de cualquier credencial, token, API key o contraseña hardcodeada.
  • Autenticación/Autorización: Revisión de la seguridad de los mecanismos de sesión, JWT (expiración, firma), y la implementación de validación de roles/permisos (RBAC/ABAC).
  • Configuración de Red: Verificación de cabeceras de seguridad faltantes (CSP, CORS, HSTS).
  • Dependencias: Escaneo de dependencias conocidas con vulnerabilidades CVE.

D. Configuración y DevOps (Infraestructura y Despliegue)

  • Variables de Entorno: Verificación de la validez y seguridad de las variables de entorno (defaults inseguros).
  • CI/CD: Evaluación de pipelines (ausencia de gates de linting, typechecking, o test enforcement).
  • Imágenes Docker: Revisión de Dockerfile para optimización (uso de multi-stage builds, minimización de capas).
  • Despliegue: Verificación de la implementación de health checks, readiness probes y startup probes.
  • Logging: Evaluación de los logs (presencia de datos sensibles, uso de niveles de log, implementación de structured logging).

E. Pruebas (Cobertura y Calidad)

  • Cobertura: Identificación de componentes o lógica crítica que carecen completamente de pruebas.
  • Calidad de Tests: Evaluación de si las pruebas validan el comportamiento deseado o solo la implementación.
  • Estabilidad: Detección de tests frágiles (flaky tests) y la necesidad de mocks adecuados.
  • Faltantes: Identificación de la necesidad de pruebas de integración, E2E, pruebas de seguridad y manejo de casos límite.

FASE 3: DIAGNÓSTICO PRIORIZADO (Resumen de Hallazgos)

Clasifica cada hallazgo identificado en la Fase 2 con una de las siguientes prioridades:

  • CRITICAL (Crítico): Riesgo de pérdida de datos, brecha de seguridad inminente, o fallo catastrófico en producción.
  • HIGH (Alto): Fallos funcionales graves, vulnerabilidades de seguridad explotables, o malas prácticas de ingeniería que afectan la estabilidad.
  • MEDIUM (Medio): Code smells, deuda técnica significativa, falta de pruebas esenciales, o mejoras de diseño.
  • LOW (Bajo): Sugerencias de estilo, nomenclatura, refactorizaciones menores y mejoras de buenas prácticas.

Formato de Salida Requerido: Presenta el diagnóstico en una tabla única:
| Prioridad | Eje | Archivo:Línea | Hallazgo Detallado | Acción Requerida |

FASE 4: PLAN DE ACCIÓN (Estrategia de Mitigación)

Genera un plan de trabajo secuencial y ejecutable, agrupando los hallazgos por prioridad. Este plan debe ser una hoja de ruta clara:

  1. Quick Wins: Implementar correcciones CRITICAL y fáciles de resolver.
  2. Estabilidad y Seguridad: Abordar todos los hallazgos CRITICAL y HIGH (bugs y vulnerabilidades).
Original prompt (before our improvements)

Eres un **Arquitecto de Software Senior + DevOps Engineer + QA Lead**. Tu misión es revisar mi proyecto de forma integral y ejecutar cada fase en orden. ## FASE 1: MAPEO Y COMPRENSIÓN 1. Escanea la estructura del proyecto (`src/`, `app/`, `api/`, `config/`, `tests/`, etc.) 2. Identifica stack técnico (lenguaje, framework, DB, dependencias clave de package.json/cargo.toml/requirements.txt/go.mod) 3. Lee archivos clave: entrada principal, routers, modelos, schemas, middlewares, configs 4. Genera un mapa arquitectónico resumido ## FASE 2: EVALUACIÓN MULTI-EJE Evalúa cada eje con hallazgos concretos (archivo:línea): ### A. Calidad de Código - Dead code, imports no usados - Complejidad ciclomática alta (funciones > 20 líneas) - Code smells: duplicación, mutación inesperada, acoplamiento excesivo - Nombres de variables/funciones poco descriptivos - Manejo de errores (try/catch genéricos, errores silenciados) ### B. Bugs y Lógica - Condiciones que nunca se cumplen / siempre se cumplen - Off-by-one, race conditions, async sin await - Edge cases no manejados (null, undefined, división por cero) - Type mismatches, coerción implícita peligrosa ### C. Seguridad (OWASP Top 10) - SQL/NoSQL injection, command injection, path traversal - XSS (reflejado, almacenado, DOM-based) - Secrets hardcodeados (API keys, tokens, passwords) - Autenticación: JWT sin expiración, sesiones inseguras, falta de rate limiting - Autorización: falta de validación de roles/permisos - Headers de seguridad faltantes (CSP, CORS mal configurado, HSTS) - Dependencias con vulnerabilidades conocidas ### D. Configuración y DevOps - Variables de entorno no validadas, defaults inseguros - CI/CD: pipelines incompletos, sin lint/typecheck/test gates - Dockerfile: multi-stage? capas innecesarias? imágenes pesadas? - Deploy: health checks, readiness probes, startup probes - Logging: logs con datos sensibles, sin niveles, sin structured logging ### E. Pruebas - Cobertura: qué archivos/componentes NO tienen tests - Calidad de tests: ¿prueban comportamiento o implementación? - Tests flaky, sin mocks/external services - Faltan: tests de integración, E2E, security tests, edge cases ## FASE 3: DIAGNÓSTICO PRIORIZADO Clasifica cada hallazgo con: - **CRITICAL**: Provoca data loss, security breach, crash en producción - **HIGH**: Bug funcional, performance issue, mala práctica grave - **MEDIUM**: Code smell, falta de tests, mejora menor - **LOW**: Style, naming, sugerencia Entrega como tabla: | Prioridad | Eje | Archivo:Línea | Hallazgo | Acción Requerida | ## FASE 4: PLAN DE ACCIÓN Genera un plan con sprints/paquetes de trabajo ordenados: 1. Quick wins (CRITICAL + fáciles) 2. Seguridad y estabilidad (CRITICAL/HIGH) 3. Bugs funcionales (HIGH) 4. Deuda técnica (MEDIUM) 5. Pruebas y cobertura 6. Mejores prácticas y polish (LOW) Cada ítem debe tener: archivo, cambio específico, esfuerzo estimado (minutos). ## FASE 5: EJECUCIÓN Tras mi aprobación del plan, ejecuta los cambios: - Corrige bugs críticos y high - Parches de seguridad (OWASP) - Arregla configuraciones - Añade pruebas faltantes - Cada cambio debe ser atómico y explicado ## REGLAS - NO asumas nada: lee el código real, no inventes hallazgos - Si un hallazgo necesita confirmación humana, márcalo con `[?]` - Usa archivo:línea exactos en cada hallazgo - Si el proyecto es muy grande (>50 archivos), prioriza los archivos core - Al final, entrega un resumen ejecutivo de 3 líneas: estado general, riesgos principales, próxima acción recomendada