Contrib Pr logo

Contrib Pr

OrganizationPopular
prisma
contrib-pr

Open a high-quality external contributor PR against prisma/orm. Use when the user is an outside contributor (not a Prisma maintainer) and wants to submit a change as a pull request from a fork. Encodes the contribution flow from CONTRIBUTING.md so the resulting PR passes review on the first round.

Overview

Publisherprisma
Repositoryorm
Skill namecontrib-pr
Stars
47.6K
Forks
2.5K
Bundled files
Instructions only
LicenseApache-2.0
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by prisma on GitHub. Read the source before you install it.

Installation

Install the Contrib Pr AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/prisma/orm.git /tmp/orm
mkdir -p .claude/skills
cp -r /tmp/orm/skills-contrib/contrib-pr .claude/skills/contrib-pr
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Contrib Pr in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Contrib Pr on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Contrib Pr is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Contributor PR skill (external)

This skill is for external contributors to prisma/orm who are using an LLM-based agent to author or finalize a PR. It is intentionally separate from the maintainer-facing create-pr skill: it does not depend on Linear access, internal plan/spec documents, or any private context. It encodes the expectations laid out in CONTRIBUTING.md as a runnable workflow, so the PR you produce matches the shape maintainers expect on the first review round.

If the user is a maintainer with access to internal Linear tickets, use create-pr instead.

When to use

Trigger this skill when the user says any of:

  • "Open a PR for this contribution"
  • "Submit this as a PR to prisma/orm"
  • "I'm contributing to Prisma 8, finalize my change"
  • "Help me get this PR ready for review"

If the user has clearly already followed the contribution flow and just needs the gh pr create invocation, you may skip directly to step 5.

Operating principle

Verify the result, not the authorship. The maintainers do not ask whether the change was AI-assisted; they verify that:

  1. It is scoped to one logical concern.
  2. The right test suite is green.
  3. The PR explains why the change exists, not file-by-file what.
  4. Every commit is signed off (DCO).
  5. The PR title is in conventional-commit form.

This skill is a pit of success — there is no CI gate that checks you used it. Following it is the cheapest way to land the PR cleanly.

Workflow

Step 1 — Read the contribution contract

Before doing anything else, read the project's contribution docs:

  1. Read CONTRIBUTING.md. This is the source of truth for setup, the test command set, DCO signoff, and PR expectations.
  2. Read CODE_OF_CONDUCT.md so you understand what's expected in your interactions on the PR thread.
  3. Skim SECURITY.md. If your change is fixing a security issue, stop and use the Private Vulnerability Reporting flow instead — do not open a public PR.

If anything in CONTRIBUTING.md contradicts what this skill says, CONTRIBUTING.md wins.

Step 2 — Confirm the change is in the right shape

Before opening the PR, check:

  • One logical change. If the diff includes unrelated cleanup or "while I was here" fixes, ask the user whether to split them into separate PRs. Mixed-scope PRs almost always trigger a "please split this" review comment.
  • Substantive change? If the change is more than a typo / doc fix / obvious bug fix, ask the user whether they opened a tracking issue first per CONTRIBUTING.md. If not, recommend they do — maintainers will respond within 5 business days, and a half-day issue conversation can prevent a one-week PR rewrite when the design direction differs from what they expect.
  • Tests updated. If the change has any behavioural delta and there are no test changes in the diff, push back on the user before opening the PR. "Why aren't there tests?" is the most common reason a PR gets bounced.
  • No backward-compat shims. Prisma 8 is RC; if the change renames or removes an API, the call sites should be updated, not aliased.

Step 3 — Run the right test suites

Run the suite that matches the scope of the change. From CONTRIBUTING.md:

Change scopeCommand
Type errors onlypnpm typecheck
Lint / formattingpnpm lint
Unit tests in packages/**pnpm test:packages
Examplespnpm test:examples
Postgres / SQLite e2epnpm test:e2e
Database integrationpnpm test:integration
Vite plugin / Cloudflare Workerpnpm test:vite-plugin (needs Docker)
Everythingpnpm test:all

The minimum bar before opening any PR is:

bash
pnpm typecheck && pnpm lint && pnpm test:packages

If any of these fail, fix the failure (or push back on the user about whether the change is actually right) before continuing. Do not open a PR with a known-failing test or lint error. It will be closed for that reason alone.

If the change touches the SQL runtime, also run pnpm test:integration and/or pnpm test:e2e. If you can't tell whether the change touches the SQL runtime, run them anyway — they're self-contained (PGlite + mongodb-memory-server, no external DB needed).

Step 4 — Sign off the commits (DCO)

Every commit on the PR must have a Signed-off-by: trailer matching the commit author's name + email. Without this, the DCO status check blocks the PR from merging.

Check current commits:

bash
git log origin/main..HEAD --format='%h %an <%ae>%n%b%n---'

For each commit, verify the body contains a Signed-off-by: line whose name + email match %an <%ae>.

If any commit is missing the trailer:

  • Last commit only: git commit --amend --signoff --no-edit
  • Multiple commits: git rebase --signoff origin/main

After amending or rebasing, force-push to the contributor's fork: git push --force-with-lease.

Step 5 — Compose the PR title and body

Title

Conventional commit form, lowercase after the colon, no trailing period, under ~60 chars:

text
type(scope): concise lowercase description

type is one of: feat, fix, chore, docs, refactor, test. Pick the one that best describes the change. scope is the primary affected package or layer (sql-runtime, postgres-adapter, contract, cli, framework, mongo-orm, etc.). If the change spans many packages, pick the one most central to the change.

Examples:

  • feat(sql-orm-client): support computed includes
  • fix(postgres-adapter): handle null in jsonb columns
  • docs(contributing): clarify pnpm install steps

PR titles are the raw material the release-notes author triages when a version ships, so pick a title a downstream user would understand.

Body

Fill in the pull request template sections in order:

  • Linked issue: Fixes #N / Refs #N. If no issue exists because the change is small, write n/a — small change.
  • Summary: one or two sentences focused on why, not file-by-file what. "Adds X because Y was broken" rather than "Adds X function in foo.ts and modifies bar.ts".
  • Testing performed: list the actual pnpm test:* commands you ran. If you ran a manual repro (e.g. against the demo), say so.
  • Skill update: say which agent skill the change teaches. Write n/a — internal only only when the change is purely internal or a refactor with no user-visible delta. A user-facing change that teaches no existing skill still needs a sentence saying why no skill update is required. The checklist below asks you to confirm this section.
  • Checklist: confirm DCO signoff, scope, tests, conventional title.
  • Notes for the reviewer (optional): alternative approaches you considered, follow-ups intentionally deferred, anything you want the reviewer to focus on.

Do not include an "AI-authored" disclosure. Maintainers do not require it; it adds noise.

Step 6 — Confirm with the user, then push and open

  1. Show the user the proposed title + body in full and ask for confirmation.
  2. After confirmation, push to the contributor's fork (git push -u origin HEAD from the contributor's branch in the fork).
  3. Open the PR:
bash
gh pr create --title "the title" --body "$(cat <<'EOF'
the body
EOF
)"

The gh CLI must be authenticated against the contributor's GitHub account, not against prisma/orm directly. The PR will open against prisma:main from the contributor's fork.

  1. Return the PR URL.

  2. Tell the user: a maintainer from @prisma/ORM-TS-Maintain will be auto-assigned via CODEOWNERS and is committed to a 5-business-day response window. If the change is large or controversial, expect a review thread before merge.

Don'ts

  • Don't rename CONTRIBUTING.md rules. If they've changed since this skill was written, follow the file, not the skill.
  • Don't force a maintainer's email into a Signed-off-by: trailer. The DCO sign-off must be the contributor's own name and email matching the commit author.
  • Don't open the PR with a failing local check. If pnpm test:packages is red, fix it before pushing.
  • Don't include AI-disclosure boilerplate in the PR body, an "intent artifact" attachment, or any prompt logs. The project does not ask for these.
  • Don't open public issues or PRs for security vulnerabilities. Use Private Vulnerability Reporting per SECURITY.md.
  • Don't ask the user to share secrets, npm tokens, or anything they wouldn't put in a public commit.

Frequently asked questions

What does the Contrib Pr AI skill do?

Open a high-quality external contributor PR against prisma/orm. Use when the user is an outside contributor (not a Prisma maintainer) and wants to submit a change as a pull request from a fork. Encodes the contribution flow from CONTRIBUTING.md so the resulting PR passes review on the first round.

Why use Contrib Pr on TypingMind?

Because you install it once and use it with any model. Contrib Pr is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Contrib Pr in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/prisma/orm/tree/main/skills-contrib/contrib-pr. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Contrib Pr?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Contrib Pr?

As many as you like. As long as a model supports skills, you can use Contrib Pr with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Contrib Pr AI skill free?

Yes. It is published on GitHub by prisma under the Apache-2.0 license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇