Finishing a Development Branch
obra/superpowers
Walks the last step of a branch: confirm tests pass, detect the git environment, ask how to integrate, carry out your choice and clean up the worktree.
A skill your agent uses whenever a Trilium pull request is to be judged — "review PR N", "is
$ npx skills add TriliumNext/Trilium --skill reviewing-pull-requests -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install TriliumNext/Trilium reviewing-pull-requests --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/TriliumNext/Trilium.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/reviewing-pull-requests .claude/skills/reviewing-pull-requests && 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 "reviewing-pull-requests" agent skill from https://github.com/TriliumNext/Trilium/tree/main/.claude/skills/reviewing-pull-requests into .claude/skills/reviewing-pull-requests/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "reviewing-pull-requests", 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/TriliumNext/Trilium/tree/main/.claude/skills/reviewing-pull-requestsType 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 TriliumNext/Trilium --skill reviewing-pull-requests -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install TriliumNext/Trilium reviewing-pull-requests --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TriliumNext/Trilium.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/reviewing-pull-requests .agents/skills/reviewing-pull-requests && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "reviewing-pull-requests" agent skill from https://github.com/TriliumNext/Trilium/tree/main/.claude/skills/reviewing-pull-requests into .agents/skills/reviewing-pull-requests/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "reviewing-pull-requests", 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 TriliumNext/Trilium --skill reviewing-pull-requests -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install TriliumNext/Trilium reviewing-pull-requests --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TriliumNext/Trilium.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/reviewing-pull-requests .cursor/skills/reviewing-pull-requests && 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 "reviewing-pull-requests" agent skill from https://github.com/TriliumNext/Trilium/tree/main/.claude/skills/reviewing-pull-requests into .cursor/skills/reviewing-pull-requests/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "reviewing-pull-requests", 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/TriliumNext/Trilium.git --path .claude/skills/reviewing-pull-requests--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 TriliumNext/Trilium --skill reviewing-pull-requests -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install TriliumNext/Trilium reviewing-pull-requests --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TriliumNext/Trilium.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/reviewing-pull-requests .gemini/skills/reviewing-pull-requests && 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 "reviewing-pull-requests" agent skill from https://github.com/TriliumNext/Trilium/tree/main/.claude/skills/reviewing-pull-requests into .gemini/skills/reviewing-pull-requests/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "reviewing-pull-requests", 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 TriliumNext/Trilium reviewing-pull-requestsInstalls 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 TriliumNext/Trilium --skill reviewing-pull-requests -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/TriliumNext/Trilium.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/reviewing-pull-requests .github/skills/reviewing-pull-requests && 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 "reviewing-pull-requests" agent skill from https://github.com/TriliumNext/Trilium/tree/main/.claude/skills/reviewing-pull-requests into .github/skills/reviewing-pull-requests/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "reviewing-pull-requests", 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 TriliumNext/Trilium --skill reviewing-pull-requests -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install TriliumNext/Trilium reviewing-pull-requests --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TriliumNext/Trilium.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/reviewing-pull-requests .opencode/skills/reviewing-pull-requests && 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 "reviewing-pull-requests" agent skill from https://github.com/TriliumNext/Trilium/tree/main/.claude/skills/reviewing-pull-requests into .opencode/skills/reviewing-pull-requests/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "reviewing-pull-requests", 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.
reviewing-pull-requestsA skill your agent uses whenever a Trilium pull request is to be judged — "review PR N", "is
Reviewing Pull Requests is an agent skill from TriliumNext/Trilium. Use whenever a Trilium pull request is to be judged — "review PR N", "is
Its SKILL.md is about 4.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including reference files (for example `references/accepted-shape.md`, `references/philosophy.md` and `references/rejection-patterns.md`).
It sits in Development, covering Pull requests. The repository describes itself as: Build your personal knowledge base with Trilium Notes. The licence is AGPL-3.0.
8 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 96bed2f. 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.
Ships script files (JavaScript), which the agent can run.
Shell commands in SKILL.md call:
nodeFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
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.
Reviewing Pull Requests loads about 4.9k tokens when it runs, and up to ~17k if it reads all its reference files. Until then it costs about 24 tokens; SKILL.md has 2,590 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 TriliumNext/Trilium at commit 96bed2f, republished under its AGPL-3.0 licence (© TriliumNext). 2,590 words, ~4,907 tokens.
.claude/skills/reviewing-pull-requests/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.A PR arrives with a title, a description and a green check mark, and all three are the author's claims. This skill judges a PR from three things instead: the issue (what is actually wrong or wanted), the diff read in the context of the code around it, and a verification run on a checkout of the branch. The verdict is about whether the change fits this project and has the shape the maintainers would have given it — because the most common fate of a working contribution here is not "declined" but "re-done smaller by the maintainer" (33 of 126 closed PRs with a discussion).
Everything mechanical is review.mjs:
R=.claude/skills/reviewing-pull-requests/review.mjs
node $R list # every open PR: kind, age, size by file kind, issues, flags, rivals
node $R dupes # open PRs competing for the same issue or subject
node $R dossier 11536 # the PR in full: body, linked issues + their discussion, commits,
# files by kind, human review threads (bots folded), rivals
node $R verify 11536 # worktree at .claude/worktrees/pr-11536, install, typecheck, the
# PR's specs green on the branch and red with production reverted,
# sibling specs, dependency lines, docs impact — ~25 s for a small PR
node $R issue 6853 # an issue with its human comments: the problem statement itself
node $R clean 11536 # remove the worktree (all of them without a number)dossier and verify save their reports under .claude/reviews/pr-N/ (gitignored). Nothing here
writes to GitHub — see Conduct.
State these plainly in a report when the author or a bot leans on them:
verify answers the real question.main into the branch himself; a PR is merged with
a merge commit, never squashed. Conflicts matter only when they span the whole change (a branch
thousands of commits behind, like the MapLibre PR that was rebuilt instead).size:* and lgtm labels. size:* is a bot's line count; lgtm is a bot mirroring a
maintainer's APPROVED seconds later, not a judgement of its own. don't merge yet and State:*
are issue labels; on PRs the state toggle is draft ↔ ready.## Why / ## What, ## Problem / ## Fix); a body longer
than the diff is a warning, not a virtue.trilium://)? a changed default or convention? a dependency? Fit decides
more closed PRs than everything else combined; 40 of the closed PRs had specs.00:aa:00" / "doesn't work on this theme". A fix at the place a symptom is seen
rather than produced is REWORK.
Is the new behavior the right one? When the old behavior is plainly broken (a dropped word,
a crash, an empty result) but the input is ambiguous, the fix has to choose what the input
means — and a red/green spec only proves the PR's own choice. Settle the intended semantics
before reading the diff: what the reporter meant, what the User Guide shows, what similar apps
do. Search syntax, parsers, link and date formats, and defaults are where this hides: #11596
split towers#book into a word plus a #book filter, while the convention elsewhere (Obsidian,
hashtags, Gmail operators) is that a sigil opens syntax only at a word start and is literal
inside one (C#). With no issue to say what the user meant, the choice is YOUR CALL.ifs
and returns" is a verdict this project gives.
A near-copy of an existing function is a finding whatever its size, never "acceptable" or
"optional": the two drift (#11665's "Search now" handler copied the ribbon's
refreshResults() and already reported the query error differently). Grep for the calls the new
code makes, name the shared helper in the verdict, and list the extraction under You finish
or Fixes before merge.verify says whether the PR's tests fail without the production change and pass
with it. A new test that passes both ways covers existing behavior, not this fix. A core change
is proven under apps/server and apps/standalone. No spec on a covered module is a gap;
a spec that is "quite a bit complicated" is a gap too — the house writes concise ones.docs/User Guide/** Markdown and the generated doc_notes/** move together
(hand-edited HTML or unsynced Markdown is a gap); only the en catalogues are edited; a new
option is whitelisted, defaulted and has a control (the seven-file recipe in accepted-shape).
verify runs docs.mjs impact for the diff; run it with the feature's name too.!, forEach, inline
style, hand-rolled <input> where FormTextBox exists, localStorage, Node built-ins in
core, comment style, ~10-SLOC modules). Each is a "you finish" gap. They change a verdict only
in bulk, when they show the code was written beside the codebase rather than in it.For a diff under packages/ckeditor5, load the ckeditor5-reviewing skill for the plugin-level
defects; this skill still owns the verdict.
node $R dossier N. Read in this order: the linked issue and its comments (the problem, in
the reporter's and the maintainer's words — if there is none, decide whether the problem is real
before anything else), the commits (subject and body per commit; they land verbatim on
main), the files by kind and the flags, the human review threads (what a maintainer
already asked; whether it was done), the rivals, and only then the description.node $R verify N. Read the report: install, typecheck, each spec's green/red result and which
tests prove the change, sibling specs, dependency lines, docs impact.git -C .claude/worktrees/pr-N diff $(git -C .claude/worktrees/pr-N merge-base HEAD origin/main) and then the changed files whole,
with what surrounds them. This is where "reuse the existing helper" (useNoteLabel,
isCtrlKey, FormTextBox, an existing option) and "wrong layer" are visible and a diff view
hides them. For a bugfix, find the cause yourself first, then compare.en-GB twin last.When the PR has a rival (dupes), do both and write one comparison: the smaller change that fixes
the cause usually wins; the earlier one has no precedence by age; sometimes the right answer is a
third, smaller change that neither made — say so, and name it.
The question "what should I merge?" is answered in two passes, because verifying 60 PRs costs an hour and most verdicts do not depend on the code running.
node $R list and node $R dupes. Note what the list hides (bots, the maintainers' own drafts
and spikes — those are the maintainer's business, not candidates).dossier each PR (the saved reports accumulate under
.claude/reviews/). Decide from the issue, the commits, the file mix and the review threads
which PRs cannot be candidates whatever the code does: fit failures, undiscussed designs in
maintainer-led areas, bulk, riding features, a use case nobody asked for, a rival already
superseded. Give each a one-line reason and its verdict (DECLINE, REWORK or YOUR CALL).
Do not read code yet.verify
included — nothing is called a candidate on a description. For more than a handful, fan out one
agent per PR with this skill's path and the dossier, each returning the report block; keep the
ranking and the rival comparisons for yourself.(closes #N) subject, a rename, a doc paragraph, an en-GB twin, a redundant comment. List
them under You finish; they do not lower the verdict.link.ts:142, the rest is a refactor" saves a round trip. The yes, but table in philosophy.md
is the catalogue of target shapes.MERGE and MERGE AFTER FIXES are the merge candidates. A YOUR CALL becomes one only after the
maintainer answers.
| The PR says | Check |
|---|---|
| "Fixes #N" | Read #N. Does the diff address what the reporter described, or a neighbor of it? (#11063 fixed the cursor position, not the duplicated text.) A (closes #N) in the title counts as a link even when GitHub did not parse it. |
| "Tested manually", "works for me" | verify. Then ask which platform, theme, database size and sync setup — the untested branch is usually the one that breaks. |
| "No user-facing change" | verify's docs impact; grep the diff for t(", JSX, CSS, keyboard actions, options, hidden-subtree launchers. |
"Small change", size:S | Production lines and files from the dossier, not the total; then count abstractions. |
| "Added tests" | verify's red run. Tests that pass without the production change do not test it. |
| "Now behaves like X" (a parser, syntax or default fix) | Red/green proves the PR does what the PR decided. Decide independently what the input should mean (issue, User Guide, other apps); a finding like "now matches its spaced form" is the design choice restated, not evidence for it. |
| "Refactor, no behavior change" | Every call site of what moved; a capability quietly lost (folders-at-the-bottom in #11424). |
| "Docs updated" | Both the Markdown and the generated help, produced by edit-docs/docs.mjs sync, not hand-edited HTML. |
| "Will add docs/tests/UI in a follow-up" | It is a gap now; the PR is judged as it is. The maintainer sometimes allows "a separate PR if needed" — that is his call to make, not the author's. |
fix(…) in the title | Is it a feature? A new plugin, component or module under a fix( subject is judged as a feature (discussed? documented? agreed?). |
| "Minimal", "simple" | New classes, wrappers, single-caller helpers, new modules, regexes where a parser exists. |
| "Same as #X but better" | dupes; judge both side by side. |
Bot approval, lgtm | A mirror of a human APPROVED at best; nothing on its own. |
## #N — <title>
Verdict: MERGE | MERGE AFTER FIXES | REWORK | DECLINE | YOUR CALL
Problem: <the issue in one sentence; whether the diff addresses that, in your words>
Change: <what the diff does, in your words; prod +A/−B in F files, spec, docs>
Fit: <principle engaged, with the precedent, or "fits">
Verified: <spec proves N tests / passes without the change / none; typecheck; runtimes run>
Findings:
- <heaviest first: fit, cause, scope, size, robustness, spec, docs, conventions>
You finish: <gaps the maintainer closes on the branch> [MERGE]
Fixes before merge: <local fixes> [MERGE AFTER FIXES]
Target shape: <the smaller/other change, concretely> [REWORK]
Question: <one sentence> — recommendation: <one sentence> [YOUR CALL]# Merge candidates — <date> · <N> open PRs, <V> verified, <S> screened on the dossier
## Merge (ranked by cost to land, then value)
1. #N <title> — <value in five words> — you finish: <gaps> — verified: <one line>
## Merge after fixes
## Rework — goal right, shape wrong
## Your call
## Decline
## Rivals — one issue, several PRs
- #A vs #B (issue #I): <which, why, in two lines>
## Not assessed: maintainer drafts and spikes, bots00:aa:00, the calendar crashes. Report invalid values via toast; write a test for it.") — and
hand it over as text to paste.verify restores it and reports
if it could not.verify run says so; a spec that could not run under
standalone says so.| File | Use it for |
|---|---|
| references/philosophy.md | The fit dimension: 18 principles as review questions, each with the maintainers' own words and the issue/PR numbers; the yes, but table of shapes a request is accepted in. |
| references/rejection-patterns.md | Why 126 PRs were closed, as spot-in-a-diff patterns with quotes; the priors (superseded by a smaller change, size, fit over specs). |
| references/accepted-shape.md | The yardstick: measured size and shape of accepted fixes and features, exemplar commits, how PRs land, what the maintainer asks for vs fixes himself vs sends back, and the mechanical checks. |
© TriliumNext, 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 .claude/skills/reviewing-pull-requests of TriliumNext/Trilium.
Open the folder on GitHubat commit 96bed2f
Reviewing Pull Requests 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 |
|---|---|---|---|---|---|---|
| Reviewing Pull Requests this skillTriliumNext/Trilium | 38k | — | ~4.9k | Automated safety check: Pass | AGPL-3.0 | |
| Finishing a Development Branchobra/superpowers | 297k | 5 repos | ~1.9k | Automated safety check: Pass | MIT | |
| PR Babysitteropeninterpreter/openinterpreter | 69k | 3 repos | ~4.2k | Automated safety check: Pass | Apache-2.0 | |
| Check PRonyx-dot-app/onyx | 32k | 2 repos | ~2.3k | Automated safety check: Pass | MIT | |
| PR Design DocOpenHands/OpenHands | 90k | — | ~2.4k | Automated safety check: Pass | MIT | |
| WooCommerce Code Reviewwoocommerce/woocommerce | 11k | 3 repos | ~1.1k | Automated safety check: Pass | Custom licence |
obra/superpowers
Walks the last step of a branch: confirm tests pass, detect the git environment, ask how to integrate, carry out your choice and clean up the worktree.
openinterpreter/openinterpreter
Watches an open GitHub pull request until it merges, handling review comments, diagnosing CI failures and retrying flaky checks along the way.
onyx-dot-app/onyx
Checks a GitHub, GitLab, or Perforce (p4) pull request (or merge request, or shelved changelist) for unresolved review comments, failing status checks, and incomplete PR descriptions.
OpenHands/OpenHands
For a non-trivial pull request, write a self-contained HTML design doc under the temporary .pr/ directory and link a visibility-appropriate preview in the PR description, so maintainers grasp the…
woocommerce/woocommerce
Reviews WooCommerce code changes against the project's standards, flagging backend PHP architecture, naming, documentation, data integrity and testing violations.
payloadcms/payload
A skill your agent uses when a Payload pull request needs a concise visual walkthrough for reviewers.
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.
TriliumNext/Trilium
A skill your agent uses when working on the Trilium Electron desktop app (apps/desktop) — adding or changing an electronApi method / IPC channel, touching preload.ts, main.ts, services/window.ts or…
TriliumNext/Trilium
A skill your agent uses when adding a DB migration or a new column/field to a Becca entity in Trilium ("add a migration", "new column on notes/attributes", "ALTER TABLE", "add a field to…
TriliumNext/Trilium
A skill your agent uses when adding, moving, or wiring an internal REST endpoint in Trilium (a new /api/ route) — choosing between a core-shared handler (packages/trilium-core/src/routes/index.ts…
TriliumNext/Trilium
A skill your agent uses when adding, changing, or reviewing an LLM/MCP tool in Trilium (the defineTools definitions under packages/trilium-core/src/services/llm/tools/ —…
TriliumNext/Trilium
Write, extend, and review CKEditor 5 plugins in the Trilium (TriliumNext Notes) monorepo — the rich-text-note editor under packages/ckeditor5, whose plugins live in src/plugins/.
Categories
A skill your agent uses whenever a Trilium pull request is to be judged — "review PR N", "is. Reviewing Pull Requests is an agent skill from TriliumNext/Trilium.
Reviewing Pull Requests fits situations like: A Trilium pull request is to be judged — review PR N; tasks that involve Pull requests.
Run `npx skills add TriliumNext/Trilium --skill reviewing-pull-requests -a claude-code`. Or copy the skill folder (.claude/skills/reviewing-pull-requests in TriliumNext/Trilium) into .claude/skills/reviewing-pull-requests in your project. Claude Code loads it when a task matches its description.
Run `npx skills add TriliumNext/Trilium --skill reviewing-pull-requests -a codex`. Or copy the skill folder (.claude/skills/reviewing-pull-requests in TriliumNext/Trilium) into .agents/skills/reviewing-pull-requests 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 TriliumNext/Trilium --skill reviewing-pull-requests -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/reviewing-pull-requests, .gemini/skills/reviewing-pull-requests, .github/skills/reviewing-pull-requests and .opencode/skills/reviewing-pull-requests in your project.
Going by SKILL.md and its folder, Reviewing Pull Requests needs JavaScript for the scripts in its folder and the command-line tools its instructions call (node). Our summary lists: Node.js.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. 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.
Reviewing Pull Requests 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 4.9k tokens (SKILL.md is roughly 20k 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 12k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Reviewing Pull Requests: Finishing a Development Branch (obra/superpowers, 297k stars), PR Babysitter (openinterpreter/openinterpreter, 69k stars), Check PR (onyx-dot-app/onyx, 32k stars) and PR Design Doc (OpenHands/OpenHands, 90k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
TriliumNext (a GitHub organization) maintains it in TriliumNext/Trilium, which has 38,256 GitHub stars. The repository holds 22 skills in this directory. The repository was last updated on October 9, 2026.
Source: TriliumNext/Trilium on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.