Official agent skill

Record Prisma 8 Upgrade Instructions

by prisma in prisma/orm

Adds an upgrade-instruction fragment to a Prisma 8 breaking-change PR so downstream app and extension authors can apply the matching code translation.

OfficialApache-2.0Auto-check: notesDevelopment

Install Record Prisma 8 Upgrade Instructions

skills CLI
$ npx skills add prisma/orm --skill record-upgrade-instructions -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install prisma/orm record-upgrade-instructions --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/prisma/orm.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills-contrib/record-upgrade-instructions .claude/skills/record-upgrade-instructions && rm -rf skills-src

Use ~/.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/

Facts

Skill name
record-upgrade-instructions
GitHub stars
48k
Token cost
~3.2k tokens
SKILL.md length
1,500 words
Files
1
Skills in repo
20
Repo updated
First seen
Licence
Apache-2.0

At a glance

Adds an upgrade-instruction fragment to a Prisma 8 breaking-change PR so downstream app and extension authors can apply the matching code translation.

  • Works in 6 steps: Identify affected audiences. Inspect git… → Choose a descriptive pending name. Add… → Write the instructions. Retain the… → …
  • Finishing a Prisma 8 breaking-change PR that touched examples or extensions
  • SKILL.md covers Detection signals and routing, Authoring workflow, Validation by execution and PR commit shape, plus 1 more section
  • Calls git, pnpm and node

What it does

When a framework change turns tests red in `examples/` or `packages/3-extensions/` and the fix is to update that example or extension code, those edits are also the translation downstream users need. The skill has the PR author record them as an independent fragment under `upgrade-instructions/pending/`, in a descriptively named folder with an `instructions.md` per audience: `app` for changes under `examples/`, `extension` for changes under `packages/3-extensions/`, or both.

Feature PRs do not edit shared transition guides or pick a release number, because release preparation combines the fragments. Changes in those directories need a declaration, and a consumer-invisible change gets an explicit empty `changes` list with no prose. For stacked PRs the diff is taken against the branch the PR actually targets, and each PR adds its own declaration instead of pooling them in the bottom PR. Contract format changes need a codemod or re-emission instructions. The excerpt is truncated.

When your agent uses it

  • Finishing a Prisma 8 breaking-change PR that touched examples or extensions
  • Fixing red tests in examples by changing example code
  • Told to record upgrade instructions for a PR

Example prompts

  • “Record upgrade instructions for this PR.”
  • “I changed the contract format and fixed the examples tests. Write the upgrade fragment for app users.”
  • “This stacked PR only touches extension code. Add its own upgrade declaration.”

Requirements

  • A checkout of the Prisma 8 repository with an `upgrade-instructions/` folder
  • Git, to diff the PR against its target branch

Workflow steps

6 steps, taken from the first numbered list in SKILL.md.

  1. Identify affected audiences. Inspect git diff .. -- examples/ packages/3-extensions/. If neither directory has relevant changes, the…
  2. Choose a descriptive pending name. Add upgrade-instructions/pending///instructions.md for each affected audience. Avoid collisions with…
  3. Write the instructions. Retain the existing YAML frontmatter changes[] and Markdown prose format. Each change has a kebab-case id unique…
  4. Author optional colocated scripts/assets. TypeScript that Node runs directly (node .ts, so only syntax Node's type stripping accepts; a…
  5. Validate by execution using the unchanged concrete procedure below. An entry updates consumer code, not the example or extension tests. Do…
  6. Include the fragment and updated example or extension code in the PR. Commit working changes before running the Git-ref check

What it can do on your machine

Read from SKILL.md and the folder at commit 095af7a. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • pnpm
    • node

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git and pnpm, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Record Prisma 8 Upgrade Instructions loads about 3.2k tokens when it runs. Until then it costs about 156 tokens; SKILL.md has 1,500 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~156
When it runs · the whole SKILL.md, loaded when a task matches
~3.2k

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.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:108
    so runs examples needing a database and `.env` (`pnpm db:up`, then copy `.env.example`); run it only with those in place

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); files beside SKILL.md are not scanned.

SKILL.md

The full file from prisma/orm at commit 095af7a, republished under its Apache-2.0 licence (© prisma). 1,500 words, ~3,192 tokens.

Download SKILL.mdSave it as .claude/skills/record-upgrade-instructions/SKILL.md (or your agent's skills folder).
name
record-upgrade-instructions
description
Record upgrade instructions alongside a Prisma 8 breaking-change PR, so downstream consumers (users of `@internal/*` and authors of Prisma 8 extensions) can apply the matching code translation automatically via the published upgrade skills. Use when you have refactored framework code and the test suite went red in `examples/` or `packages/3-extensions/`, when you fixed those red tests by updating example or extension code, when you are told to "record upgrade instructions for this PR", or when you made a breaking change to Prisma 8 that downstream consumers will need help migrating across.

Record upgrade instructions

Contribute an independent fragment on the PR that changes Prisma 8. Release preparation combines fragments into the published app and extension guides; feature PRs do not edit shared transition guides or choose a release number. Read the canonical upgrade instruction lifecycle for storage, release assembly, and checker modes.

Detection signals and routing

Use this skill when a framework change makes tests red in examples/ or packages/3-extensions/ and you fix them by updating the example or extension code rather than reverting the framework change. Those edits are the same translation downstream consumers need.

Directory changed by the PRFragment audienceConsumers
examples/appPublic package API, contract files, on-disk migrations
packages/3-extensions/extensionFramework SPI and extension authors
BothBoth, independentlyBoth audiences

Changes in these directories require a declaration, subject to existing coverage-check exclusions. Generated artefacts are not generally exempt: contract format changes require a codemod or re-emission instructions. Genuinely consumer-invisible changes still get an explicit changes: [] declaration, with no prose.

Stacked PRs: compare against the branch the PR actually targets, not always main. Each PR adds its own declaration in its own commits; inherited fragments do not cover a new PR. Do not pool a stack's instructions in its bottom PR.

Throughout this skill, <target> is the target branch (main unless stacked), <base> is its pinned comparison commit, and <head> is the PR head commit.

Authoring workflow

  1. Identify affected audiences. Inspect git diff <base>..<head> -- examples/ packages/3-extensions/. If neither directory has relevant changes, the coverage check does not require a declaration.

  2. Choose a descriptive pending name. Add upgrade-instructions/pending/<descriptive-name>/<audience>/instructions.md for each affected audience. Avoid collisions with pending work; no random suffix, global registry, historical-name reservation, or shared index is required. Never append to another PR's fragment. A release landing during your PR does not change this unversioned destination.

  3. Write the instructions. Retain the existing YAML frontmatter changes[] and Markdown prose format. Each change has a kebab-case id unique within the guide, a one-line summary, optional detection (glob and content predicate), and an optional script path relative to instructions.md. Prose-only transformations omit script; the consumer's agent follows the body.

    Write detection patterns for whole-file matching. The upgrade flows test each matches pattern as new RegExp(pattern), with no flags, against the whole content of a file (upgrade-app.md, step 4). A pattern may span lines. To exclude a file by something elsewhere in it, anchor a lookahead at the start of the input with (?<![\s\S]), not ^, which the m flag turns into a line start.

    Make detection predicates token-precise. Test against both a true positive and the nearest false positive. A moved tag must not match an unchanged tag; excluding an unchanged spelling needs a token boundary:

    text
    matches:      .raw`
    must not fire on: fns.raw`
    too broad:    (?<!fns)\.raw`        also suppresses myfns.raw`
    shipped:      (?<!(?<![\w$])fns)\.raw`

    The inner lookbehind restricts the exclusion to the exact fns token.

    Only describe consumer action. Omit narrative about internal renames, dev-only dependency bumps, and incidental generated churn. Changes to @internal/* APIs that no published @prisma/* package re-exports are not consumer action either: a PR that only changes those declares changes: [], even when extension tests had to be updated. If this PR's audience needs no action, use only:

    md
    ---
    changes: []
    ---

    No "consumers need not do anything" body prose. Both audiences declare independently, including real-change/no-op combinations.

  4. Author optional colocated scripts/assets. TypeScript that Node runs directly (node <script>.ts, so only syntax Node's type stripping accepts; a project made by orm init has no tsx), shell, or codemods are appropriate. Require no network, environment variables, or input beyond the consumer filesystem and bundled assets. Keep relative references inside the fragment's audience directory. For cross-audience changes, copy scripts into both audience directories; do not symlink or import from the other audience. The published clusters remain independently installable.

    Test a script outside the fragment. A script's tests and fixtures live in test/integration/test/upgrade-instructions/<fragment-name>/, where tests can import @internal/* and CI runs them with the integration suite. One constant in that folder, SCRIPT_PATHS, names the path of each audience's copy of the script, so the tests run the files that ship; while the fragment is pending it points into upgrade-instructions/pending/<fragment-name>/. Put fixture projects under the folder's fixtures/. Every test/integration/test/upgrade-instructions/*/fixtures folder is left out of the integration TypeScript project, the single-import-root lint and the scans for the repository's own contracts, so a fixture may hold old-format files and import either root. A test that checks the script against live framework code, such as one that recomputes fixture hashes with @internal/* functions, and a generator that writes fixtures with them, hold only while the fragment is pending: the published script is frozen at its release, and a later framework change would fail them. At release, the release step points SCRIPT_PATHS at the published copy, keeps the before-and-after tests, and freezes the live-code tests and the generator (records what they compute) or deletes them.

  5. Validate by execution using the unchanged concrete procedure below. An entry updates consumer code, not the example or extension tests. Do not introduce a separate testing system: a script's own tests (step 4) are ordinary integration tests, and the validation by execution below is still required beside them.

  6. Include the fragment and updated example or extension code in the PR. Commit working changes before running the Git-ref check:

    bash
    pnpm check:upgrade-coverage --mode pr --prev <base> --head <head>

    <head> must include the committed declaration; the check does not inspect uncommitted edits. Link each new fragment directory in the PR description. Review must verify that the instructions actually describe the PR's changes; the gate checks added declarations, readable change lists, and relative script references, not semantic correctness.

Show full SKILL.md (626 more words)Show less

Validation by execution

Before merging, run every new entry against the corresponding example or extension code in this repository, starting from its pre-PR state and ending with passing tests. This is the existing per-PR quality bar, not a release-wide migration test.

Workflow per entry (both flows apply for cross-audience entries):

  • Open PR: <head> is the PR branch head; <base> is the actual target branch's comparison commit.
  • Merged PR: <head> is the merge commit; <base> is its mainline parent. git log --first-parent names both.

Use a disposable checkout for the restoration steps so unrelated working changes are not overwritten. The PR author updates example and extension tests; the upgrade instructions must not change them. The equality check excludes test/ directories; the companion check confirms the entry left those directories exactly as it found them.

App entry (against examples/)
  1. Check out <head>, which has the framework change applied.

  2. Revert examples/ to its pre-PR state (git restore --source=<base> -- examples/).

  3. Run the fragment against the restored example code: invoke colocated scripts per script: references, then walk the prose body for additional instructions.

  4. Verify examples/ matches <head> outside test directories:

    bash
    git status --porcelain -- examples/ ':(exclude)examples/*/test/**'

    It must print nothing, including no newly created files. The entry must reproduce git diff <base>..<head> -- examples/ ':(exclude)examples/*/test/**'.

  5. Verify the entry left tests at <base>; the source equality check cannot detect test changes:

    bash
    git diff --exit-code <base> -- 'examples/*/test/**'
    git ls-files --others --exclude-standard -- 'examples/*/test/**'

    The first command must exit 0 and the second print nothing. An entry must not mutate or create tests to make the next step pass. A file under a test directory that the entry's own script wrote passes when it equals <head> byte for byte.

  6. Run pnpm --filter <example-package> test for each touched example. The repo-wide pnpm test:examples also runs examples needing a database and .env (pnpm db:up, then copy .env.example); run it only with those in place.

Extension entry (against packages/3-extensions/)
  1. Check out <head>, which has the framework change applied.

  2. Revert packages/3-extensions/ to its pre-PR state (git restore --source=<base> -- packages/3-extensions/).

  3. Run the fragment against the restored extension code, including referenced scripts and prose.

  4. Verify the non-test paths match <head>:

    bash
    git status --porcelain -- packages/3-extensions/ ':(exclude)packages/3-extensions/*/test/**'

    It must print nothing. The entry reproduces git diff <base>..<head> -- packages/3-extensions/ ':(exclude)packages/3-extensions/*/test/**'.

  5. Verify test paths remain at <base>:

    bash
    git diff --exit-code <base> -- 'packages/3-extensions/*/test/**'
    git ls-files --others --exclude-standard -- 'packages/3-extensions/*/test/**'

    The first command must exit 0; the second must print nothing. A file under a test directory that the entry's own script wrote passes when it equals <head> byte for byte.

  6. Verify the matching test suite is green: pnpm test --filter='./packages/3-extensions/*'.

If any check fails, iterate on the entry; do not merge. Classify failures before changing anything, per CI failure classification. A timeout or connection error makes the environment a candidate cause, not a verdict.

PR commit shape

Include:

  • Each new upgrade-instructions/pending/<name>/<audience>/instructions.md and any colocated scripts/assets.
  • The updated example and extension code, matching the result of applying the instructions outside test directories. The entry neither writes nor updates those tests.
  • PR-description references naming the fragment directories, for example upgrade-instructions/pending/migration-metadata-shape/app/ and upgrade-instructions/pending/migration-metadata-shape/extension/.

Both audience copies may share IDs, summaries, or detection predicates; they are independent records. Fixes to either copy use normal PR review. Historical published guidance can also be corrected through normal reviewed PRs, but edits to old guides do not replace a new PR's required pending declaration.

Out of scope

Fragments describe code translation only. Do not add the general bump/install/instructions/validate/commit loop to their bodies: the published app and extension flows own it. Extension exact-pin enforcement remains prisma-8-check-pins from @internal/extension-author-tools.

Release synthesis, archives, skipped unpublished bumps, and release completeness belong to the canonical lifecycle, not feature-PR authoring. No release-wide migration rehearsal is required.

© prisma, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills-contrib/record-upgrade-instructions of prisma/orm.

Open the folder on GitHubat commit 095af7a

Compare with similar skills

Record Prisma 8 Upgrade Instructions 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.

Record Prisma 8 Upgrade Instructions compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Record Prisma 8 Upgrade Instructions this skillprisma/orm48k—~3.2kAutomated safety check: NotesApache-2.0
Releasejaemk/self_update961—~2.2kAutomated safety check: PassMIT
Tabler Upgrade Guide Writertabler/tabler42k—~1.7kAutomated safety check: PassMIT
Documentationaiskillstore/marketplace4301 repos~2.7kAutomated safety check: PassNone
Simple Englishmoeru-ai/airi50k2 repos~4.6kAutomated safety check: PassMIT
Deprecate R Functions and Argumentstidyverse/dplyr5.1k1 repos~1.2kAutomated safety check: PassCustom licence

Similar skills

  • Release

    jaemk/self_update

    Prepare a release (bump the crate version, update CHANGELOG.md with a migration guide for breaking changes, regenerate README, commit), or run a pre-release review.

    961 GitHub stars~2.2k tokensUpdated 1 mo ago
    DevelopmentAuto-check passed
  • Writes the upgrade guide page for a Tabler release by collecting removed, renamed and deprecated items from changesets and diffs, with before and after examples.

    42k GitHub stars~1.7k tokensUpdated today
    DevelopmentAuto-check passed
  • Documentation

    aiskillstore/marketplace

    Comprehensive documentation specialist covering API documentation, technical writing, design documentation, migration guides, and changelog generation.

    430 GitHub starsUsed in 1 repo~2.7k tokens
    DevelopmentAuto-check passed
  • Simple English

    moeru-ai/airi

    Write or rewrite technical text with the rules of ASD-STE100 Simplified Technical English so it is clear, unambiguous, and free of AI slop.

    50k GitHub starsUsed in 2 repos~4.6k tokens
    DevelopmentAuto-check passed
  • Walks through deprecating an R function or argument in a package: lifecycle warning, silenced tests, a new snapshot test, documentation badge and NEWS entry.

    5.1k GitHub starsUsed in 1 repo~1.2k tokens
    DevelopmentAuto-check passed
  • Ccb GitHub

    SeemSeam/claude_codex_bridge

    Maintain this CCB project's GitHub-facing release and npm publication surface.

    3.5k GitHub stars~4.9k tokensUpdated yesterday
    DevelopmentAuto-check passed

More from prisma/orm

All 20 skills in this repo
  • Official

    Runs a loop on a GitHub pull request: fetch review state, triage comments into actions, implement them and resolve threads, repeating until nothing actionable is left.

    48k GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Official

    Fetches a pull request's canonical review state as JSON, validates it, and renders markdown, a text summary and triage target files from it using bundled scripts.

    48k GitHub stars~767 tokensUpdated today
    Auto-check passed
  • Official

    Implements triaged pull request review actions, commits focused fixes, posts status replies on GitHub and resolves the threads.

    48k GitHub stars~1.7k tokensUpdated today
    Auto-check passed
  • Official

    Runs the triage step of the review-framework loop: reads fetched PR review state, builds `review-actions.json`, validates it and renders `review-actions.md`.

    48k GitHub stars~995 tokensUpdated today
    Auto-check passed
  • Official

    Replaces a plain TypeScript union plus switch statements with frozen subclasses and a visitor interface when several places dispatch on the same variants.

    48k GitHub stars~830 tokensUpdated today
    Auto-check passed
  • Official

    Guides an outside contributor through opening a prisma/orm pull request from a fork that follows CONTRIBUTING.md and passes review on the first round.

    48k GitHub stars~2.3k tokensUpdated today
    Auto-check passed

Works with

Questions about Record Prisma 8 Upgrade Instructions

What does Record Prisma 8 Upgrade Instructions do?

Adds an upgrade-instruction fragment to a Prisma 8 breaking-change PR so downstream app and extension authors can apply the matching code translation. When a framework change turns tests red in `examples/` or `packages/3-extensions/` and the fix is to update that example or extension code, those edits are also the translation downstream users need.md` per audience: `app` for changes under `examples/`, `extension` for changes under `packages/3-extensions/`, or both.

When should I use Record Prisma 8 Upgrade Instructions?

Record Prisma 8 Upgrade Instructions fits situations like: finishing a Prisma 8 breaking-change PR that touched examples or extensions; fixing red tests in examples by changing example code; told to record upgrade instructions for a PR.

How do I install Record Prisma 8 Upgrade Instructions in Claude Code?

Run `npx skills add prisma/orm --skill record-upgrade-instructions -a claude-code`. Or copy the skill folder (skills-contrib/record-upgrade-instructions in prisma/orm) into .claude/skills/record-upgrade-instructions in your project. Claude Code loads it when a task matches its description.

How do I install Record Prisma 8 Upgrade Instructions in Codex?

Run `npx skills add prisma/orm --skill record-upgrade-instructions -a codex`. Or copy the skill folder (skills-contrib/record-upgrade-instructions in prisma/orm) into .agents/skills/record-upgrade-instructions in your project. Codex loads it when a task matches its description.

Can I use Record Prisma 8 Upgrade Instructions in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add prisma/orm --skill record-upgrade-instructions -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/record-upgrade-instructions, .gemini/skills/record-upgrade-instructions, .github/skills/record-upgrade-instructions and .opencode/skills/record-upgrade-instructions in your project.

What does Record Prisma 8 Upgrade Instructions need to run?

Going by SKILL.md and its folder, Record Prisma 8 Upgrade Instructions needs the command-line tools its instructions call (git, pnpm and node). Our summary lists: A checkout of the Prisma 8 repository with an `upgrade-instructions/` folder; Git, to diff the PR against its target branch.

Does Record Prisma 8 Upgrade Instructions access the network?

SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Record Prisma 8 Upgrade Instructions safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Record Prisma 8 Upgrade Instructions use?

Record Prisma 8 Upgrade Instructions is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Record Prisma 8 Upgrade Instructions use?

About 3.2k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Record Prisma 8 Upgrade Instructions?

Skills that share tags, products or a category with Record Prisma 8 Upgrade Instructions: Release (jaemk/self_update, 961 stars), Tabler Upgrade Guide Writer (tabler/tabler, 42k stars), Documentation (aiskillstore/marketplace, 430 stars) and Simple English (moeru-ai/airi, 50k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Record Prisma 8 Upgrade Instructions?

prisma (a GitHub organization, an official publisher) maintains it in prisma/orm, which has 47,701 GitHub stars. The repository holds 20 skills in this directory. The repository was last updated on October 6, 2026.

Source: prisma/orm on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.