Communitygithub.com

sshddkeyu/skill-prod-cursor

Manual de acesso a dados em produção para o problema da consulta N+1. Use quando o código consulta um banco de dados dentro de um loop, um ORM carrega preguiçosamente uma relação por linha, ou um endpoint de lista é rápido com 5 linhas e lento com 50. Casos resolvidos estão em references/bad-vs-good.md. Não use para design de contrato HTTP ou para estilo de linguagem Go/JavaScript.

O que é skill-prod-cursor?

Esta skill fornece um playbook orientado a ação para diagnosticar e corrigir o problema N+1 em aplicações de produção, especialmente ao usar ORMs ou loops que ocultam viagens de ida e volta ao banco de dados. Ela define uma regra base (Regra 03) que proíbe N+1, SELECT * em caminhos críticos, consultas sem índices e listas grandes sem paginação. A skill orienta o desenvolvedor a ler o arquivo de referência references/bad-vs-good.md antes de carregar relações de coleções, marcar mapeamentos como ansiosos ou fazer join em relações um-para-muitos em listas paginadas. Ela é adequada para plataformas como Claude Code, Cursor e Codex, e é acionada quando o código em um ambiente de produção apresenta lentidão em listas, especialmente ao crescer de 5 para 50 linhas. Os critérios de conclusão são claros: uma lista de N pais não deve gerar N consultas para a mesma relação; o log de consultas deve mostrar um número fixo de declarações (1 ou 2, ou 1 + N/lote), não uma por linha; e uma página de pais deve retornar exatamente o número solicitado, não uma página de linhas com join.

Funciona com~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/sshdkeyu/skill-prod-cursor/tree/HEAD/skills/data-access

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Acesso a dados

A Regra 03 é o piso: sem N+1, sem SELECT * em caminhos críticos, consultas com índices, listas grandes paginadas. Esta skill descreve como essa regra falha quando um ORM ou um loop esconde as viagens de ida e volta.

Leia references/bad-vs-good.md antes de carregar uma relação de uma coleção, marcar um mapeamento como ansioso, ou fazer join em uma relação um-para-muitos em uma lista paginada.

Concluído quando

  • Uma lista de N pais não emite N consultas para a mesma relação.
  • O log de consultas ou um trace mostra um número fixo de declarações (1 ou 2, ou 1 + N/lote), não uma por linha.
  • Uma página de pais retorna o número de pais que você solicitou, não uma página de linhas com join.

Individual skills in this repo

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

Habilidades Relacionadas