.agents/skills/prisma-client-api/SKILL.md
Prisma Client API reference covering model queries, filters, operators, and client methods. Use when writing database queries, using CRUD operations, filtering data, or configuring Prisma Client. Triggers on "prisma query", "findMany", "create", "update", "delete", "$transaction".
npx skillsauth add dvegaa20/alia prisma-client-apiInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Complete API reference for Prisma Client. This skill provides guidance on model queries, filtering, relations, and client methods for current Prisma projects.
Reference this skill when:
| Priority | Category | Impact | Prefix |
| -------- | ------------------- | -------- | ---------------- |
| 1 | Client Construction | HIGH | constructor |
| 2 | Model Queries | CRITICAL | model-queries |
| 3 | Query Shape | HIGH | query-options |
| 4 | Filtering | HIGH | filters |
| 5 | Relations | HIGH | relations |
| 6 | Transactions | CRITICAL | transactions |
| 7 | Raw SQL | CRITICAL | raw-queries |
| 8 | Client Methods | MEDIUM | client-methods |
constructor - PrismaClient setup, adapter wiring, logging, and SQL commenter pluginsmodel-queries - CRUD operations and bulk operationsquery-options - select, include, omit, sort, paginationfilters - scalar and logical filter operatorsrelations - relation reads and nested writestransactions - array and interactive transaction patternsraw-queries - $queryRaw and $executeRaw safetyclient-methods - lifecycle methods, extensions, and satisfies patterns for prisma-clientimport { PrismaClient } from '../generated/client'
import { PrismaPg } from '@prisma/adapter-pg'
const adapter = new PrismaPg({
connectionString: process.env.DATABASE_URL,
})
const prisma = new PrismaClient({ adapter })
| Method | Description |
| ----------------------- | --------------------------------- |
| findUnique() | Find one record by unique field |
| findUniqueOrThrow() | Find one or throw error |
| findFirst() | Find first matching record |
| findFirstOrThrow() | Find first or throw error |
| findMany() | Find multiple records |
| create() | Create a new record |
| createMany() | Create multiple records |
| createManyAndReturn() | Create multiple and return them |
| update() | Update one record |
| updateMany() | Update multiple records |
| updateManyAndReturn() | Update multiple and return them |
| upsert() | Update or create record |
| delete() | Delete one record |
| deleteMany() | Delete multiple records |
| count() | Count matching records |
| aggregate() | Aggregate values (sum, avg, etc.) |
| groupBy() | Group and aggregate |
| Option | Description |
| ---------- | ------------------------- |
| where | Filter conditions |
| select | Fields to include |
| include | Relations to load |
| omit | Fields to exclude |
| orderBy | Sort order |
| take | Limit results |
| skip | Skip results (pagination) |
| cursor | Cursor-based pagination |
| distinct | Unique values only |
| Method | Description |
| ---------------- | ------------------------------ |
| $connect() | Explicitly connect to database |
| $disconnect() | Disconnect from database |
| $transaction() | Execute transaction |
| $queryRaw() | Execute raw SQL query |
| $executeRaw() | Execute raw SQL command |
| $on() | Subscribe to events |
| $extends() | Add extensions |
// Find by unique field
const user = await prisma.user.findUnique({
where: { email: '[email protected]' },
})
// Find with filter
const users = await prisma.user.findMany({
where: { role: 'ADMIN' },
orderBy: { createdAt: 'desc' },
take: 10,
})
const user = await prisma.user.create({
data: {
email: '[email protected]',
name: 'Alice',
posts: {
create: { title: 'Hello World' },
},
},
include: { posts: true },
})
const user = await prisma.user.update({
where: { id: 1 },
data: { name: 'Alice Smith' },
})
await prisma.user.delete({
where: { id: 1 },
})
const [user, post] = await prisma.$transaction([
prisma.user.create({ data: { email: '[email protected]' } }),
prisma.post.create({ data: { title: 'Hello', authorId: 1 } }),
])
Detailed API documentation:
references/constructor.md - PrismaClient constructor options
references/model-queries.md - CRUD operations
references/query-options.md - select, include, omit, where, orderBy
references/filters.md - Filter conditions and operators
references/relations.md - Relation queries and nested operations
references/transactions.md - Transaction API
references/raw-queries.md - $queryRaw, $executeRaw
references/client-methods.md - $connect, $disconnect, $on, $extends
| Operator | Description |
| ------------ | ------------------ |
| equals | Exact match |
| not | Not equal |
| in | In array |
| notIn | Not in array |
| lt, lte | Less than |
| gt, gte | Greater than |
| contains | String contains |
| startsWith | String starts with |
| endsWith | String ends with |
| mode | Case sensitivity |
| Operator | Description |
| -------- | ----------------------------------- |
| some | At least one related record matches |
| every | All related records match |
| none | No related records match |
| is | Related record matches (1-to-1) |
| isNot | Related record doesn't match |
Pick the category from the table above, then open the matching reference file for implementation details and examples.
development
React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.
development
React composition patterns that scale. Use when refactoring components with boolean prop proliferation, building flexible component libraries, or designing reusable APIs. Triggers on tasks involving compound components, render props, context providers, or component architecture. Includes React 19 API changes.
tools
Master TypeScript's advanced type system including generics, conditional types, mapped types, template literals, and utility types for building type-safe applications. Use when implementing complex type logic, creating reusable type utilities, or ensuring compile-time type safety in TypeScript projects.
tools
Production-tested setup for Tailwind CSS v4 with shadcn/ui, Vite, and React. Use when: initializing React projects with Tailwind v4, setting up shadcn/ui, implementing dark mode, debugging CSS variable issues, fixing theme switching, migrating from Tailwind v3, or encountering color/theming problems. Covers: @theme inline pattern, CSS variable architecture, dark mode with ThemeProvider, component composition, vite.config setup, common v4 gotchas, and production-tested patterns. Keywords: Tailwind v4, shadcn/ui, @tailwindcss/vite, @theme inline, dark mode, CSS variables, hsl() wrapper, components.json, React theming, theme switching, colors not working, variables broken, theme not applying, @plugin directive, typography plugin, forms plugin, prose class, @tailwindcss/typography, @tailwindcss/forms