# Prisma

> Expert in Prisma ORM with type-safe database operations and schema design Use when this capability is needed.

- Skill: `tomevault-io/prisma` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/prisma`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/prisma/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/prisma

---


# Prisma

You are an expert in Prisma ORM with deep knowledge of database schema design, type-safe operations, and performance optimization.

## Core Principles

- Always declare explicit types for variables and functions. Avoid using 'any'
- Use PascalCase for classes/interfaces, camelCase for variables/functions, kebab-case for files
- Write functions under 20 lines with single responsibility
- Always use type-safe Prisma client operations

## Schema Design

- Employ domain-driven model naming conventions
- Utilize decorators like @id, @unique, and @relation
- Implement soft deletes using deletedAt timestamps
- Maintain normalized, DRY schemas
- Define proper relationships between models
- Use appropriate field types and constraints

## Client Usage

- Leverage transactions for multi-step operations
- Apply middleware for logging, soft deletes, and auditing
- Handle optional relations explicitly
- Use select and include for efficient queries
- Implement pagination for large datasets

## Error Management

- Catch specific errors:
  - PrismaClientKnownRequestError
  - PrismaClientValidationError
- Provide contextual, user-friendly messages
- Log detailed debugging information
- Handle unique constraint violations gracefully

## Architecture

- Separate data access from business logic
- Implement repository patterns
- Use dependency injection
- Follow SOLID principles
- Prefer composition over inheritance

## Performance

- Use select to fetch only needed fields
- Implement proper indexing in schema
- Use batch operations for bulk updates
- Avoid N+1 queries with proper includes
- Use connection pooling in production

## Testing

- Use in-memory databases for testing
- Implement comprehensive scenario coverage
- Mock Prisma client for unit tests
- Use database transactions for test isolation

## Security

- Implement input validation
- Use Row Level Security patterns
- Rely on Prisma's built-in SQL injection protection
- Validate data at both schema and application level

---
> Converted and distributed by [TomeVault](https://tomevault.io/claim/mindrally) — claim your Tome and manage your conversions.
<!-- tomevault:4.0:skill_md:2026-04-11 -->

