Mole Release Notes Publisher
tw93/Mole
Publishes curated, bilingual release notes for an existing Mole version tag with gh release edit, including contributor thanks and reactions, after the release workflow finishes.
Drafts the release notes file and changelog entry for a Prisma 8 release from the PRs merged since the previous release tag, with breaking changes first.
$ npx skills add prisma/orm --skill draft-release-notes -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install prisma/orm draft-release-notes --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/draft-release-notes .claude/skills/draft-release-notes && 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 "draft-release-notes" agent skill from https://github.com/prisma/orm/tree/main/skills-contrib/draft-release-notes into .claude/skills/draft-release-notes/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "draft-release-notes", 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/draft-release-notesType 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 draft-release-notes -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install prisma/orm draft-release-notes --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/draft-release-notes .agents/skills/draft-release-notes && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "draft-release-notes" agent skill from https://github.com/prisma/orm/tree/main/skills-contrib/draft-release-notes into .agents/skills/draft-release-notes/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "draft-release-notes", 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 draft-release-notes -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install prisma/orm draft-release-notes --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/draft-release-notes .cursor/skills/draft-release-notes && 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 "draft-release-notes" agent skill from https://github.com/prisma/orm/tree/main/skills-contrib/draft-release-notes into .cursor/skills/draft-release-notes/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "draft-release-notes", 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/draft-release-notes--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 draft-release-notes -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install prisma/orm draft-release-notes --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/draft-release-notes .gemini/skills/draft-release-notes && 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 "draft-release-notes" agent skill from https://github.com/prisma/orm/tree/main/skills-contrib/draft-release-notes into .gemini/skills/draft-release-notes/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "draft-release-notes", 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 draft-release-notesInstalls 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 draft-release-notes -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/draft-release-notes .github/skills/draft-release-notes && 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 "draft-release-notes" agent skill from https://github.com/prisma/orm/tree/main/skills-contrib/draft-release-notes into .github/skills/draft-release-notes/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "draft-release-notes", 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 draft-release-notes -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 draft-release-notes --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/draft-release-notes .opencode/skills/draft-release-notes && 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 "draft-release-notes" agent skill from https://github.com/prisma/orm/tree/main/skills-contrib/draft-release-notes into .opencode/skills/draft-release-notes/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "draft-release-notes", 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.
draft-release-notesDrafts the release notes file and changelog entry for a Prisma 8 release from the PRs merged since the previous release tag, with breaking changes first.
This is a prose-driven procedure for the agent that cuts a Prisma 8 release, stable or a release candidate; no script or codemod is involved. The agent lists the PRs merged since the previous release tag, works out what each one means for users, and writes categorized notes under `docs/releases/`, with breaking changes at the top, plus a matching `CHANGELOG.md` entry. The notes file is published unchanged as the GitHub Release body, with no auto-generated fallback.
Many PR titles are opaque ticket codes, so the agent reads the Linear ticket only for context and then writes a fresh public sentence about the user-facing result. Ticket prose must never be pasted in, including customer or account names or anything that identifies who asked for a change. Items are also triaged for whether they deserve a public mention. The skill does not run for dev or beta builds, and it is not meant for backfilling notes of releases that already shipped.
10 steps, taken from the step headings 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:
gitghpnpmFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
github.comAlso links to:
linear.appFrom 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.
Draft Prisma Release Notes loads about 5.2k tokens when it runs. Until then it costs about 177 tokens; SKILL.md has 2,255 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); files beside SKILL.md are not scanned.
The full file from prisma/orm at commit 095af7a, republished under its Apache-2.0 licence (© prisma). 2,255 words, ~5,212 tokens.
.claude/skills/draft-release-notes/SKILL.md (or your agent's skills folder).This skill fires inside a release cut (stable or RC-line, both published under latest). The release-cutting agent runs it from the release/<version> worktree that publish-npm-version created, with the target version already known, and produces the committed notes file that is the GitHub Release body (the publish workflow ships it verbatim via gh release create --notes-file docs/releases/v<version>.md). There is no --generate-notes fallback — the file you author here is what every consumer reads.
The skill is prose-driven: there is no codemod or script to run. You — the agent — do the enumeration, the Linear-context lookup, the triage, and the writing directly, the same way record-upgrade-instructions walks you through authoring an upgrade entry rather than running one for you.
Run this skill when all of the following hold:
8.0.0-rc.N) — the target version $NEXT is known (computed by publish-npm-version step 1, e.g. 8.0.0-rc.2).release/<version> worktree with the bumped root version and reviewed, assembled upgrade guides committed, following the upgrade instruction lifecycle.docs/releases/v$NEXT.md needs drafting or refreshing after new fragments were incorporated (the PR-mode release-notes gate, pnpm check:release-notes --mode pr, requires the notes file).Do not run it for -dev.N or -beta.N builds: those create no GitHub Release and are not gated. Do not run it to backfill notes for an already-shipped release — the convention starts from the first release cut after it landed.
These are project requirements, not style preferences. A draft that violates either is wrong even if everything else is perfect.
Linear is a summarization-context input only. You read a ticket to understand the user-facing outcome of an opaque PR title, then you write a fresh, public, user-facing sentence describing that outcome. You never paste ticket prose into the notes. Specifically, the following must never appear in docs/releases/*.md or CHANGELOG.md:
TML-NNNN: issue prefix or issue title — link the PR (#NNN) instead.If you cannot describe a change for a public audience without leaning on internal context, that is a signal the entry needs rethinking (or is internal-only and should be excluded — see the triage rubric), not a licence to paraphrase the ticket closely. When in doubt, describe only the externally-observable behaviour change.
Every entry links its PR (#NNN) so the human reviewer can check your one-line summary against the actual diff during the release-PR review. The human review is the backstop for triage and summarization judgment calls — write for that reviewer.
Reuse the actual prior published stable/RC ref resolved during release preparation. When invoked independently, resolve and confirm that published ref before proceeding. The range is "everything since the last release", so the lower bound is the most recent published release v* tag — stable or -rc.N — excluding -dev.* / -beta.* build tags (an -rc.N tag is a release and deliberately not excluded, so an RC respin's notes cover exactly what changed since the previous RC):
PREV_TAG=$(git describe --abbrev=0 --tags --match 'v[0-9]*' --exclude '*-dev.*' --exclude '*-beta.*')
echo "$PREV_TAG" # e.g. v0.11.0Equivalently, list and filter explicitly (useful when describe can't find an ancestor tag):
git tag --list 'v*' --sort=-v:refname | grep -Ev -- '-(dev|beta)\.' | headThe dev/beta exclusion matters: a -dev.N tag is cut on most merges, so an unfiltered "previous tag" would scope the range to a single PR. Filtering to release tags gives the full set of changes since consumers last saw a release.
Take the commit set from git log and resolve each commit to its PR via gh:
git log --first-parent --oneline "$PREV_TAG"..HEADFor each merged PR in the range, resolve the metadata you need with gh / gh api — PR number, title, author (login), labels, and whether the author is a first-time contributor:
# PRs merged in the range (adjust the search window to the range you enumerated)
gh pr list --state merged --base main --limit 200 \
--json number,title,author,labels,mergeCommit,mergedAt
# Or resolve a single PR by its merge commit:
gh api "repos/prisma/orm/commits/<sha>/pulls" \
--jq '.[] | {number, title, author: .user.login, labels: [.labels[].name]}'Use --first-parent so squash-merged PRs each show up as one commit; cross-check against gh pr list so you do not miss a PR or double-count.
When a PR title is an internal shorthand (TML-NNNN: <terse handle>), read the referenced Linear issue (via the Linear MCP) to understand what changed for the user. This is enrichment only — re-read Rule 1 before writing anything. Summarize the outcome in your own public words; cite the PR, never the ticket.
Decide, per PR, whether it earns a line in the public notes. The rubric biases toward a clean, user-facing changelog over exhaustiveness — the human PR review is the backstop for judgment calls.
Always include:
@internal/* public API), CLI commands/flags, prisma.config.ts fields, the contract format (contract.json / contract.d.ts shape), on-disk migration shape, or error codes.Default-exclude unless user-relevant:
Excluded PRs are dropped silently — no "internal changes" catch-all section. If a default-exclude PR has a genuine user-facing consequence, include it and describe that consequence.
Write the entries under the fixed section order from docs/releases/README.md, omitting any section with no entries:
Breaking changes lead because they are what a reader scanning the notes most needs to see. Every line links its PR as an absolute markdown link — [#NNN](https://github.com/prisma/orm/pull/NNN), never bare #NNN. Bare references only autolink inside the GitHub Release body; they render as plain text when the committed docs/releases/v<version>.md is read as a repo file or in PR review, so the explicit link form is what makes every reference work in every context.
Release preparation synthesizes feature-PR fragments into one reviewed guide per audience before this step, following the upgrade instruction lifecycle. Link these published guides, never pending fragments or source archives. The transition label — written <transition-label> below — names both ends of the hop, each end rendered the way versionSegment() in scripts/check-upgrade-coverage.mjs renders it: a stable version truncates to major.minor (v0.11.0 → 0.12.0 gives 0.11-to-0.12), and a prerelease keeps its full version string (8.0.0-rc.1-to-8.0.0-rc.2). Point the breaking note at the recipe directory rather than restating the migration.
Recipe links must be absolute, tag-pinned URLs — https://github.com/prisma/orm/blob/v$NEXT/.... The notes file becomes the GitHub Release body via --notes-file, and the Release page does not reliably resolve repo-relative links, so a relative recipe path would publish as a dead migration link. Pinning to the release tag (/blob/v$NEXT/) means the link always resolves and never rots as the recipe tree evolves on main:
https://github.com/prisma/orm/blob/v$NEXT/skills/prisma-8/upgrading/app/upgrades/<transition-label>/https://github.com/prisma/orm/blob/v$NEXT/skills/prisma-8/upgrading/extension/upgrades/<transition-label>/A breaking change can affect one or both audiences — link the relevant audience's guide. Both directories exist for chain continuity, but an empty guide is not a migration recipe for a breaking change.
If a required guide is absent or omits a migration, return to release preparation to repair and review it before finalizing notes. Inline action summaries do not replace release completeness.
For a skipped-publish range, use the assembled guide from the actual previous published release to the target (e.g. 0.11-to-0.13 when 0.12 never shipped). Do not invent an intermediate release boundary. Existing historical published chains remain intact.
Prose tells a reader that something changed; a short before/after snippet shows them what it looks like, which is what they actually need to act. For the most code-visible breaking changes — contract-shape changes, authoring-surface changes, runtime-option or builder-API changes — nest a compact before / after example under the prose bullet.
<transition-label> upgrade guide contains the reviewed migration instructions — lift before/after code from there so it stays accurate. If the change is only visible in the emitted contract.json / contract.d.ts, a minimal shape diff from the recipe or the PR diff is fine.```prisma, never ```psl), per the repo's authoring-surface convention. Use TS or JSON only when the change is genuinely a TS-surface change (a builder/runtime option, a consumer reading the emitted .d.ts) or an emitted-shape change with no PSL form.The format is the prose bullet, then the nested example:
- **<title>** — <what changed and what the reader must do; recipe link>. ([#<pr>](https://github.com/prisma/orm/pull/<pr>))
Before:
```ts
…
```
After:
```ts
…
```Preserve the "New contributors" credit that --generate-notes gave for free. Each first-time contributor gets a line naming the PR that welcomed them, with both the handle and the PR as absolute links:
- [@<handle>](https://github.com/<handle>) made their first contribution in [#<pr>](https://github.com/prisma/orm/pull/<pr>)Resolve first-time status from PR author metadata (e.g. gh api author_association of FIRST_TIME_CONTRIBUTOR / FIRST_TIMER, or by checking whether the author appears in the range before this PR).
Fill the docs/releases/README.md template into docs/releases/v$NEXT.md:
# v<version>
<optional one- or two-sentence summary of the release's theme>
## Breaking changes
- **<short title>** — <what changed and what the reader must do; link the upgrade recipe>. ([#<pr>](https://github.com/prisma/orm/pull/<pr>))
Before:
```ts
<old shape>
```
After:
```ts
<new shape>
```
## Features
- <new capability>. ([#<pr>](https://github.com/prisma/orm/pull/<pr>))
## Fixes
- <bug fix>. ([#<pr>](https://github.com/prisma/orm/pull/<pr>))
## New contributors
- [@<handle>](https://github.com/<handle>) made their first contribution in [#<pr>](https://github.com/prisma/orm/pull/<pr>)Then prepend a ## v$NEXT entry to CHANGELOG.md, mirroring the notes-file body (newest-first). The CHANGELOG is a plain newest-first mirror — no second authoring format, no "Keep a Changelog" headers; copy the section bodies under the ## v$NEXT header at the top of the entry list (below the file's intro and the <!-- New release entries go here … --> marker).
Commit the notes file + CHANGELOG as their own commit on the release/<version> branch (keeping publish-npm-version's chore(release): bump commit clean), so the notes ride in the bump PR diff and satisfy the check:release-notes PR-mode gate. Use explicit staging and sign off:
git add docs/releases/v$NEXT.md CHANGELOG.md
git commit -s -m "docs(release): add release notes for v$NEXT"Control then returns to publish-npm-version for the push + PR-open steps.
publish-npm-version runs pnpm install --frozen-lockfile --ignore-scripts, so the .claude/ / .agents/ skill mirrors may not be materialized there. This skill is invoked by reading its canonical path, skills-contrib/draft-release-notes/SKILL.md, which exists in the checkout regardless.--notes-file wiring (scripts/check-release-notes.mjs, .github/workflows/). This skill produces the file; the gate and workflow consume it.publish-npm-version and updating docs/oss/versioning.md — handled separately; this file is the authoring logic only..github/release.yml label config or any third-party release-notes tool. Categorization is done here, by reasoning over the diff + Linear context — not from PR labels or an external generator.Cutting v0.12.0 from origin/main (previous stable tag v0.11.0).
PREV_TAG=$(git describe --abbrev=0 --tags --match 'v[0-9]*' --exclude '*-dev.*' --exclude '*-beta.*') → v0.11.0.git log --first-parent --oneline v0.11.0..HEAD lists 14 merged PRs. gh pr list --state merged --base main --json number,title,author,labels,mergedAt resolves their metadata.TML-2536: contract deserializer seam. Read TML-2536 in Linear → the user-facing outcome is "contract deserialization now goes through an explicit adapter seam". Write that outcome in public words; cite #1240, not TML-2536.includeMany capability (#1234) → feature. A null-handling bug fix (#1242) → fix. First-time contributor @somebody on #1238.0.11-to-0.12. The recipe dir skills/prisma-8/upgrading/app/upgrades/0.11-to-0.12/ exists in the checkout → the breaking note links it as a tag-pinned URL, https://github.com/prisma/orm/blob/v0.12.0/skills/prisma-8/upgrading/app/upgrades/0.11-to-0.12/. (If it were absent, return to release preparation before finalizing notes.)0.11-to-0.12 recipe (a TS runtime change, so a ts fence). @somebody's contributor line, with absolute links: - [@somebody](https://github.com/somebody) made their first contribution in [#1238](https://github.com/prisma/orm/pull/1238).docs/releases/v0.12.0.md (every PR ref + handle an absolute link; the breaking entry carries a before/after):# v0.12.0
Contract deserialization gains an explicit adapter seam, and queries can now eager-load related records.
## Breaking changes
- **Contract deserialization requires an adapter seam** — deserialization now goes through an explicit seam adapter; existing code must register one. See the [0.11-to-0.12 upgrade recipe](https://github.com/prisma/orm/blob/v0.12.0/skills/prisma-8/upgrading/app/upgrades/0.11-to-0.12/). ([#1240](https://github.com/prisma/orm/pull/1240))
Before:
```ts
const contract = deserializeContract(json);
```
After:
```ts
const contract = deserializeContract(json, { adapter: postgresAdapter });
```
## Features
- `includeMany` eager-loads related records in a single query. ([#1234](https://github.com/prisma/orm/pull/1234))
## Fixes
- Null values in `returning()` projections no longer throw. ([#1242](https://github.com/prisma/orm/pull/1242))
## New contributors
- [@somebody](https://github.com/somebody) made their first contribution in [#1238](https://github.com/prisma/orm/pull/1238) Then prepend the same body under ## v0.12.0 to CHANGELOG.md.
git add docs/releases/v0.12.0.md CHANGELOG.md && git commit -s -m "docs(release): add release notes for v0.12.0".docs/releases/README.md — the committed-notes-file convention (no auto-generated notes file: a stable release without one fails to publish), the section order, and the template this skill fills.CHANGELOG.md — the rolling newest-first mirror this skill prepends.publish-npm-version — the release-cut skill that invokes this one from the release/<version> worktree.record-upgrade-instructions — per-PR pending-fragment authoring and validation.scripts/check-upgrade-coverage.mjs — declaration coverage and release completeness.docs/oss/versioning.md — the version contract and release procedure these notes are part of.© 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/draft-release-notes of prisma/orm.
Open the folder on GitHubat commit 095af7a
Draft Prisma Release Notes 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 |
|---|---|---|---|---|---|---|
| Draft Prisma Release Notes this skillprisma/orm | 48k | — | ~5.2k | Automated safety check: Pass | Apache-2.0 | |
| Mole Release Notes Publishertw93/Mole | 69k | — | ~1.9k | Automated safety check: Pass | GPL-3.0 | |
| Release Managementyonatangross/orchestkit | 288 | — | ~1.4k | Automated safety check: Notes | MIT | |
| Contributor-First PR MergeHKUDS/OpenHarness | 16k | 1 repos | ~847 | Automated safety check: Pass | MIT | |
| Cutting A ReleaseTriliumNext/Trilium | 38k | — | ~3.2k | Automated safety check: Pass | AGPL-3.0 | |
| Mole CLI Release Flowtw93/Mole | 69k | — | ~2.5k | Automated safety check: Pass | GPL-3.0 |
tw93/Mole
Publishes curated, bilingual release notes for an existing Mole version tag with gh release edit, including contributor thanks and reactions, after the release workflow finishes.
yonatangross/orchestkit
Automates GitHub releases with semantic versioning, changelog generation from merged PRs, and gh CLI integration.
HKUDS/OpenHarness
Merges external GitHub pull requests while keeping the original author credited, and fixes conflicts after the merge instead of rewriting the contribution.
TriliumNext/Trilium
A skill your agent uses when cutting, preparing, or debugging a Trilium release — bumping the monorepo version, tagging, or diagnosing a failed "Release" workflow run.
tw93/Mole
Runbook for assessing and executing a Mole CLI release: distribution channels, pre-flight checks, capital-V tags, build artifacts and the handoff to curated release notes.
jamiepine/voicebox
Writes or refreshes the Unreleased section of CHANGELOG.md as a themed narrative built from the commits, PRs and diff since the last version tag.
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.
Categories
Drafts the release notes file and changelog entry for a Prisma 8 release from the PRs merged since the previous release tag, with breaking changes first. This is a prose-driven procedure for the agent that cuts a Prisma 8 release, stable or a release candidate; no script or codemod is involved.md` entry.
Draft Prisma Release Notes fits situations like: cutting a stable or release-candidate Prisma 8 release; refreshing the release notes after new upgrade fragments were incorporated; summarizing what shipped since the last release tag; reaching the draft-the-release-notes step of the npm publish workflow.
Run `npx skills add prisma/orm --skill draft-release-notes -a claude-code`. Or copy the skill folder (skills-contrib/draft-release-notes in prisma/orm) into .claude/skills/draft-release-notes in your project. Claude Code loads it when a task matches its description.
Run `npx skills add prisma/orm --skill draft-release-notes -a codex`. Or copy the skill folder (skills-contrib/draft-release-notes in prisma/orm) into .agents/skills/draft-release-notes 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 draft-release-notes -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/draft-release-notes, .gemini/skills/draft-release-notes, .github/skills/draft-release-notes and .opencode/skills/draft-release-notes in your project.
Going by SKILL.md and its folder, Draft Prisma Release Notes needs the command-line tools its instructions call (git, gh and pnpm). Our summary lists: The Prisma ORM repository with a release worktree and a known target version; Access to Linear tickets for context.
SKILL.md names 2 domains. In commands or code: github.com; the agent is likely to contact it when it follows the instructions. As links in the text: linear.app. 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. Review the folder before installing.
Draft Prisma Release Notes 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 5.2k tokens (SKILL.md is roughly 21k 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 Draft Prisma Release Notes: Mole Release Notes Publisher (tw93/Mole, 69k stars), Release Management (yonatangross/orchestkit, 288 stars), Contributor-First PR Merge (HKUDS/OpenHarness, 16k stars) and Cutting A Release (TriliumNext/Trilium, 38k 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.