PR Babysitter
openinterpreter/openinterpreter
Watches an open GitHub pull request until it merges, handling review comments, diagnosing CI failures and retrying flaky checks along the way.
Reviews a ToolJet pull request of any size and writes a findings report for you to read first, scaling the process to the diff and posting to GitHub only on request.
$ npx skills add ToolJet/ToolJet --skill review-pr -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ToolJet/ToolJet review-pr --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/ToolJet/ToolJet.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/review-pr .claude/skills/review-pr && 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 "review-pr" agent skill from https://github.com/ToolJet/ToolJet/tree/main/.agents/skills/review-pr into .claude/skills/review-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "review-pr", 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/ToolJet/ToolJet/tree/main/.agents/skills/review-prType 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 ToolJet/ToolJet --skill review-pr -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ToolJet/ToolJet review-pr --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ToolJet/ToolJet.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/review-pr .agents/skills/review-pr && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "review-pr" agent skill from https://github.com/ToolJet/ToolJet/tree/main/.agents/skills/review-pr into .agents/skills/review-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "review-pr", 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 ToolJet/ToolJet --skill review-pr -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ToolJet/ToolJet review-pr --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ToolJet/ToolJet.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/review-pr .cursor/skills/review-pr && 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 "review-pr" agent skill from https://github.com/ToolJet/ToolJet/tree/main/.agents/skills/review-pr into .cursor/skills/review-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "review-pr", 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/ToolJet/ToolJet.git --path .agents/skills/review-pr--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 ToolJet/ToolJet --skill review-pr -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ToolJet/ToolJet review-pr --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ToolJet/ToolJet.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/review-pr .gemini/skills/review-pr && 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 "review-pr" agent skill from https://github.com/ToolJet/ToolJet/tree/main/.agents/skills/review-pr into .gemini/skills/review-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "review-pr", 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 ToolJet/ToolJet review-prInstalls 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 ToolJet/ToolJet --skill review-pr -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ToolJet/ToolJet.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/review-pr .github/skills/review-pr && 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 "review-pr" agent skill from https://github.com/ToolJet/ToolJet/tree/main/.agents/skills/review-pr into .github/skills/review-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "review-pr", 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 ToolJet/ToolJet --skill review-pr -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ToolJet/ToolJet review-pr --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ToolJet/ToolJet.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/review-pr .opencode/skills/review-pr && 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 "review-pr" agent skill from https://github.com/ToolJet/ToolJet/tree/main/.agents/skills/review-pr into .opencode/skills/review-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "review-pr", 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.
review-prReviews a ToolJet pull request of any size and writes a findings report for you to read first, scaling the process to the diff and posting to GitHub only on request.
Before reading any diff, the agent asks for review context: links to a GitHub issue, PR or spec to fetch, pre-context pasted inline such as Slack threads and known deviations, or none for a cold review. The target is a PR number, URL or branch, defaulting to the current branch's PR, and it never reviews a PR you did not name or imply. The deliverable is a report file, and nothing reaches GitHub unless you ask after reading it.
Effort scales with size, counted as additions plus deletions across the root PR and the ee-server and ee-frontend submodule PRs. A small diff under about 1k lines gets a single pass and one report, while a medium one of roughly 1k to 8k lines is split into two to five conceptual sections, with one optional subagent per section. The diff is read as concepts that build on each other, tests first, and findings should survive a challenge from the author and point to lines they can act on. Reference files cover context intake, review lenses, comment format and posting.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 00af063. 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:
ghFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use gh, 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.
ToolJet Pull Request Review loads about 3.1k tokens when it runs, and up to ~9.7k if it reads all its reference files. Until then it costs about 131 tokens; SKILL.md has 1,577 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 ToolJet/ToolJet at commit 00af063, republished under its AGPL-3.0 licence (© ToolJet). 1,577 words, ~3,109 tokens.
.claude/skills/review-pr/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.Produce findings that survive a challenge from the author, anchored to lines the author can act on, in the voice the user would use. Read the diff as concepts that build on each other, tests first, then report what is worth a thread.
The deliverable is a report file. Nothing reaches GitHub unless the user asks for it after reading the report. A review posted before the user has weighed each finding puts their name on claims they have not checked, and a deleted thread still shows in the author's notifications.
Ask before reading any diff. Context decides what counts as a finding: a deliberate spec deviation is not a bug, and a product decision already made is not a question. Reviewing cold and then learning the answer costs a deleted thread.
One question, with options:
gh issue view, gh pr view,
or the doc tool that fits.Also accept the target as a PR number, URL, or branch name. Default target is the current
branch's PR (gh pr view). Never review a PR the user has not named or implied by branch.
Procedure, SHAs, and how to pull existing threads: references/context-intake.md. Read it at the
start of every review.
Size is the sum of additions and deletions across the root PR and both submodule PRs. Thresholds are rough; pick the tier that matches the reading effort, not the number.
| Tier | Size | Process |
|---|---|---|
| Small | under ~1k lines | Single pass in the main thread. No sections, no subagents. One report file. |
| Medium | ~1k to ~8k | Two to five conceptual sections. Subagents optional, one per section when they are used. One report file with a section per concept. |
| Large | above ~8k | One subagent per section. Index file with blocker table, one file per section, handoff doc for everything below the bar. If posting is later requested, Blocker and High only. |
A small PR touching a migration or an auth path gets the large-tier lenses at small-tier mechanics.
server/ee, frontend/ee. Fetch existing review
comments on all three PRs so no open thread is duplicated and new findings match the tone
already on the PR.AGENTS.md for every module touched, UBIQUITOUS_LANGUAGE.md, and the maps
under .agents/context/ when the PR crosses a system boundary.server/docs/testing.md to each new test: break the implementation, and if the suite stays
green the test asserts nothing.file:line verified inside a diff hunk at the
recorded head. An unanchored finding is an opinion and stays out.references/posting.md.Cite the repo's own authority in the finding instead of restating the rule. Detail per lens,
with what to look for and how to phrase it: references/lenses.md. Read it before the first
section.
| Lens | Authority |
|---|---|
| Correctness | Section's own contract, tests, .agents/context/architecture-map.md for cross-boundary flows. Every tenant, environment, edition. |
| Tests | server/docs/testing.md: mutation heuristic, toMatchObject shape assertions, behavior matrix, boundary rule. frontend/AGENTS.md → Testing (names src/test/README.md; App Builder layer). |
| Typing | server/AGENTS.md Design principles. No any; precise types or unknown casts. |
| Comments | Exhaustive sweep, one verdict per block the diff adds: DELETE (default), KEEP as one line only when the WHY is not deducible from code, symbol, or test name, AGENTS.md only for a general module rule. Deletion beats relocation. |
| Design | server/AGENTS.md Design principles: pure calculations out of I/O, stratified design, deep modules. Practical refactors only. |
| Conventions | Closest AGENTS.md plus the living-docs rule in root AGENTS.md: a changed invariant with no AGENTS.md update is a finding. Glossary terms from UBIQUITOUS_LANGUAGE.md. |
| API contract | .agents/skills/api-design/SKILL.md. Only when server/src/modules/**/controller*.ts, dto/, or external-apis/ are touched. |
| Security | server/AGENTS.md Security, frontend/AGENTS.md Security, root AGENTS.md Public/private boundary. |
The PR is three PRs: root (ToolJet/ToolJet), server/ee (ToolJet/ee-server), frontend/ee
(ToolJet/ee-frontend). Cover every file in all three. Every finding records which of the three
PRs it belongs to and that PR's head SHA; check the path for the EE marker before matching
against the root repo.
The root repo is public. A finding destined for the root PR never quotes private source, private paths, customer data, or private issue context. State the invariant in public terms and point at the EE thread.
Write every finding as the comment it would become, per references/comment-format.md. Read it
before drafting the first finding. The opening line differs by tier: plain consequence sentence
for small and medium, severity-tagged for large where triage across many threads matters.
Standing tone rules, every finding, every tier:
suggestion blocks when the change sits on
the anchored lines.UBIQUITOUS_LANGUAGE.md,
anything else explained in plain words on first use. Bullets only for lists the reader scans.
A diagram (mermaid or ascii) whenever the point is a flow or two paths converging.Impact. paragraph, written as the scenario the user or operator hits, whenever the
finding reaches past the codebase. Omitted otherwise.The report lives under the scratchpad unless the user names another location. Hand the path back with a short summary: blocker count, what was checked and found clean, and any open questions for the user.
Every finding entry carries: target PR and head SHA, path:line (with start_line for a range),
the drafted comment body, and a one-line rationale for the severity. That is exactly what
posting needs, so the report doubles as the posting queue.
Small and medium tiers: one review.md, findings ordered by severity, then a "checked and
clean" list.
Large tier:
index.md: blocker table (file:line, one-line consequence, section), cross-cutting themes,
and the section list.handoff.md: everything below the posting bar, grouped by section, complete enough to read
cold. Lead with the themes that cover most of the list, then the anchored entries.Do not post, and do not offer to post, in the same turn as the report. The user decides after reading. When they ask:
references/posting.md: mechanics, verified gh api calls, and the failure modes
that cost a re-post. Read it before the first POST.When a finding is out of the PR's scope but worth tracking, file it with the create-issue skill,
the only sanctioned path for an agent to open an issue. It targets ToolJet/tj-ee and applies the
required Agent and review-pr labels. Always ask the human for explicit approval before creating
any issue; being asked to review is not approval to file. Do not call gh issue create directly,
and never file to the public repository.
commit and create-pr skills, never --no-verify.© ToolJet, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 4 other files (references) in .agents/skills/review-pr of ToolJet/ToolJet.
Open the folder on GitHubat commit 00af063
ToolJet Pull Request Review 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 |
|---|---|---|---|---|---|---|
| ToolJet Pull Request Review this skillToolJet/ToolJet | 41k | — | ~3.1k | Automated safety check: Pass | AGPL-3.0 | |
| PR Babysitteropeninterpreter/openinterpreter | 69k | 3 repos | ~4.2k | Automated safety check: Pass | Apache-2.0 | |
| GitHub Review Iterationprisma/orm | 48k | — | ~2.2k | Automated safety check: Pass | Apache-2.0 | |
| PR Review State Fetchprisma/orm | 48k | — | ~767 | Automated safety check: Pass | Apache-2.0 | |
| PR Finalize Reviewmicrosoft/garnet | 12k | — | ~3.1k | Automated safety check: Pass | MIT | |
| Fastlane Pull Request Reviewfastlane/fastlane | 42k | — | ~550 | Automated safety check: Pass | MIT |
openinterpreter/openinterpreter
Watches an open GitHub pull request until it merges, handling review comments, diagnosing CI failures and retrying flaky checks along the way.
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.
microsoft/garnet
Checks that a pull request's title and description match its implementation and reviews the code for Garnet best practices, reporting findings without posting them.
fastlane/fastlane
Reviews a fastlane pull request against its linked issue and the project guides, separating blocking from non-blocking findings and handling vulnerabilities privately.
thedotmack/claude-mem
Keeps watching a pull request, fixing real review and CI problems and resolving stale threads, until it is clean and ready to merge.
ToolJet/ToolJet
Turns an API description, such as an OpenAPI file or a Postman collection, into a connector plugin for ToolJet's marketplace and checks it with the repo's validator.
ToolJet/ToolJet
Commits changes across ToolJet's root repo and its server/ee and frontend/ee submodules, writing messages from the diffs and updating submodule pointers in order.
ToolJet/ToolJet
Opens a pull request for the current ToolJet branch, pushing the root repo and the ee submodules, creating submodule PRs first and then the main PR with a generated description.
ToolJet/ToolJet
Cuts a ToolJet release branch, bumps the version and moves feature PRs onto it, or adds more PRs to a release that already exists.
ToolJet/ToolJet
Merges a source branch into the current branch across ToolJet's root repo and its server/ee and frontend/ee submodules, handling conflicts and submodule order.
ToolJet/ToolJet
Decides where a new agent skill belongs in the ToolJet repo, public root or private ee submodule, then wires the symlinks so it loads in Claude Code, Cursor and Codex.
Works with
Categories
Reviews a ToolJet pull request of any size and writes a findings report for you to read first, scaling the process to the diff and posting to GitHub only on request. Before reading any diff, the agent asks for review context: links to a GitHub issue, PR or spec to fetch, pre-context pasted inline such as Slack threads and known deviations, or none for a cold review. The target is a PR number, URL or branch, defaulting to the current branch's PR, and it never reviews a PR you did not name or imply.
ToolJet Pull Request Review fits situations like: reviewing a ToolJet PR before merge; finding blockers in a branch or a diff; reviewing PRs that include ee-server and ee-frontend submodule changes; turning review notes into a report before any comments are posted.
Run `npx skills add ToolJet/ToolJet --skill review-pr -a claude-code`. Or copy the skill folder (.agents/skills/review-pr in ToolJet/ToolJet) into .claude/skills/review-pr in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ToolJet/ToolJet --skill review-pr -a codex`. Or copy the skill folder (.agents/skills/review-pr in ToolJet/ToolJet) into .agents/skills/review-pr 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 ToolJet/ToolJet --skill review-pr -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/review-pr, .gemini/skills/review-pr, .github/skills/review-pr and .opencode/skills/review-pr in your project.
Going by SKILL.md and its folder, ToolJet Pull Request Review needs the command-line tools its instructions call (gh). Our summary lists: GitHub CLI (gh), for fetching issues and pull requests.
SKILL.md contains no URLs. Its commands use gh, 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 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.
ToolJet Pull Request Review is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.1k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 6.6k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with ToolJet Pull Request Review: PR Babysitter (openinterpreter/openinterpreter, 69k stars), GitHub Review Iteration (prisma/orm, 48k stars), PR Review State Fetch (prisma/orm, 48k stars) and PR Finalize Review (microsoft/garnet, 12k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ToolJet (a GitHub organization) maintains it in ToolJet/ToolJet, which has 41,054 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 9, 2026.
Source: ToolJet/ToolJet on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.