Communitygithub.com

backupcompany/skill-cursor

Manual de acceso a datos en producción para el problema de consultas N+1. Útil cuando el código consulta una base de datos dentro de un bucle, un ORM carga perezosamente una relación por fila o un endpoint de listado es rápido con 5 filas y lento con 50. Casos resueltos en references/bad-vs-good.md. No usar para diseño de contratos HTTP ni para estilo Go/JavaScript.

¿Qué es skill-cursor?

Este skill está diseñado específicamente para diagnosticar y resolver el problema de consultas N+1 en aplicaciones de producción. Es útil cuando se observa que un ORM o un bucle oculta múltiples viajes de ida y vuelta a la base de datos, resultando en que una lista de N padres genera N consultas adicionales para la misma relación. El skill se basa en la regla `03` que exige: sin N+1, sin `SELECT *` en rutas calientes, consultas respaldadas por índices y listas grandes paginadas. Funciona con cualquier plataforma que utilice ORM o consultas explícitas a bases de datos (Python/Django, Ruby/Rails, Java/Hibernate, C#/Entity Framework, SQL directo). El flujo típico implica leer primero el archivo de referencia `references/bad-vs-good.md` para entender patrones buenos y malos, luego verificar que el registro de consultas muestre un número fijo de sentencias, y finalmente asegurar que una página de padres devuelva el número solicitado de padres, no una página de filas unidas. El estado 'Done when' se alcanza cuando: una lista de N padres no emite N consultas para la misma relación; el registro de consultas muestra 1 o 2 sentencias (o 1 + N/lote), no una por fila; y una página de padres devuelve la cantidad solicitada.

Compatible con~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/backupcompany/skill-cursor/tree/HEAD/skills/data-access

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Acceso a datos

La regla 03 es el piso: sin N+1, sin SELECT * en una ruta caliente, consultas respaldadas por índices, listas grandes paginadas. Este skill explica cómo falla esa regla cuando un ORM o un bucle oculta los viajes de ida y vuelta.

Lee references/bad-vs-good.md antes de cargar una relación desde una colección, marcar un mapeo como ansioso (eager) o unir uno a muchos en una lista paginada.

Hecho cuando

  • Una lista de N padres no emite N consultas para la misma relación.
  • El registro de consultas o un trace muestra un número fijo de sentencias (1 o 2, o 1 + N/lote), no una por fila.
  • Una página de padres devuelve el número de padres que solicitaste, no una página de filas unidas.

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

Skills relacionados