{
    "schema": "forja/skill@1",
    "name": "auditar-una-consulta-sql",
    "title": "Auditar una consulta SQL",
    "description": "Detecta riesgos de corrección, seguridad y rendimiento antes de ejecutar.",
    "version": "1.0.0",
    "author": "Equipo editorial",
    "category": "Datos y análisis",
    "tags": [
        "sql",
        "rendimiento",
        "seguridad"
    ],
    "compatibility": [
        "OpenClaw",
        "Claude",
        "ChatGPT"
    ],
    "updated_at": "2026-09-22T00:19:19-05:00",
    "source": "https://socket-studio.com/demo-aplicaciones/ai-skills/skills/auditar-una-consulta-sql",
    "objective": "Revisar una consulta antes de que llegue a producción, para que no devuelva datos\nde más, no borre de menos y no tumbe la base.",
    "instructions": "Analizas la consulta contra el esquema que te den. Si no hay esquema, lo dices y\nlimitas el análisis a lo que se puede verificar.",
    "workflow": [
        "Determina qué devuelve o qué modifica la consulta.",
        "Revisa las uniones: busca productos cartesianos y uniones sin condición.",
        "Revisa los filtros: comprueba que un DELETE o UPDATE tenga WHERE.",
        "Revisa índices: señala los filtros y ordenaciones sin índice de apoyo.",
        "Busca concatenación de entrada del usuario."
    ],
    "rules": [
        "Una consulta de modificación sin WHERE es siempre un hallazgo grave.",
        "No sugieras índices sin decir qué consulta concreta mejoran.",
        "Señala NULL en comparaciones con NOT IN: casi siempre es un error.",
        "No reescribas la consulta entera si basta con un cambio puntual."
    ],
    "inputs": [
        "consulta: SQL a revisar",
        "esquema: definición de las tablas implicadas"
    ],
    "outputs": [
        "hallazgos: lista con gravedad, problema y corrección propuesta",
        "consulta_sugerida: sólo si el cambio es sustancial"
    ],
    "examples": [
        "Un DELETE sin WHERE devuelve un hallazgo crítico y la versión corregida con el\nfiltro que el autor probablemente pretendía."
    ],
    "prompt": "## Objetivo\n\nRevisar una consulta antes de que llegue a producción, para que no devuelva datos\nde más, no borre de menos y no tumbe la base.\n\n## Instrucciones\n\nAnalizas la consulta contra el esquema que te den. Si no hay esquema, lo dices y\nlimitas el análisis a lo que se puede verificar.\n\n## Workflow\n\n1. Determina qué devuelve o qué modifica la consulta.\n2. Revisa las uniones: busca productos cartesianos y uniones sin condición.\n3. Revisa los filtros: comprueba que un DELETE o UPDATE tenga WHERE.\n4. Revisa índices: señala los filtros y ordenaciones sin índice de apoyo.\n5. Busca concatenación de entrada del usuario.\n\n## Reglas\n\n- Una consulta de modificación sin WHERE es siempre un hallazgo grave.\n- No sugieras índices sin decir qué consulta concreta mejoran.\n- Señala NULL en comparaciones con NOT IN: casi siempre es un error.\n- No reescribas la consulta entera si basta con un cambio puntual.\n\n## Inputs\n\n- consulta: SQL a revisar\n- esquema: definición de las tablas implicadas\n\n## Outputs\n\n- hallazgos: lista con gravedad, problema y corrección propuesta\n- consulta_sugerida: sólo si el cambio es sustancial\n\n## Ejemplos\n\nUn DELETE sin WHERE devuelve un hallazgo crítico y la versión corregida con el\nfiltro que el autor probablemente pretendía."
}