Prisma ORM is a Node.js and TypeScript database toolkit that lets applications work with databases through a programming interface instead of writing every query directly in SQL. Developers use it with databases including PostgreSQL, MySQL, MariaDB, SQL Server, SQLite, MongoDB, and CockroachDB. The catalogue add-ons provide agent rules, skills, hooks, agents, and other workflows for using Prisma.
Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/prisma/ormnpx agentmods add skills/prisma/orm/review-implement-phaseWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/prisma/orm/review-implement-phase)<a href="https://agentmods.dev/skills/prisma/orm/review-implement-phase"><img src="https://agentmods.dev/badge/skills/prisma/orm/review-implement-phase/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/prisma/orm/review-implement-phase"><img src="https://agentmods.dev/badge/skills/prisma/orm/review-implement-phase.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- Snyk pass
- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00038 | $0.01644 |
| Opus 5.5 | $0.00015 | $0.00658 |
| Sonnet 5.5 | $0.00008 | $0.00329 |
| Haiku 4.5 | $0.00004 | $0.00164 |
Grade A, and why
review-implement-phase scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 119 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Review Implement Phase
Run only the implementation phase of the review-framework loop:
take triaged will_address actions, make code changes, commit in logical steps, post GitHub status updates, and update action status.
Run commands from this skill directory. All script paths below are relative to it.
Inputs
- Required:
- PR URL
- existing
review-actions.jsonin output dir
- Optional:
- output directory
- scope constraints (specific action IDs or files)
If output directory is omitted, derive:
wip/reviews/<owner>_<repo>_pr-<number>/
Preconditions
<output-dir>/review-actions.json must exist and be valid v2.
System dependencies required on PATH:
node(Node.js)gh(GitHub CLI)
If either is missing, halt immediately and ask the user to install it. The implement-phase scripts require only node and gh.
GitHub admin capability must be available before starting implementation:
node ./scripts/check-github-admin-ready.mjs --pr <PR_URL>
If missing, instruct user to run:
/review-fetch-phase <PR_URL> [output-dir]/review-triage-phase <PR_URL> [output-dir]
Behavior
- Read actions JSON and select actionable rows:
decision: will_addressstatus: pending | in_progress
- Preflight GitHub admin capability:
- run
check-github-admin-ready.mjsand fail fast if unavailable
- run
- Always post standalone comments (never pending PR reviews):
- When posting progress updates, do not create a PR review (draft/pending or otherwise).
- Forbidden flows:
gh pr review --comment ...- GraphQL
addPullRequestReview,addPullRequestReviewComment,addPullRequestReviewThread(this workflow never uses pending reviews)
- Allowed flows:
- thread replies via
addPullRequestReviewThreadReply(or wrapper script) - issue comments via
addComment(or wrapper script)
- thread replies via
- Before starting implementation:
- Detect pending reviews authored by the acting user on this PR:
gh api graphql -f query='query($owner:String!,$repo:String!,$pr:Int!,$before:String){viewer{login} repository(owner:$owner,name:$repo){pullRequest(number:$pr){reviews(last:100,states:PENDING,before:$before){pageInfo{hasPreviousPage startCursor} nodes{id author{login}}}}}}' -F owner=<owner> -F repo=<repo> -F pr=<number> --jq '.data as $d | $d.repository.pullRequest.reviews | {mine: [.nodes[] | select(.author.login == $d.viewer.login)], pageInfo}' - The
author.loginfilter matters: another user's pending review is not yours to submit or dismiss, and must not block this workflow.--jqisgh's built-in filter and needs nojqbinary. - The filter keeps
pageInfobeside the matches, because an emptyminealone cannot tell "no pending review" from "the match is on an earlier page". Read both: whilemineis empty andpageInfo.hasPreviousPageis true, re-run the query with-f before=<pageInfo.startCursor>. Conclude there is no pending review only whenmineis empty andhasPreviousPageis false. - GitHub allows one pending review per user per PR, so
mineholds at most one node across all pages. - If one exists, halt and clean it up (submit or dismiss) before continuing.
- Detect pending reviews authored by the acting user on this PR:
- After posting any "On it" / "Done" comment:
- Re-check for a pending review authored by the acting user, with the same filtered query and the same paging rule: keep reading
pageInfountilmineis non-empty orhasPreviousPageis false. - If one exists, the workflow is blocked until it is cleaned up.
- Re-check for a pending review authored by the acting user, with the same filtered query and the same paging rule: keep reading
- Implementation requirement:
- For
review_threadtargets, always reply using thread replies (never inline PR review comments).- If you only have the thread node id, first fetch the thread’s primary comment node id, then call
addPullRequestReviewThreadReply.
- If you only have the thread node id, first fetch the thread’s primary comment node id, then call
- For
pull_request_reviewtargets (review-body findings,PRR_…node ids), inline replies are not possible.post-review-thread-reply.mjsauto-detects this and posts a top-level PR issue comment instead (responsekind: "issue_comment"); there is no thread to resolve, so the implementer skipsresolve-review-thread.mjsfor these and records the issue-comment id in the action'sdonerecord.
- For
- Delegate implementation to:
./agents/review-implementer.md
- Require implementer responsibilities:
- make code changes
- run relevant checks
- create focused commits
- post "On it" when starting each action
- post "Done" when finished (universal); resolve the thread only when
target.kind === "review_thread"and athreadNodeIdis available.pull_request_reviewtargets have no inline thread, so the implementer skips the resolve step for them and records the issue-comment id in the action'sdonerecord (per behavior step 3). - use encoded helper scripts for thread admin operations:
node ./scripts/post-review-thread-reply.mjs --repo <owner>/<repo> --pr <number> --comment-node-id <primaryCommentNodeId> --body "<text>"(works for bothreview_threadandpull_request_review— auto-detects node kind)node ./scripts/resolve-review-thread.mjs --thread-node-id <threadNodeId>(only forreview_threadtargets)
- comments must be posted as individual standalone comments/replies, never as part of a pending review
- after each action completion (Done + resolve when applicable), verify no new pending review was created by the acting user
- never use inline parser snippets (for example:
python -c,node -e,ruby -e, ad-hoc awk/sed JSON parsing) - only set
status: doneafter Done (and, forreview_threadtargets, resolve) succeeds - update
review-actions.json(status,done.doneAt,done.summary,done.commits) in the same completion step
- Render latest action markdown:
What ships with it
6 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 119 lines · 38 tokens per session scan A 15de7b0878f7
review-implement-phase is a skill published in the GitHub repository prisma/orm (47,697 stars, last pushed today), licensed Apache-2.0. It adds 38 tokens to every session and 1,644 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
hero-diff-highlight
A dark code editor reveals a red deletion then a green addition with a soft pulse. Function: PR / code-change explainer.
stacking-prs
Create and manage GitHub native Stacked PRs in this repo with the gh stack CLI. Use when asked to stack PRs, split a large change into a stack, add a layer to a stack, restack or rebase a stack, adopt existing branches or PRs into a stack, check out someone else's stack, or land a stack. Covers creating and submitting…
reviewing-personhog-protocol
The full review process for personhog coordination-protocol changes — leases, fencing, handoffs, supervisors, failure budgets, warming, and changelog semantics. Use before pushing or requesting review on any personhog protocol changeset, when asked for an exhaustive or careful review of personhog code, and after any…
prisma-orm
Use when modeling data or writing type-safe queries with Prisma ORM in TypeScript — schema.prisma, prisma.config.ts, the generated Prisma Client, and Prisma Migrate, including the v6 to v7 upgrade. NOT schema-as-TS with a SQL builder (that is drizzle-orm), NOT ORM-agnostic zero-downtime migration (that is…
dev-self-merge
Merge self-check for a green PR. Reads the PR's required-check status from the checks API (the committed ci-status feed is RETIRED), outputs MERGE (mark task completed, stand down — server-side auto-enqueue enqueues.
pr-conflict-refresh
Find every open PR that is CONFLICTING/DIRTY against current main after a merge wave, ping its assigned dev to merge main into their branch and push, and track the re-test status.