
prisma-next-extension-upgrade
Upgrade Prisma Next in your extension. Bumps every @prisma-next/ dependency to the requested target (or npm latest), runs the per-transition upgrade instructions for the extension SPI (middleware lifecycle, codec / migration-tools / framework-components churn, seed-migration on-disk shape), verifies the pins are correctly exact via prisma-next-check-pins, runs the extension's own typecheck and tests, and commits each minor step on its own. Use when the user asks to "upgrade Prisma Next" in an extension package, or to update an extension's @prisma-next/ deps to a new minor.
- Installs
- 1.2K
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/prisma/prisma-next --skill prisma-next-extension-upgrade- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads prisma-next-extension-upgrade automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Upgrade Prisma Next (extension)
This skill upgrades a project that is a Prisma Next extension — a package that consumes the framework SPI (@prisma-next/contract, @prisma-next/framework-components, @prisma-next/migration-tools, etc.) and exposes contract / middleware / codec / migration surfaces that downstream apps install via prisma-next.config.ts.
If the project you are upgrading is a consumer app (it imports @prisma-next/postgres or @prisma-next/mongo from its application code), use the prisma-next-upgrade skill instead — or both, if the repo contains both a consumer app and an extension package, in which case run the user flow first then the extension flow in the same session.
Step 0 — Ensure the skill is up to date
Before doing anything else, ensure this skill is installed at @latest and reload it. Bug fixes to old per-transition upgrade instructions ship in the latest skill release as part of its cumulative set; running against a stale skill can apply a known-broken translation.
Concretely: if the agent runtime supports an in-session refresh, perform it now. Otherwise, exit and ask the user to re-install:
pnpm dlx skills add prisma/prisma-next/skills/extension-author --all
The extension-author skill subpath is intentionally unpinned (always main) — the cumulative instruction set is the source of truth and the latest release fixes apply to every prior transition.
Then re-invoke this skill before proceeding.
Role detection
This skill applies when the project is a Prisma Next extension. Heuristics:
package.jsondeclares@prisma-next/contract(or another SPI package) underdependenciesorpeerDependencies, and- the package's
namematches^@.*/extension-(the in-tree convention used by@prisma-next/extension-pgvector, etc.), or - the package is referenced as an
extensionsentry from a sibling app'sprisma-next.config.tsin the same monorepo.
If the project additionally consumes Prisma Next from its own app code, install the prisma-next-upgrade skill (pnpm dlx skills add prisma/prisma-next/skills/upgrade --all) and run the user flow first, then this flow in the same session.
If detection is ambiguous, ask the user which role to operate under.
Version detection
- From-version. Read the currently-installed Prisma Next version from
pnpm-lock.yaml(orpackage-lock.json/yarn.lock) by inspecting the resolved version of any@prisma-next/*entry. If the lockfile shows multiple@prisma-next/*packages at different minors, the lowest minor is the from-version. - To-version. Either the version the user specified, or the latest stable from
npm view @prisma-next/contract dist-tags.latest.
Report both back to the user before continuing.
Transition chain
If the from-to delta spans multiple minor versions (e.g. 0.6 → 0.8), build the chain of one-minor steps:
0.6 → 0.7 → 0.8
Apply each step in order, fully: bump, install, run instructions, check pins, validate, commit — before moving to the next. Halt the chain on the first failed step.
Per-step flow
This flow assumes you are an external extension author — your extension lives in its own repo and consumes @prisma-next/* from npm. (Extensions inside the prisma/prisma-next monorepo itself are bumped via pnpm bump-minor / scripts/set-version.ts, which rewrites every workspace:<X.Y.Z> spec in lockstep with the root version; they do not run this skill.)
For each (from, to) step in the chain:
-
Bump
@prisma-next/*deps. Rewrite every@prisma-next/*entry in the extension'spackage.jsonto the exact<to>version (e.g."0.8.0"— no caret, no tilde, no range, noworkspace:specifier; the exact-pin rule below details why). All entries advance to the same version. Cover whichever dep field(s) the extension uses today —dependenciesand/orpeerDependencies— and anyoptionalDependencies. The extension-upgrade skill itself ships viapnpm dlx skills add(see Step 0); there is no@prisma-next/extension-upgrade-skillnpm entry to bump. The companion CLI tool is@prisma-next/extension-author-tools— leave its pin at the version the extension's CI is currently using; bumping it is independent of the framework upgrade and is normally a no-op. -
Install. Run
pnpm install(or the project's lockfile-managing command). The extension's source is now broken against the new SPI — the upgrade instructions for<from> → <to>exist to fix it. -
Check pins. Run
pnpm exec prisma-next-check-pins(shipped by@prisma-next/extension-author-tools). This sanity check asserts that every@prisma-next/*entry acrossdependencies,peerDependencies, andoptionalDependenciesis a single exact-version string and that all entries share the same version. If the check fails, the bump step did not rewrite every spec — fix the offending entries and re-run before proceeding. -
Read the upgrade instructions. Load
upgrades/<from>-to-<to>/instructions.mdfrom this skill package. Parse the YAML frontmatter and pay particular attention to itschanges[]array. -
Apply each change. For each entry in
changes[]:- If the entry has a
detectionblock (a glob + content predicate), run it. If no files match, skip this change. - If the entry has no
detection, apply unconditionally. - If the entry names a
script:(a relative path next toinstructions.md), invoke it from the project root:*.ts→pnpm exec tsx <skill>/upgrades/<from>-to-<to>/<script>*.sh→bash <skill>/upgrades/<from>-to-<to>/<script>- codemods → invoke per the script's own
instructions.mdprose.
- If the entry has no
script, follow the prose body ininstructions.mddirectly.
If
changes[]is empty (the placeholder shape for transitions with no extension-side breaking changes), this sub-step is a no-op — proceed to validation. - If the entry has a
-
Validate. Run
pnpm build && pnpm test(or the project's equivalent — thescriptsfield of the extension'spackage.jsonis the discovery surface). If anything is red, halt the chain. Do not auto-roll-back; surface the failure to the user with the failing change'sid(from the frontmatter), the file paths the change operated on, and the inferred remediation. -
Commit. Create one commit containing this step's changes: the
package.jsonbump, the lockfile churn frompnpm install, and any source-file rewrites from the applied changes. Use the message:chore: upgrade @prisma-next/* to <to-version>(Or the extension's own commit-message convention, if it has one.) One commit per step — never squash steps.
Move on to the next step. Repeat.
Exact-pin rule
Prisma Next extensions pin every @prisma-next/* dependency to a single exact version (no ^, no ~, no range, no wildcard, no workspace: specifier in the published package.json). All @prisma-next/* entries share the same version. The pin advances only after a successful upgrade run against the new minor.
prisma-next-check-pins (shipped by @prisma-next/extension-author-tools — install with pnpm add -D @prisma-next/extension-author-tools) enforces the rule. Run it locally with:
pnpm exec prisma-next-check-pins
Wire it into the extension's CI alongside the build/test step so an accidental range pin fails the PR before it lands.
When the chain is done
Report back to the user: the number of steps applied, the SHAs of the commits you made, and any open follow-ups.
Failure surfaces
When a step fails:
- Surface a structured error with code
PN-UPGRADE-NNNN, the failing change'sid, the file paths the change touched (or the lockfile, or the pin check, or the validation command), and the inferred remediation. - Do not retry automatically.
- Do not auto-roll-back the commit. The user can revert if they want a clean slate.
FAQ
What does the prisma-next-extension-upgrade skill do?
Upgrade Prisma Next in your extension. Bumps every @prisma-next/ dependency to the requested target (or npm latest), runs the per-transition upgrade instructions for the extension SPI (middleware lifecycle, codec / migration-tools / framework-components churn, seed-migration on-disk shape), verifies the pins are correctly exact via prisma-next-check-pins, runs the extension's own typecheck and tests, and commits each minor step on its own. Use when the user asks to "upgrade Prisma Next" in an extension package, or to update an extension's @prisma-next/ deps to a new minor.
How do I install prisma-next-extension-upgrade?
Run npx skills add https://github.com/prisma/prisma-next --skill prisma-next-extension-upgrade in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/prisma-next-extension-upgrade/ (personal) or .claude/skills/prisma-next-extension-upgrade/ (project).
Which AI agents can use prisma-next-extension-upgrade?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is prisma-next-extension-upgrade safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains prisma-next-extension-upgrade?
It is published by prisma in prisma/prisma-next, and it is an official skill from the maker of the technology it covers. It has 1,226 recorded installs.
More from prisma/prisma-next
prisma-next
prisma/prisma-next
Route a vague Prisma Next prompt to the right specific skill. Use for "help me with Prisma Next", "what is Prisma Next", "explain Prisma Next", "I'm new to PN", "where do I start", "what can I do with Prisma Next", "what can I do next with Prisma", "just ran createprisma", "tour of Prisma Next", "Prisma Next overview", and comparison questions like "Prisma Next vs Prisma 7", "PN vs Drizzle", "PN vs Kysely", "PN vs TypeORM". Do NOT use when the prompt clearly matches a workflow skill — adoption / quickstart / first-touch orientation / brownfield introspection, schema / contract editing, migration authoring (db update / migration plan / migrate), migration review on deploy / concurrent migrations, queries / db.orm / db.sql / TypedSQL, Supabase / RLS / role binding, runtime / db.ts / middleware wiring, build / Vite plugin / Next.js plugin, debug / structured error envelopes / PN- error codes, or feedback / bug report / feature request — load that sibling skill directly.
prisma-next-migrations
prisma/prisma-next
Author Prisma Next migrations — choose db update vs migration plan, edit the framework-rendered migration.ts (replace placeholder sentinels with dataTransform closures), recover from MIGRATION.HASHMISMATCH or PN-MIG-2001 unfilled placeholder. Use for prisma migrate dev, prisma migrate deploy, prisma db push, db update, db update --dry-run, migration plan, migrate, migration new, migration show, db verify, db sign, data migration, this.dataTransform, dataTransform, placeholder, generated migration.ts, edit migration.ts, MIGRATION.HASHMISMATCH, schema drift.
prisma-next-queries
prisma/prisma-next
Write Prisma Next queries for Postgres, SQLite, or Mongo — pick a lane (Postgres/SQLite db.orm. + db.sql. ; Mongo db.orm. + db.query.from(...) pipeline builder), filter / project / sort / paginate, eager-load with .include(...), Postgres/SQLite db.transaction(...), Postgres/SQLite ORM .aggregate(...), Mongo aggregations via query builder, namespace-aware accessors (db.orm. . , db.sql. . ). Triggers: query, where, match, select, project, orderBy, take, skip, include, lookup, first, all, count, aggregate, group, create, update, delete, upsert, returning, transaction, db.close, script teardown, variant, polymorphism, drizzle-style, kysely-style. Notes: .all() is a Thenable (just await it), iterators are single-use (RUNTIME.ITERATORCONSUMED), Postgres count is number while sum/avg/min/max are number null, ranges use chained .where() or and(...) (no .between(...)).
prisma-next-migration-review
prisma/prisma-next
Review what Prisma Next migrations will run on merge or deploy, render the migration graph, resolve concurrent / diamond-convergence conflicts, and configure environment refs for CI. Use for "what migrations are going to run", "what runs on deploy", merge conflict, diamond convergence, concurrent migrations, migration status, ref management, staging, production, MIGRATION.DIVERGED, MIGRATION.NOMARKER, MIGRATION.MARKERNOTINHISTORY, prisma migrate status, prisma migrate diff, prisma migrate resolve.
prisma-next-debug
prisma/prisma-next
Read a Prisma Next structured error envelope and route to the right recovery — code, domain, severity, why, fix, meta. Use for error, exception, my emit failed, my query won't typecheck, my query crashed, my migration won't apply, MIGRATION.HASHMISMATCH, BUDGET.ROWSEXCEEDED, BUDGET.TIMEEXCEEDED, RUNTIME.ABORTED, PLAN.HASHMISMATCH, CONTRACT.MARKERMISSING, PN-RUN-3001, PN-RUN-3002, PN-RUN-3030, PN-MIG-2001, PN-CLI-4011, PN-SCHEMA-0001, drift, capability missing, planner conflict, prisma studio, EXPLAIN, query log, db.end, db.close, script won't exit, hangs, close connection, pool.end, client is closed.
prisma-next-runtime
prisma/prisma-next
Wire the Prisma Next runtime — db.ts setup using postgres (...) from @prisma-next/postgres/runtime, sqlite (...) from @prisma-next/sqlite/runtime, or mongo (...) from @prisma-next/mongo/runtime; middleware composition (telemetry from @prisma-next/middleware-telemetry; lints and budgets), DATABASEURL config, per-environment branching, switching between Postgres, SQLite, and Mongo façades. Use for db.ts, postgres(), sqlite(), mongo(), middleware, telemetry, lints, budgets, DATABASEURL, .env, connection pool, poolOptions, dev vs prod config, transactions, db.transaction, read replicas, multi-database, script won't exit, hangs, close connection, db.end, db.close, pool.end, [Symbol.asyncDispose], await using.
Popular data & databases skills
supabase-postgres-best-practices
supabase/agent-skills
Postgres best practices maintained by Supabase, for Postgres running anywhere. Load this skill BEFORE writing or changing anything that lives in a Postgres database: creating or altering tables and columns (including choosing column types), schema design, migrations and declarative schema files, RLS policies and the tests that verify them, indexes, triggers, database functions, queues and scheduled jobs (pgcron, pgmq), vector/semantic search (pgvector), and restoring dumps (pgrestore) or importing data. Also load it when diagnosing slow queries, high CPU, timeouts, EXPLAIN plans, connection exhaustion, locking, bloat, or rows visible to the wrong user or tenant. This is not just a performance guide — schema, migration, security, and SQL authoring tasks need these rules too, even for a one-column change or a single query.
prisma-client-api
prisma/skills
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".
prisma-database-setup
prisma/skills
Deprecated compatibility name for prisma-orm-setup. Use only when a user or existing integration explicitly invokes prisma-database-setup; otherwise select prisma-orm-setup.
prisma-cli
prisma/skills
Prisma ORM 7 CLI reference for existing Prisma 7 applications or explicitly selected Prisma 7 workflows. Covers prisma init, generate, migrate, db, dev, studio, and mcp. For setup, connection repair, or Prisma 8, use prisma-orm-setup; not the Prisma Platform CLI.
prisma-postgres
prisma/skills
Deprecated compatibility name for prisma-postgres-setup. Use only when a user or existing integration explicitly invokes prisma-postgres; otherwise select prisma-postgres-setup.
prisma-driver-adapter-implementation
prisma/skills
Required reference for Prisma ORM 7 SQL driver adapter work. Use when implementing or modifying adapters, adding database drivers, or touching SqlDriverAdapter, Transaction, savepoint, result mapping, or DriverAdapterError behavior. Covers current transaction lifecycle, optional savepoint hooks, original database-error preservation, and verification.