Communitygithub.com

sshhdkeyu/skill-prod-cursor

Manual de acceso a datos en producción para el problema de consultas N+1. Úsalo cuando el código consulte una base de datos dentro de un bucle, un ORM cargue relaciones por fila o un endpoint de lista sea rápido con 5 filas y lento con 50. Los casos resueltos están en references/bad-vs-good.md. No lo uses para diseño de contratos HTTP ni para estilo de lenguaje Go/JavaScript.

¿Qué es skill-prod-cursor?

Esta skill proporciona un manual de acceso a datos en producción para diagnosticar y corregir el problema de consultas N+1. Es útil cuando se detectan múltiples consultas a la base de datos dentro de bucles, cuando un ORM carga relaciones perezosamente por cada fila, o cuando un endpoint de lista se vuelve lento al aumentar el número de elementos. La skill se basa en la regla `03` que prohíbe N+1, SELECT * en caminos críticos, consultas sin índice y listas grandes sin paginación. Incluye una referencia (references/bad-vs-good.md) con ejemplos de código malo vs. bueno y criterios claros para considerar resuelto el problema: el log de consultas muestra un número fijo de sentencias (1 o 2, o 1+N/lote) en lugar de una por fila, y una página de padres devuelve exactamente el número solicitado sin duplicados por joins. Es compatible con cualquier stack que use ORM o acceso directo a base de datos (por ejemplo, Rails, Django, Hibernate, Entity Framework, etc.) y está diseñada para ser ejecutada por agentes de IA como Claude Code, Cursor o Codex.

Compatible con~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/sshdkeyu/skill-prod-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 un camino crítico, consultas respaldadas por índices, listas grandes paginadas. Esta skill es cómo esa regla falla 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, 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 4 individual skills — each has its own dedicated page.

Skills relacionados