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.
Adds an upgrade-instruction fragment to a Prisma 8 breaking-change PR so downstream app and extension authors can apply the matching code translation.
$ npx skills add prisma/orm --skill record-upgrade-instructions -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install prisma/orm record-upgrade-instructions --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/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-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 "record-upgrade-instructions" agent skill from https://github.com/prisma/orm/tree/main/skills-contrib/record-upgrade-instructions into .claude/skills/record-upgrade-instructions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "record-upgrade-instructions", 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/prisma/orm/tree/main/skills-contrib/record-upgrade-instructionsType 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 prisma/orm --skill record-upgrade-instructions -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install prisma/orm record-upgrade-instructions --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/prisma/orm.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills-contrib/record-upgrade-instructions .agents/skills/record-upgrade-instructions && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "record-upgrade-instructions" agent skill from https://github.com/prisma/orm/tree/main/skills-contrib/record-upgrade-instructions into .agents/skills/record-upgrade-instructions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "record-upgrade-instructions", 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 prisma/orm --skill record-upgrade-instructions -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install prisma/orm record-upgrade-instructions --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/prisma/orm.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills-contrib/record-upgrade-instructions .cursor/skills/record-upgrade-instructions && 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 "record-upgrade-instructions" agent skill from https://github.com/prisma/orm/tree/main/skills-contrib/record-upgrade-instructions into .cursor/skills/record-upgrade-instructions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "record-upgrade-instructions", 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/prisma/orm.git --path skills-contrib/record-upgrade-instructions--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 prisma/orm --skill record-upgrade-instructions -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install prisma/orm record-upgrade-instructions --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/prisma/orm.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills-contrib/record-upgrade-instructions .gemini/skills/record-upgrade-instructions && 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 "record-upgrade-instructions" agent skill from https://github.com/prisma/orm/tree/main/skills-contrib/record-upgrade-instructions into .gemini/skills/record-upgrade-instructions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "record-upgrade-instructions", 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 prisma/orm record-upgrade-instructionsInstalls 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 prisma/orm --skill record-upgrade-instructions -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/prisma/orm.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills-contrib/record-upgrade-instructions .github/skills/record-upgrade-instructions && 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 "record-upgrade-instructions" agent skill from https://github.com/prisma/orm/tree/main/skills-contrib/record-upgrade-instructions into .github/skills/record-upgrade-instructions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "record-upgrade-instructions", 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 prisma/orm --skill record-upgrade-instructions -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install prisma/orm record-upgrade-instructions --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/prisma/orm.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills-contrib/record-upgrade-instructions .opencode/skills/record-upgrade-instructions && 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 "record-upgrade-instructions" agent skill from https://github.com/prisma/orm/tree/main/skills-contrib/record-upgrade-instructions into .opencode/skills/record-upgrade-instructions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "record-upgrade-instructions", 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.
record-upgrade-instructionsAdds 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. 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.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 095af7a. 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.
Shell commands in SKILL.md call:
gitpnpmnodeFrom the folder's file list and the shell code blocks in SKILL.md.
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.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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 noted patterns worth knowing about, such as sudo or a known installer.
so runs examples needing a database and `.env` (`pnpm db:up`, then copy `.env.example`); run it only with those in placeAutomated 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.
The full file from prisma/orm at commit 095af7a, republished under its Apache-2.0 licence (© prisma). 1,500 words, ~3,192 tokens.
.claude/skills/record-upgrade-instructions/SKILL.md (or your agent's skills folder).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.
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 PR | Fragment audience | Consumers |
|---|---|---|
examples/ | app | Public package API, contract files, on-disk migrations |
packages/3-extensions/ | extension | Framework SPI and extension authors |
| Both | Both, independently | Both 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.
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.
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.
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:
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:
---
changes: []
---No "consumers need not do anything" body prose. Both audiences declare independently, including real-change/no-op combinations.
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.
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.
Include the fragment and updated example or extension code in the PR. Commit working changes before running the Git-ref check:
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.
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):
<head> is the PR branch head; <base> is the actual target branch's comparison commit.<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.
examples/)Check out <head>, which has the framework change applied.
Revert examples/ to its pre-PR state (git restore --source=<base> -- examples/).
Run the fragment against the restored example code: invoke colocated scripts per script: references, then walk the prose body for additional instructions.
Verify examples/ matches <head> outside test directories:
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/**'.
Verify the entry left tests at <base>; the source equality check cannot detect test changes:
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.
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.
packages/3-extensions/)Check out <head>, which has the framework change applied.
Revert packages/3-extensions/ to its pre-PR state (git restore --source=<base> -- packages/3-extensions/).
Run the fragment against the restored extension code, including referenced scripts and prose.
Verify the non-test paths match <head>:
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/**'.
Verify test paths remain at <base>:
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.
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.
Include:
upgrade-instructions/pending/<name>/<audience>/instructions.md and any colocated scripts/assets.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.
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
Just SKILL.md in skills-contrib/record-upgrade-instructions of prisma/orm.
Open the folder on GitHubat commit 095af7a
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Record Prisma 8 Upgrade Instructions this skillprisma/orm | 48k | — | ~3.2k | Automated safety check: Notes | Apache-2.0 | |
| Releasejaemk/self_update | 961 | — | ~2.2k | Automated safety check: Pass | MIT | |
| Tabler Upgrade Guide Writertabler/tabler | 42k | — | ~1.7k | Automated safety check: Pass | MIT | |
| Documentationaiskillstore/marketplace | 430 | 1 repos | ~2.7k | Automated safety check: Pass | None | |
| Simple Englishmoeru-ai/airi | 50k | 2 repos | ~4.6k | Automated safety check: Pass | MIT | |
| Deprecate R Functions and Argumentstidyverse/dplyr | 5.1k | 1 repos | ~1.2k | Automated safety check: Pass | Custom licence |
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.
tabler/tabler
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.
aiskillstore/marketplace
Comprehensive documentation specialist covering API documentation, technical writing, design documentation, migration guides, and changelog generation.
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.
tidyverse/dplyr
Walks through deprecating an R function or argument in a package: lifecycle warning, silenced tests, a new snapshot test, documentation badge and NEWS entry.
SeemSeam/claude_codex_bridge
Maintain this CCB project's GitHub-facing release and npm publication surface.
prisma/orm
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.
prisma/orm
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.
prisma/orm
Implements triaged pull request review actions, commits focused fixes, posts status replies on GitHub and resolves the threads.
prisma/orm
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`.
prisma/orm
Replaces a plain TypeScript union plus switch statements with frozen subclasses and a visitor interface when several places dispatch on the same variants.
prisma/orm
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.
Works with
Categories
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.