Drizzle Orm
growupanand/ConvoForm
Type-safe SQL ORM for TypeScript with zero runtime overhead. An agent skill from growupanand/ConvoForm.
A skill your agent uses when modeling data or writing type-safe queries with Prisma ORM in TypeScript — schema.prisma, prisma.config.ts, the generated Prisma Client, and Prisma Migrate, including…
$ npx skills add ericrisco/rsc-harness --skill prisma-orm -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ericrisco/rsc-harness prisma-orm --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/prisma-orm .claude/skills/prisma-orm && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "prisma-orm" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/prisma-orm into .claude/skills/prisma-orm/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "prisma-orm", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/ericrisco/rsc-harness/tree/main/skills/prisma-ormType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add ericrisco/rsc-harness --skill prisma-orm -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ericrisco/rsc-harness prisma-orm --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/prisma-orm .agents/skills/prisma-orm && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "prisma-orm" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/prisma-orm into .agents/skills/prisma-orm/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "prisma-orm", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ericrisco/rsc-harness --skill prisma-orm -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ericrisco/rsc-harness prisma-orm --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/prisma-orm .cursor/skills/prisma-orm && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "prisma-orm" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/prisma-orm into .cursor/skills/prisma-orm/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "prisma-orm", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/ericrisco/rsc-harness.git --path skills/prisma-orm--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add ericrisco/rsc-harness --skill prisma-orm -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ericrisco/rsc-harness prisma-orm --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/prisma-orm .gemini/skills/prisma-orm && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "prisma-orm" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/prisma-orm into .gemini/skills/prisma-orm/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "prisma-orm", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install ericrisco/rsc-harness prisma-ormInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add ericrisco/rsc-harness --skill prisma-orm -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/prisma-orm .github/skills/prisma-orm && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "prisma-orm" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/prisma-orm into .github/skills/prisma-orm/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "prisma-orm", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ericrisco/rsc-harness --skill prisma-orm -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ericrisco/rsc-harness prisma-orm --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/prisma-orm .opencode/skills/prisma-orm && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "prisma-orm" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/prisma-orm into .opencode/skills/prisma-orm/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "prisma-orm", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
prisma-ormA skill your agent uses when modeling data or writing type-safe queries with Prisma ORM in TypeScript — schema.prisma, prisma.config.ts, the generated Prisma Client, and Prisma Migrate, including…
Prisma Orm is an agent skill from ericrisco/rsc-harness. Use when modeling data or writing type-safe queries with Prisma ORM in TypeScript — schema.prisma, prisma.config.ts, the generated Prisma Client, and Prisma Migrate, including the v6 to v7 upgrade. NOT schema-as-TS with a SQL builder (that is drizzle-orm), NOT ORM-agnostic zero-downtime migration (that is db-migrations), NOT Postgres engine tuning (that is postgresdb).
Its SKILL.md is about 3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 8 other files, including scripts and reference files (for example `evals/README.md`, `evals/cases.yaml` and `references/migrations-and-v7-upgrade.md`).
It sits in Databases, covering Database migrations, ORMs and data access and Type safety. It works with Prisma, Drizzle ORM, TypeScript and SQL. The repository describes itself as: Your agent invents things because it has no memory, and can't touch your database because it has no arms. rsc is the meta-harness that gives it both, plus the trade to know the… The licence is MIT.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 92fde8f. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (Shell), which the agent can run.
Shell commands in SKILL.md call:
npmFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
prisma.ioFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Prisma Orm loads about 3k tokens when it runs, and up to ~6.5k if it reads all its reference files. Until then it costs about 98 tokens; SKILL.md has 1,027 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from ericrisco/rsc-harness at commit 92fde8f, republished under its MIT licence (© ericrisco). 1,027 words, ~2,988 tokens.
.claude/skills/prisma-orm/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.You declare a data model in schema.prisma, generate a type-safe client, and query it
without the foot-guns: N+1, over-fetch, unbounded reads. This skill is Prisma 7-native.
If you are writing prisma-client-js, binaryTargets, or new PrismaClient() with no
adapter, you are writing v6 — stop and read the upgrade notes.
Prisma is a schema DSL (schema.prisma) + a generated type-safe client + Prisma Migrate.
The rival, Drizzle, is schema-as-TypeScript with a SQL builder and no codegen — if the
ask says pgTable, drizzle-kit, or drizzle.config.ts, that is ../drizzle-orm/SKILL.md,
not here.
Prisma 7 has four non-negotiables. Get these wrong and nothing runs:
provider = "prisma-client" and output is REQUIRED. The client is no
longer emitted into node_modules — you import it from your generated path. The legacy
prisma-client-js generator is gone.new PrismaClient({ adapter }). Omit
it and you get requires either adapter or accelerateUrl at runtime.prisma.config.ts, not the datasource block. url,
directUrl, shadowDatabaseUrl in schema.prisma are deprecated in v7.binaryTargets no longer exists.Version note: stable is the 7.x line — latest stable is 7.7.0 (2026-04-07) per the
Prisma changelog (accessed 2026-06-02); pin >=7.7.
"Prisma Next" — the future fully-TS foundation, first announced 2026-03-04 in
The Next Evolution of Prisma ORM
— reached Early Access in May 2026 per the
Prisma Next Roadmap (2026-03-20, accessed
2026-06-02). Early Access is forward-looking only and not the install default; for
production work stay on stable 7.x.
Install the CLI, the client, and the adapter for your database. One adapter per DB.
# Postgres
npm i -D prisma
npm i @prisma/client @prisma/adapter-pg
# others: @prisma/adapter-better-sqlite3, -libsql, -mariadb, -mssql, -d1Minimal schema.prisma — note the generator shape and the no-url datasource:
generator client {
provider = "prisma-client"
output = "../src/generated/prisma" // REQUIRED in v7
}
datasource db {
provider = "postgresql" // url moved to prisma.config.ts
}prisma.config.ts holds the connection (replaces url in the datasource):
import "dotenv/config";
import { defineConfig } from "prisma/config";
export default defineConfig({
schema: "prisma/schema.prisma",
migrations: { seed: "tsx prisma/seed.ts" },
datasource: { url: process.env.DATABASE_URL! },
});package.json scripts:
{
"scripts": {
"db:generate": "prisma generate",
"db:migrate": "prisma migrate dev",
"db:deploy": "prisma migrate deploy",
"db:seed": "prisma db seed"
}
}schema.prisma is the single source of truth. Every relation needs an explicit FK field and
an index on that FK column — Prisma does not index foreign keys for you, and a join on an
unindexed column is a sequential scan.
model User {
id String @id @default(cuid())
email String @unique
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
role Role @default(MEMBER)
posts Post[]
}
model Post {
id String @id @default(cuid())
title String
body String @db.Text // native type
published Boolean @default(false)
author User @relation(fields: [authorId], references: [id])
authorId String
createdAt DateTime @default(now())
@@index([authorId]) // index the FK you join/filter on
@@unique([authorId, title]) // composite uniqueness
}
enum Role {
ADMIN
MEMBER
}// Bad: relation with no index on the FK — every join scans the table
model Post {
author User @relation(fields: [authorId], references: [id])
authorId String
}
// Good: add @@index([authorId]) — see the model above.One PrismaClient per process. A new client per request opens a fresh connection pool
each time and exhausts the database. In dev, pin it to globalThis so HMR reuses one instance.
import { PrismaClient } from "../generated/prisma/client";
import { PrismaPg } from "@prisma/adapter-pg";
const adapter = new PrismaPg({ connectionString: process.env.DATABASE_URL });
const globalForPrisma = globalThis as unknown as { prisma?: PrismaClient };
export const prisma =
globalForPrisma.prisma ??
new PrismaClient({ adapter, log: ["query"] }); // log surfaces emitted SQL
if (process.env.NODE_ENV !== "production") globalForPrisma.prisma = prisma;// Bad: no adapter → throws "requires either adapter or accelerateUrl"
export const prisma = new PrismaClient();
// Bad: per-request instance → connection-pool exhaustion
app.get("/u", () => new PrismaClient({ adapter }).user.findMany());Three rules cover most query bugs:
select over include. select returns only the named fields; include adds a
relation but otherwise returns all scalar fields (over-fetch). Never put select and
include at the same level — Prisma rejects it.take to findMany. It is unbounded by default and will happily stream the
whole table.where: { id: { in: ids } }.// Good: shape the row, bound the read
const users = await prisma.user.findMany({
take: 20,
where: { role: "MEMBER" },
select: { id: true, email: true, posts: { select: { title: true } } },
});// Bad: N queries in a loop
for (const id of ids) {
await prisma.user.findUnique({ where: { id } });
}
// Good: one query
const users = await prisma.user.findMany({ where: { id: { in: ids } } });Pagination — pick by table size:
| Need | Use | Why |
|---|---|---|
| Small/medium set, jump to page N | skip + take (offset) | Simple; skip gets slow on huge offsets |
| Large set, infinite scroll, stable | cursor + take | Seeks by indexed id, constant cost |
Writes: upsert for create-or-update; createMany({ data, skipDuplicates: true }) for bulk.
Transactions — pick by dependency:
| Situation | Form |
|---|---|
| Independent writes that must all commit | prisma.$transaction([opA, opB]) (array) |
| Read, branch on the result, then write | prisma.$transaction(async (tx) => { … }) (interactive) |
Lean on generated types instead of hand-writing shapes: Prisma.UserGetPayload<…> and
Prisma.validator keep a query and its type in sync. See
references/queries-and-performance.md for the full cookbook.
relationLoadStrategy decides how relations load:
"join" (default) — one query: a LATERAL JOIN with JSON aggregation on Postgres (correlated
subqueries on MySQL). This is the N+1 killer. The top-level choice cascades to nested loads."query" — one query per relation, joined in the app. Sometimes wins when a join fans out
rows badly.const feed = await prisma.user.findMany({
relationLoadStrategy: "join",
take: 20,
select: { id: true, email: true, posts: { select: { id: true, title: true } } },
});Then: select only the fields you render, and @@index the columns you filter and order on.
To see what Prisma actually emits, set log: ["query"] on the client and read the SQL. For
the deep perf checklist (N+1 detection, index selection, reading the plan) see
references/queries-and-performance.md. For EXPLAIN ANALYZE, index theory, and pool sizing
— that is the database engine's job: ../postgresdb/SKILL.md.
Use raw SQL only through the tagged-template form — it parameterizes. The *Unsafe
variants concatenate strings and open SQL injection.
// Good: parameterized tagged template
const rows = await prisma.$queryRaw`SELECT id FROM "User" WHERE email = ${email}`;
// Bad: interpolated string into the Unsafe API → SQL injection
const rows = await prisma.$queryRawUnsafe(`SELECT id FROM "User" WHERE email = '${email}'`);Compose fragments with Prisma.sql / Prisma.join. For fully type-checked results, write
.sql files and use $queryRawTyped. Safety matrix in
references/queries-and-performance.md.
Pick the command by environment — this is the most common mix-up:
| Command | Use where | Does |
|---|---|---|
prisma migrate dev | development only | Creates a migration, applies it, regenerates the client; uses a shadow DB |
prisma migrate deploy | CI / production | Applies pending migrations only — never generates, never resets |
prisma db push | prototyping / spikes | Syncs schema to the DB with no migration file |
Rules with teeth:
migrate dev against production. It can reset the database.migrate dev detect drift; it must be a separate, disposable database.prisma migrate resolve --applied|--rolled-back.seed entry in prisma.config.ts and prisma db seed.Failed-migration recovery, baselining an existing database, and the full Prisma 6 to 7
upgrade are in references/migrations-and-v7-upgrade.md. For ORM-independent evolution
strategy (expand/contract, dual-write, zero-downtime backfills) that is
../db-migrations/SKILL.md.
| Anti-pattern | Why it bites | Do instead |
|---|---|---|
new PrismaClient() with no adapter | v7 throws requires either adapter or accelerateUrl | Pass a driver adapter |
New PrismaClient per request | Pool exhaustion, dropped connections | One instance per process; globalThis in dev |
prisma-client-js generator | Legacy v6 generator, removed in v7 | provider = "prisma-client" + output |
binaryTargets in the generator | Rust-era artifact; v7 is Rust-free | Delete it |
Unbounded findMany() | Streams the whole table | Always pass take (and cursor for paging) |
Fat include everywhere | Over-fetches every scalar | select only the rendered fields |
Query inside a for loop | N+1 round trips | Batch where: { id: { in: ids } } or relationLoadStrategy: "join" |
$queryRawUnsafe(\…${x}…`)` | SQL injection | Tagged $queryRaw\…${x}`` |
migrate dev in CI/prod | Can reset the production DB | migrate deploy |
| Editing an applied migration | Drift, broken history | New migration; migrate resolve for drift |
FK with no @@index | Joins do sequential scans | @@index([fkColumn]) |
Run scripts/verify.sh <path> to statically check emitted artifacts: it confirms the
prisma-client generator + output, an adapter on the constructor, and flags
$queryRawUnsafe injection, binaryTargets, unbounded findMany, and wrong-ORM
contamination. Read-only; no database connection.
© ericrisco, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 5 other files (scripts, references) in skills/prisma-orm of ericrisco/rsc-harness.
Open the folder on GitHubat commit 92fde8f
Prisma Orm next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Prisma Orm this skillericrisco/rsc-harness | 156 | — | ~3k | Automated safety check: Pass | MIT | |
| Drizzle Ormgrowupanand/ConvoForm | 101 | 1 repos | ~2.7k | Automated safety check: Pass | Apache-2.0 | |
| Drizzle Orm Expertdavila7/claude-code-templates | 32k | 3 repos | ~2.6k | Automated safety check: Pass | MIT | |
| Prisma 8 Contract-First ORMprisma/orm | 48k | — | ~3.7k | Automated safety check: Notes | Apache-2.0 | |
| Daoyou Data LayerChurchTao/Daoyou | 119 | — | ~1.9k | Automated safety check: Pass | GPL-3.0 | |
| Database Migrationsaffaan-m/ECC | 274k | 4 repos | ~3k | Automated safety check: Pass | MIT |
growupanand/ConvoForm
Type-safe SQL ORM for TypeScript with zero runtime overhead. An agent skill from growupanand/ConvoForm.
davila7/claude-code-templates
Expert in Drizzle ORM for TypeScript — schema design, relational queries, migrations, and serverless database integration.
prisma/orm
Routes Prisma 8 tasks such as contracts, migrations, queries and upgrades to the right reference files for projects on the contract-first @prisma/orm packages.
ChurchTao/Daoyou
Daoyou Drizzle/PostgreSQL、事务、V6 角色与宗门归属、统一背包、Redis 战局和回放归档指南。Use when modifying schema, migrations, repositories, persistence mappers, resource commits or durable game models.
affaan-m/ECC
Safe, reversible database migration patterns: forward-only production changes, expand-contract zero-downtime renames, concurrent indexes, batched backfills, and per-tool workflows for PostgreSQL…
almeidazs/better-drizzle
Write, review, and debug code that uses better-drizzle, the typed repository layer over Drizzle ORM 1.x (better(db), client.users.findMany, paginate, cursor, upsertMany, relation include/connect…
ericrisco/rsc-harness
A skill your agent uses when designing or analyzing a controlled experiment — falsifiable hypothesis, sample size from an MDE, reading significance/CI/power, CUPED, or rescuing tests that won't go…
ericrisco/rsc-harness
A skill your agent uses when making a web UI conform to WCAG 2.2 Level AA — axe-core or Lighthouse a11y violations, keyboard operability, focus management, ARIA roles/names/live regions, contrast…
ericrisco/rsc-harness
A skill your agent uses when running or fixing paid acquisition on Google or Meta — campaign structure (Performance Max, Demand Gen, Search, Advantage+), platform-fit creative, budget/scaling rules…
ericrisco/rsc-harness
A skill your agent uses when measuring whether an LLM or agent system actually got better and gating merges on it: golden sets, fixing an inflated LLM-as-judge, scoring RAG (faithfulness, contextual…
ericrisco/rsc-harness
A skill your agent uses when a creative goal must become a finished media file: pick and order generative-media models per modality — AI voiceover, image-to-video clips, score — then glue them with…
ericrisco/rsc-harness
A skill your agent uses when instrumenting product or web analytics — GA4/PostHog SDK wiring, event taxonomy, funnels, double-counted events, consent gating, PII scrubbing.
Works with
Categories
A skill your agent uses when modeling data or writing type-safe queries with Prisma ORM in TypeScript — schema.prisma, prisma.config.ts, the generated Prisma Client, and Prisma Migrate, including…. Prisma Orm is an agent skill from ericrisco/rsc-harness.ts, the generated Prisma Client, and Prisma Migrate, including the v6 to v7 upgrade.
Prisma Orm fits situations like: writing type-safe queries with Prisma ORM in TypeScript — schema.prisma; prisma.config.ts; the generated Prisma Client; including the v6 to v7 upgrade.
Run `npx skills add ericrisco/rsc-harness --skill prisma-orm -a claude-code`. Or copy the skill folder (skills/prisma-orm in ericrisco/rsc-harness) into .claude/skills/prisma-orm in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ericrisco/rsc-harness --skill prisma-orm -a codex`. Or copy the skill folder (skills/prisma-orm in ericrisco/rsc-harness) into .agents/skills/prisma-orm in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ericrisco/rsc-harness --skill prisma-orm -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/prisma-orm, .gemini/skills/prisma-orm, .github/skills/prisma-orm and .opencode/skills/prisma-orm in your project.
Going by SKILL.md and its folder, Prisma Orm needs a shell for the scripts in its folder and the command-line tools its instructions call (npm). Our summary lists: Node.js; A Bash shell.
SKILL.md names 1 domain. As links in the text: prisma.io. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Prisma Orm is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 3.5k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Prisma Orm: Drizzle Orm (growupanand/ConvoForm, 101 stars), Drizzle Orm Expert (davila7/claude-code-templates, 32k stars), Prisma 8 Contract-First ORM (prisma/orm, 48k stars) and Daoyou Data Layer (ChurchTao/Daoyou, 119 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ericrisco (a GitHub user) maintains it in ericrisco/rsc-harness, which has 156 GitHub stars. The repository holds 229 skills in this directory. The repository was last updated on October 6, 2026.
Source: ericrisco/rsc-harness on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.