Communitygithub.com

backupcompany/skill-cursor

Manual de acesso a dados em produção para o problema 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 trabalhados 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-cursor?

Esta skill é um guia de boas práticas para resolver o problema N+1 em consultas a bancos de dados, comum em aplicações que utilizam ORMs ou loops ocultos. Ela estabelece que a regra `03` é o piso: sem N+1, sem `SELECT *` em caminhos críticos, consultas baseadas em índices e listas grandes paginadas. A skill ensina como essa regra é violada quando um ORM ou um loop esconde as viagens de ida e volta ao banco. Ela se aplica a qualquer plataforma que lide com acesso a dados, como APIs REST, GraphQL ou consultas diretas a bancos de dados, e fornece casos de exemplo em `references/bad-vs-good.md` para ilustrar más e boas práticas. Antes de carregar uma relação a partir de uma coleção, marcar um mapeamento como eager ou fazer um JOIN um-para-muitos em uma lista paginada, é obrigatório ler o guia de referência. A skill é útil para desenvolvedores e engenheiros que precisam garantir desempenho consistente em endpoints de listagem, evitando quedas bruscas de velocidade quando o volume de dados cresce.

Funciona com~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/backupcompany/skill-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 baseadas em índices, listas grandes paginadas. Esta skill é 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 a partir de uma coleção, marcar um mapeamento como eager ou fazer um JOIN um-para-muitos em uma lista paginada.

Condição de conclusão

  • 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ê pediu, não uma página de linhas unidas.

Individual skills in this repo

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

Habilidades Relacionadas