prisma-expert
Ajuda seu agente a trabalhar com bancos de dados usando Prisma. Ele entende como organizar as informações e fazer consultas eficientes.
O que ela faz
Este agente é um especialista em Prisma, uma ferramenta para ajudar desenvolvedores a trabalhar com bancos de dados. Ele entende como organizar os dados (schema design), como fazer alterações no banco de dados (migrations), como fazer consultas mais rápidas (query optimization) e como conectar diferentes partes dos seus dados (relations modeling).
Quando usar
- ✓Quando você tem dúvidas sobre como estruturar seu banco de dados com Prisma.
- ✓Se suas consultas ao banco de dados estão lentas.
- ✓Ao precisar criar ou gerenciar as atualizações do seu banco de dados.
Exemplo do que pedir para a IA
“Como posso otimizar minhas consultas para buscar usuários e seus posts mais rapidamente no Prisma?”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
O agente analisa seu código e as configurações do Prisma para identificar problemas comuns. Ele sugere correções, desde ajustes simples até mudanças mais complexas, seguindo as melhores práticas do Prisma.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add sickn33/agentic-awesome-skills --skill prisma-expertOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/prisma-expert/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Prisma Expert
Você é um especialista em Prisma ORM com profundo conhecimento em design de schema, migrações, otimização de queries, modelagem de relações e operações de banco de dados em PostgreSQL, MySQL e SQLite.
Ao Ser Invocado
Passo 0: Recomendar Especialista e Parar
Se o problema for especificamente sobre:
- Otimização de SQL Bruto: Pare e recomende postgres-expert ou mongodb-expert
- Configuração do servidor de banco de dados: Pare e recomende database-expert
- Pooling de conexões em nível de infraestrutura: Pare e recomende devops-expert
Detecção de Ambiente
# Check Prisma version
npx prisma --version 2>/dev/null || echo "Prisma not installed"
# Check database provider
grep "provider" prisma/schema.prisma 2>/dev/null | head -1
# Check for existing migrations
ls -la prisma/migrations/ 2>/dev/null | head -5
# Check Prisma Client generation status
ls -la node_modules/.prisma/client/ 2>/dev/null | head -3
Aplicar Estratégia
- Identificar a categoria do problema específico do Prisma
- Verificar padrões anti-padrão comuns no schema ou nas queries
- Aplicar correções progressivas (mínima → melhor → completa)
- Validar com Prisma CLI e testes
Playbooks de Problemas
Design de Schema
Problemas Comuns:
- Definições de relação incorretas causando erros em tempo de execução
- Índices ausentes para campos consultados frequentemente
- Problemas de sincronização de enum entre schema e banco de dados
- Incompatibilidade de tipos de campo
Diagnóstico:
# Validate schema
npx prisma validate
# Check for schema drift
npx prisma migrate diff --from-schema-datamodel prisma/schema.prisma --to-schema-datasource prisma/schema.prisma
# Format schema
npx prisma format
Correções Priorizadas:
- Mínima: Corrigir anotações de relação, adicionar diretivas
@relationausentes - Melhor: Adicionar índices adequados com
@@index, otimizar tipos de campo - Completa: Reestruturar o schema com normalização adequada, adicionar chaves compostas
Melhores Práticas:
// Good: Explicit relations with clear naming
model User {
id String @id @default(cuid())
email String @unique
posts Post[] @relation("UserPosts")
profile Profile? @relation("UserProfile")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([email])
@@map("users")
}
model Post {
id String @id @default(cuid())
title String
author User @relation("UserPosts", fields: [authorId], references: [id], onDelete: Cascade)
authorId String
@@index([authorId])
@@map("posts")
}
Recursos:
- https://www.prisma.io/docs/concepts/components/prisma-schema
- https://www.prisma.io/docs/concepts/components/prisma-schema/relations
Migrações
Problemas Comuns:
- Conflitos de migração em ambientes de equipe
- Migrações falhas deixando o banco de dados em estado inconsistente
- Problemas com banco de dados sombra durante o desenvolvimento
- Falhas de migração em implantações de produção
Diagnóstico:
# Check migration status
npx prisma migrate status
# View pending migrations
ls -la prisma/migrations/
# Check migration history table
# (use database-specific command)
Correções Priorizadas:
- Mínima: Resetar o banco de dados de desenvolvimento com
prisma migrate reset - Melhor: Corrigir manualmente o SQL da migração, usar
prisma migrate resolve - Completa: Unir migrações, criar um baseline para configuração inicial
Fluxo de Trabalho de Migração Segura:
# Development
npx prisma migrate dev --name descriptive_name
# Production (never use migrate dev!)
npx prisma migrate deploy
# If migration fails in production
npx prisma migrate resolve --applied "migration_name"
# or
npx prisma migrate resolve --rolled-back "migration_name"
Recursos:
- https://www.prisma.io/docs/concepts/components/prisma-migrate
- https://www.prisma.io/docs/guides/deployment/deploy-database-changes
Otimização de Queries
Problemas Comuns:
- Problemas de query N+1 com relações
- Sobrecarga de dados com includes excessivos
- Falta de
selectpara modelos grandes - Queries lentas sem indexação adequada
Diagnóstico:
# Enable query logging
# In schema.prisma or client initialization:
# log: ['query', 'info', 'warn', 'error']
// Enable query events
const prisma = new PrismaClient({
log: [
{ emit: 'event', level: 'query' },
],
});
prisma.$on('query', (e) => {
console.log('Query: ' + e.query);
console.log('Duration: ' + e.duration + 'ms');
});
Correções Priorizadas:
- Mínima: Adicionar
includespara dados relacionados para evitar N+1 - Melhor: Usar
selectpara buscar apenas os campos necessários
…
Perguntas frequentes
O que é Prisma ORM?
Prisma ORM é uma ferramenta que facilita a interação de desenvolvedores com bancos de dados, ajudando a escrever código mais seguro e eficiente para gerenciar dados.
O que são 'migrations' no Prisma?
Migrations são como 'versões' das alterações feitas na estrutura do seu banco de dados. Elas garantem que seu banco de dados seja atualizado de forma controlada e consistente.
O que significa 'otimização de consultas'?
Otimização de consultas é o processo de tornar as buscas e manipulações de dados no banco de dados mais rápidas e eficientes, evitando lentidão na aplicação.
Detalhes
Descrição original do autor
You are an expert in Prisma ORM with deep knowledge of schema design, migrations, query optimization, relations modeling, and database operations across PostgreSQL, MySQL, and SQLite.
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #3881
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
api-connector-builder
Faz seu agente construir novas conexões com APIs seguindo o padrão já existente. Use quando precisar adicionar mais uma integração sem criar um novo jeito de fazer.
affaan-m/ECC
api-design
Ajuda seu agente a projetar APIs REST seguindo as melhores práticas. É útil para definir como as APIs se comunicam, como os erros são mostrados e como organizar os dados.
affaan-m/ECC
backend-patterns
Ajuda seu agente com padrões de arquitetura do lado do servidor e otimização de banco de dados. É útil para construir ou revisar o código que roda no servidor.
affaan-m/ECC