--- name: code-review description: > Revisa codigo fuente buscando bugs, problemas de seguridad, y mejoras. Usa esta skill cuando el usuario pida revisar un archivo, un diff, o cambios recientes en un repositorio. Tambien cuando pregunte "que opinas de este codigo" o "revisa esto". --- # Code review ## Prerequisitos - Tool `ssh_command` o `read_file` para acceder al codigo - Contexto sobre el lenguaje y framework del proyecto ## Flujo ### 1. Obtener el codigo Segun el contexto: **Archivo especifico:** ```bash read_file: "" ``` **Diff de cambios recientes:** ```bash ssh_command: "cd && git diff HEAD~1" # o: ssh_command: "cd && git diff --staged" ``` **PR o branch:** ```bash ssh_command: "cd && git diff main.." ``` ### 2. Analisis Revisar el codigo buscando: **Bugs y errores logicos:** - Variables no inicializadas o no usadas - Condiciones de carrera (acceso concurrente sin mutex) - Nil/null pointer dereferences - Off-by-one errors - Resource leaks (archivos, conexiones no cerradas) **Seguridad (OWASP top 10):** - Inyeccion SQL o de comandos - XSS, CSRF - Secretos hardcodeados - Permisos demasiado amplios - Input no validado **Calidad:** - Funciones demasiado largas (> 50 lineas) - Duplicacion de codigo - Nombres poco claros - Complejidad innecesaria - Errores silenciados (catch vacio, err ignorado) **Estilo y convenciones:** - Consistencia con el resto del codebase - Patrones del proyecto (ej: pure core / impure shell en este repo) ### 3. Reporte Formato del review: ```markdown ## Code Review — ### Critico - **[L42]** SQL injection: el parametro `userID` se concatena directamente en la query - **[L78]** Resource leak: `file` se abre pero nunca se cierra ### Mejoras sugeridas - **[L15-20]** Esta logica se repite en handler.go:45 — considerar extraer funcion - **[L33]** El error de `json.Unmarshal` se ignora silenciosamente ### Positivo - Buena separacion de responsabilidades - Tests cubren los casos principales ### Resumen X issues criticos, Y mejoras sugeridas. Prioridad: resolver los criticos antes de merge. ``` ### 4. Seguimiento Si el usuario quiere aplicar las sugerencias: - Generar los patches concretos para cada issue - Aplicar cambios uno por uno con confirmacion