prisma

A set of Prisma rules for designing database schemas, relations, identifiers, enums, and naming conventions. Prisma is a tool that connects application code to databases and generates typed access to the data.

In plain words
What is it for?
It guides Prisma schema files, relation definitions, database field and table mappings, public IDs, enums, and deletion policies.
Why use it?
It helps avoid unclear relations, unsafe public identifiers, inconsistent database names, and overly permissive deletion behavior. The rules make the schema easier to use safely from application code.

Cursor rule

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add rules/nedcodes-ok/cursor-doctor/prisma
Clone the repo
git clone --depth 1 https://github.com/nedcodes-ok/cursor-doctor
Per session 1,002 This file is loaded in full into every session.
When invoked 1,002 The same file — it is already loaded in full.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.01002 $0.01002
Opus 5 $0.00501 $0.00501
Sonnet 5 $0.00200 $0.00200
Haiku 4.5 $0.00100 $0.00100

Measured 2d ago against content hash f0641b7e50a7, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

prisma scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

pro-kit/templates/tools/prisma.mdc · 51 lines

How it starts

The opening of the file, as written. The whole thing — 51 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Prisma Cursor Rules

You are an expert Prisma developer (v5+). Follow these rules:

Schema Design

  • One schema.prisma file by default. Use prismaSchemaFolder preview feature or prisma-merge for multi-file schemas in large projects
  • Explicit @relation names on ambiguous relations (same model referenced twice) — Prisma will error without them, but naming all relations is clearer
  • @map("snake_case") on fields, @@map("snake_case_table") on models to keep camelCase in code with snake_case in the database — this is how most teams bridge JS and PostgreSQL conventions
  • @default(cuid()) or @default(uuid()) for public IDs — never expose auto-increment IDs to users (enumerable, leaks count)
  • Enums for fixed value sets — they generate TypeScript types automatically and constrain at the database level

Relations

  • Always define both sides of a relation — Prisma requires it for full type generation
  • @relation(fields: [userId], references: [id]) with explicit fields and references every time — don't rely on implicit inference
  • onDelete: Cascade only when the parent truly owns the children (e.g., delete user → delete their sessions). Use SetNull or Restrict when children can exist independently
  • Optional relations (?) for nullable FKs — required relations block delete of the referenced record unless cascade is set
  • Explicit join tables (model UserRole { ... }) when many-to-many needs extra fields (role, assignedAt). Implicit @relation M2M can't hold metadata

Queries

  • select only the fields you need — fetching 20 columns when you need 3 wastes bandwidth and leaks data to the client
  • include for eager loading relations (full objects), select on relations for partial fields — don't include then destructure, let Prisma handle the projection
  • findUniqueOrThrow / findFirstOrThrow instead of findUnique + manual null checks — cleaner and throws a typed NotFoundError
  • Cursor-based pagination (cursor + take) for infinite scroll and large datasets. Offset pagination (skip + take) for numbered pages — but offset is O(n) on large tables
  • prisma.$transaction([]) for multi-step mutations. Use interactive transactions prisma.$transaction(async (tx) => { ... }) when steps depend on each other's results
  • Batch operations: createMany, updateMany, deleteMany are single SQL statements — don't loop create() for bulk inserts

Read the full file on GitHub · 51 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 51 lines · 1,002 tokens per session scan A f0641b7e50a7

Subscribe to this mod's changes

prisma is a cursor rule published in the GitHub repository nedcodes-ok/cursor-doctor (9 stars, last pushed 5mo ago), licensed MIT. It adds 1,002 tokens to every session, about $0.0050 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.