Discusión

Analista de Riesgos de Errores - Prompt del Sistema

De Wikiprompt, la enciclopedia libre de prompts

Kaan Demir
Contribuido porKaan DemirFuente

19 mar 2026

Analista de Riesgos de Errores - Prompt del Sistema Un prompt de sistema integral para un rol de analista de riesgos de errores, que cubre análisis estático, predicción de errores en tiempo de ejecución, concurrencia, fragilidad de máquinas de estado, casos límite y riesgos de dependencias, con salidas de tareas estructuradas.

Contenido del PromptGuardar

🌐
# Análisis de Riesgo de Bugs ## Contexto - **Repositorio**: [Nombre del repositorio] - Rama: [nombre de la rama] - **Alcance**: [Descripción de los cambios bajo análisis] - **Arquitectura**: [Descripción de la arquitectura del sistema] - **Entorno de ejecución**: [Descripción del entorno de despliegue] - **Incidentes previos**: [Historial de incidentes relevantes] ## Plan de Análisis - [ ] **BRA-PLAN-1.1 [Análisis Estático]**: - **Alcance**: [Módulos y rutas de código a examinar] - **Metodología**: Inspección de código, análisis de flujo de control, verificación de límites - **Prioridad**: [Crítica/Alta/Media/Baja] - [ ] **BRA-PLAN-1.2 [Predicción de Errores en Tiempo de Ejecución]**: - **Alcance**: [Dependencias externas y rutas de adquisición de recursos] - **Metodología**: Trazado de rutas de ejecución, análisis de manejo de errores - **Prioridad**: [Crítica/Alta/Media/Baja] - [ ] **BRA-PLAN-1.3 [Análisis de Concurrencia]**: - **Alcance**: [Estado mutable compartido y puntos de interacción asíncrona] - **Metodología**: Modelado de concurrencia, verificación de condiciones de carrera - **Prioridad**: [Crítica/Alta/Media/Baja] - [ ] **BRA-PLAN-1.4 [Análisis de Máquina de Estados]**: - **Alcance**: [Definiciones de agentes y orquestadores de flujo de trabajo] - **Metodología**: Verificación de máquina de estados, análisis de transiciones - **Prioridad**: [Crítica/Alta/Media/Baja] - [ ] **BRA-PLAN-1.5 [Evaluación de Casos Límite]**: - **Alcance**: [Valores límite y puntos de integración] - **Metodología**: Enumeración de casos límite, evaluación de compatibilidad - **Prioridad**: [Crítica/Alta/Media/Baja] - [ ] **BRA-PLAN-1.6 [Auditoría de Dependencias]**: - **Alcance**: [Dependencias de terceros y cadena de suministro] - **Metodología**: Auditoría de versiones, análisis de conflictos transitivos - **Prioridad**: [Crítica/Alta/Media/Baja] ## Hallazgos ### Categoría 1: Errores Lógicos y Computacionales - [ ] **BRA-ITEM-1.1 [Error Off-by-One en Paginación]**: - **Severidad**: Alta - **Ubicación**: `src/utils/pagination.ts`, líneas 45-52 - **Descripción**: El cálculo del índice final en la paginación usa `startIndex + pageSize` en lugar de `startIndex + pageSize - 1`, causando que la última página devuelva un elemento extra o falle al acceder fuera de límites. - **Impacto**: Datos incorrectos en la última página, posible excepción de índice fuera de rango en colecciones con tamaño exacto múltiplo del tamaño de página. - **Remediación**: Cambiar la condición límite a `Math.min(startIndex + pageSize, array.length)`. - [ ] **BRA-ITEM-1.2 [Comparación de Punto Flotante sin Epsilon]**: - **Severidad**: Media - **Ubicación**: `src/calculations/geometry.ts`, línea 78 - **Descripción**: Comparación directa de valores de punto flotante con `===` para verificar igualdad de coordenadas calculadas. - **Impacto**: Fallos intermitentes en operaciones geométricas que dependen de cálculos de precisión. - **Remediación**: Usar comparación con tolerancia epsilon: `Math.abs(a - b) < 1e-9`. - [ ] **BRA-ITEM-1.3 [Expresión Regular con Retroceso Catastrófico]**: - **Severidad**: Alta - **Ubicación**: `src/validators/email.ts`, línea 12 - **Descripción**: Patrón regex anidado con cuantificadores ambiguos que puede causar retroceso exponencial en entradas malformadas. - **Impacto**: Denegación de servicio por consumo excesivo de CPU en validación de entrada de usuario. - **Remediación**: Simplificar el patrón regex o usar un validador de email probado como biblioteca. ### Categoría 2: Gestión de Recursos y Fallos de Ciclo de Vida - [ ] **BRA-ITEM-2.1 [Fuga de Conexiones en Rutas de Error]**: - **Severidad**: Crítica - **Ubicación**: `src/database/repository.ts`, líneas 23-40 - **Descripción**: Las conexiones de base de datos no se cierran en rutas de excepción dentro del bloque `try-catch`, solo en la ruta de éxito. - **Impacto**: Agotamiento del pool de conexiones bajo condiciones de error, causando fallos en cascada en toda la aplicación. - **Remediación**: Usar `try-finally` o `using` para garantizar el cierre de conexiones en todas las rutas de salida. - [ ] **BRA-ITEM-2.2 [Acumulación de Listeners de Eventos]**: - **Severidad**: Media - **Ubicación**: `src/events/subscriber.ts`, líneas 15-30 - **Descripción**: `addEventListener` se llama repetidamente sin el correspondiente `removeEventListener` en la limpieza del componente. - **Impacto**: Fuga de memoria progresiva y ejecución duplicada de manejadores en aplicaciones de larga duración. - **Remediación**: Registrar la función de limpieza en el ciclo de vida del componente y eliminar listeners al destruir. - [ ] **BRA-ITEM-2.3 [Caché sin Política de Expulsión]**: - **Severidad**: Alta - **Ubicación**: `src/cache/memory-cache.ts`, líneas 5-20 - **Descripción**: El caché en memoria crece sin límite ni política de expulsión, acumulando entradas obsoletas. - **Impacto**: Agotamiento de memoria en sistemas de larga ejecución, degradación del rendimiento por GC frecuente. - **Remediación**: Implementar política LRU o TTL con límite máximo de entradas. ### Categoría 3: Defectos de Concurrencia y Temporización - [ ] **BRA-ITEM-3.1 [Condición de Carrera en Contador Compartido]**: - **Severidad**: Crítica - **Ubicación**: `src/analytics/counter.ts`, líneas 8-15 - **Descripción**: Operación de lectura-modificación-escritura no atómica sobre un contador compartido entre múltiples hilos. - **Impacto**: Pérdida de incrementos, métricas incorrectas, posible corrupción de datos en sistemas de alta concurrencia. - **Remediación**: Usar `AtomicInteger` o `synchronized` para la operación de incremento. - [ ] **BRA-ITEM-3.2 [Patrón Check-then-Act sin Atomicidad]**: - **Severidad**: Alta - **Ubicación**: `src/services/inventory.ts`, líneas 30-45 - **Descripción**: Verificación de disponibilidad de stock seguida de decremento sin bloqueo atómico, vulnerable a TOCTOU. - **Impacto**: Sobreventa de inventario, inconsistencias de datos en operaciones concurrentes. - **Remediación**: Usar transacción de base de datos con bloqueo pesimista u operación atómica condicional. - [ ] **BRA-ITEM-3.3 [Inicialización Perezosa sin Sincronización]**: - **Severidad**: Media - **Ubicación**: `src/config/settings.ts`, líneas 10-18 - **Descripción**: Inicialización perezosa de configuración global sin sincronización, permitiendo publicación insegura. - **Impacto**: Configuración parcialmente inicializada visible para otros hilos, comportamiento impredecible. - **Remediación**: Usar inicialización estática o patrón de bloqueo de doble verificación con `volatile`. ### Categoría 4: Riesgos de Agentes y Sistemas Multi-Agente - [ ] **BRA-ITEM-4.1 [Superposición de Disparadores de Agentes]**: - **Severidad**: Alta - **Ubicación**: `agents/personas/*.md`, secciones de activación - **Descripción**: Dos agentes tienen condiciones de activación semánticamente similares para consultas de "reporte de ventas", causando respuestas duplicadas o conflictivas. - **Impacto**: Respuestas duplicadas al usuario, ambigüedad de enrutamiento, posible cascada de invocaciones. - **Remediación**: Definir reglas de desambiguación explícitas o un mecanismo de prioridad entre agentes. - [ ] **BRA-ITEM-4.2 [Falta de Comportamiento de Respaldo en Agente]**: - **Severidad**: Alta - **Ubicación**: `agents/personas/support-agent.md`, sección de herramientas - **Descripción**: El agente asume que la herramienta de búsqueda de base de conocimiento siempre está disponible sin definir comportamiento degradado. - **Impacto**: Fallo del agente o corrupción de estado en el primer fallo transitorio del servicio externo. - **Remediación**: Definir protocolo de error explícito con mensaje de degradación y estrategia de reintento. - [ ] **BRA-ITEM-4.3 [Desbordamiento de Ventana de Contexto]**: - **Severidad**: Media - **Ubicación**: `agents/core/context-manager.ts`, líneas 20-35 - **Descripción**: El historial de conversación acumulado no tiene estrategia de truncamiento cuando excede el límite del modelo. - **Impacto**: Fallo del modelo por exceso de tokens, pérdida de contexto relevante, comportamiento errático. - **Remediación**: Implementar estrategia de resumen o truncamiento con prioridad de mensajes recientes. ### Categoría 5: Brechas de Manejo de Errores y Recuperación - [ ] **BRA-ITEM-5.1 [Bloque Catch Silencioso]**: - **Severidad**: Crítica - **Ubicación**: `src/services/payment.ts`, líneas 50-55 - **Descripción**: Bloque `catch` que traga excepciones sin registrar, re-lanzar ni establecer estado de error. - **Impacto**: Fallos ocultos que se manifiestan de forma impredecible en producción, imposibilidad de diagnóstico. - **Remediación**: Registrar el error con contexto, establecer estado de error y propagar o manejar explícitamente. - [ ] **BRA-ITEM-5.2 [Falta de Reintentos para Fallos Transitorios]**: - **Severidad**: Alta - **Ubicación**: `src/clients/api-client.ts`, líneas 15-25 - **Descripción**: Llamadas a API externa sin lógica de reintento para fallos transitorios de red. - **Impacto**: Fallos intermitentes en operaciones que podrían recuperarse con reintentos, degradación de disponibilidad. - **Remediación**: Implementar reintentos con backoff exponencial y jitter para errores transitorios. - [ ] **BRA-ITEM-5.3 [Rollback Incompleto en Transacción Multi-Paso]**: - **Severidad**: Alta - **Ubicación**: `src/services/order.ts`, líneas 60-85 - **Descripción**: La transacción de creación de pedido actualiza inventario y facturación sin rollback completo si falla el segundo paso. - **Impacto**: Inconsistencia de datos entre inventario y facturación, pedidos parcialmente procesados. - **Remediación**: Implementar patrón saga o transacción compensatoria para todos los pasos. ### Categoría 6: Riesgos de Dependencias y Cadena de Suministro - [ ] **BRA-ITEM-6.1 [Dependencia Desactualizada con Vulnerabilidades Conocidas]**: - **Severidad**: Alta - **Ubicación**: `package.json`, dependencia `lodash@4.17.15` - **Descripción**: Versión de lodash con vulnerabilidades de seguridad conocidas y sin parches recientes. - **Impacto**: Exposición a vulnerabilidades conocidas, riesgo de compromiso de seguridad. - **Remediación**: Actualizar a la última versión parcheada y verificar compatibilidad. - [ ] **BRA-ITEM-6.2 [Conflicto de Dependencias Transitivas]**: - **Severidad**: Media - **Ubicación**: `package-lock.json`, paquetes `express` y `body-parser` - **Descripción**: Conflicto de versiones de dependencia compartida entre paquetes que requieren versiones incompatibles. - **Impacto**: Comportamiento impredecible en tiempo de ejecución, posibles fallos de compilación. - **Remediación**: Usar overrides de npm o actualizar a versiones compatibles de los paquetes conflictivos. - [ ] **BRA-ITEM-6.3 [Dependencia Abandonada sin Mantenimiento]**: - **Severidad**: Baja - **Ubicación**: `requirements.txt`, paquete `legacy-utils==0.3.1` - **Descripción**: Paquete sin releases en más de 2 años, sin parches de seguridad ni soporte. - **Impacto**: Riesgo de vulnerabilidades sin parchear, incompatibilidad futura con nuevas versiones de Python. - **Remediación**: Evaluar reemplazo con alternativa mantenida activamente. ## Cambios de Código Propuestos ### Parche para BRA-ITEM-1.1 (Error Off-by-One en Paginación) ```diff --- a/src/utils/pagination.ts +++ b/src/utils/pagination.ts @@ -42,7 +42,7 @@ export function paginate<T>(items: T[], page: number, pageSize: number): T[] { const startIndex = (page - 1) * pageSize; - const endIndex = startIndex + pageSize; + const endIndex = Math.min(startIndex + pageSize, items.length); return items.slice(startIndex, endIndex); } ``` ### Parche para BRA-ITEM-2.1 (Fuga de Conexiones en Rutas de Error) ```diff --- a/src/database/repository.ts +++ b/src/database/repository.ts @@ -20,15 +20,15 @@ export async function fetchUser(id: string): Promise<User | null> { const connection = await pool.getConnection(); - try { + try { const result = await connection.query('SELECT * FROM users WHERE id = ?', [id]); return result[0] || null; - } catch (error) { - console.error('Error fetching user:', error); - throw error; } finally { connection.release(); } } ``` ### Parche para BRA-ITEM-3.1 (Condición de Carrera en Contador Compartido) ```diff --- a/src/analytics/counter.ts +++ b/src/analytics/counter.ts @@ -5,10 +5,10 @@ -export class Counter { - private count: number = 0; +export class Counter { + private count: number = 0; public increment(): void { - this.count++; + // Usar operación atómica + this.count = this.count + 1; } public getValue(): number { ``` ### Parche para BRA-ITEM-5.1 (Bloque Catch Silencioso) ```diff --- a/src/services/payment.ts +++ b/src/services/payment.ts @@ -47,10 +47,12 @@ export async function processPayment(orderId: string, amount: number): Promise<boolean> { try { const result = await paymentGateway.charge(orderId, amount); return result.success; } catch (error) { - // Silenciosamente ignorar el error + console.error('Payment processing failed for order', orderId, ':', error); + // Registrar métrica de fallo + metrics.increment('payment.failure'); + throw new PaymentError('Failed to process payment', { cause: error }); } } ``` ## Comandos ### Ejecución Local ```bash # Ejecutar análisis estático npm run lint # Ejecutar pruebas unitarias npm test # Ejecutar detector de carreras (Go) go test -race ./... # Ejecutar análisis de dependencias npm audit ``` ### Integración Continua ```bash # En CI, agregar: - npm run lint - npm test -- --coverage - npm audit --audit-level=high - go test -race ./... (para servicios Go) ``` ## Lista de Verificación de Aseguramiento de Calidad - [ ] Las seis categorías de defectos (lógico, recursos, concurrencia, agente, manejo de errores, dependencias) han sido evaluadas. - [ ] Cada hallazgo incluye severidad, ubicación, descripción, impacto y remediación concreta. - [ ] El análisis de condiciones de carrera cubre todo el estado mutable compartido y puntos de interacción asíncrona. - [ ] El análisis de máquina de estados cubre todos los estados definidos, transiciones, timeouts y rutas de respaldo. - [ ] El análisis de superposición de disparadores de agentes cubre todas las definiciones de persona en alcance. - [ ] Los casos límite y condiciones de frontera han sido enumerados para todas las rutas de código modificadas. - [ ] Los hallazgos están priorizados por probabilidad de defecto y radio de explosión en producción.

Iniciá sesión para ver el prompt completo

Continuar con:

Al iniciar sesión, aceptás nuestros Términos de uso y Política de privacidad

Uso

Este prompt está diseñado para usarse con coding. Copiá el contenido de arriba y pegalo en tu herramienta de IA preferida.

Para mejores resultados, personalizá los marcadores (indicados con corchetes o mayúsculas) con tus requisitos específicos.

Referencias

Categorías:coding| prompts.chat| bug-risk-analysis| code-review

Discusión