Agent skill

Review PR

by RLinf in RLinf/RLinf

Reviews a pull request from a PR URL by directly fetching the URL content (no gh dependency) and verifies compliance with CONTRIBUTING.md.

Apache-2.0Auto-check passedDevelopment

Install Review PR

skills CLI
$ npx skills add RLinf/RLinf --skill review-pr -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install RLinf/RLinf review-pr --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/RLinf/RLinf.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/review-pr .claude/skills/review-pr && rm -rf skills-src

Use ~/.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/

Facts

Skill name
review-pr
GitHub stars
5.5k
Token cost
~3k tokens
SKILL.md length
1,474 words
Files
2
Skills in repo
9
Repo updated
First seen
Licence
Apache-2.0

At a glance

Reviews a pull request from a PR URL by directly fetching the URL content (no gh dependency) and verifies compliance with CONTRIBUTING.md.

  • Works in 5 steps: Input: PR URL → Fetch PR data and the main branch → Review priorities → …
  • The user asks for a PR review
  • SKILL.md covers 1. Input: PR URL, 2. Fetch PR data and the main…, 3. Review priorities and 4. Explain the PR first, plus 1 more section
  • Calls git, hf and curl; reaches huggingface.co

What it does

Review PR is an agent skill from RLinf/RLinf. Reviews a pull request from a PR URL by directly fetching the URL content (no gh dependency) and verifies compliance with CONTRIBUTING.md. Use when the user asks for a PR review, to review changes before merge, or to check contribution guidelines.

Its SKILL.md is about 3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `reference.md`).

It sits in Development, covering Pull requests. It works with Git. The repository describes itself as: RLinf: Reinforcement Learning Infrastructure for Embodied and Agentic AI. The licence is Apache-2.0.

When your agent uses it

  • The user asks for a PR review
  • Review changes before merge
  • Check contribution guidelines

Example prompts

  • “Use the review-pr skill to review a pull request from a PR URL by directly fetching the URL content (no gh dependency) and verifies compliance with…”
  • “/review-pr”

Requirements

  • Python 3
  • Docker

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Input: PR URL
  2. Fetch PR data and the main branch
  3. Review priorities
  4. Explain the PR first
  5. Output format

What it can do on your machine

Read from SKILL.md and the folder at commit 0067f7d. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • hf
    • curl

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • huggingface.co

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Review PR loads about 3k tokens when it runs. Until then it costs about 65 tokens; SKILL.md has 1,474 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~65
When it runs · the whole SKILL.md, loaded when a task matches
~3k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from RLinf/RLinf at commit 0067f7d, republished under its Apache-2.0 licence (© RLinf). 1,474 words, ~2,986 tokens.

Download SKILL.mdSave it as .claude/skills/review-pr/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
review-pr
description
Reviews a pull request from a PR URL by directly fetching the URL content (no `gh` dependency) and verifies compliance with CONTRIBUTING.md. Use when the user asks for a PR review, to review changes before merge, or to check contribution guidelines.

Review PR (From PR URL)

Reviews the changes in a specific GitHub pull request. The primary focus is code correctness and design-pattern consistency with the existing codebase. PR formatting, commit conventions, and user-facing documentation are checked but should not dominate the review. See CONTRIBUTING.md for the contribution rules referenced below.

1. Input: PR URL

Require a PR URL (for example: https://github.com/RLinf/RLinf/pull/123).

2. Fetch PR data and the main branch

Fetch PR details directly from the URL:

  • Open/fetch the PR page itself for title, description, and metadata.
  • Fetch unified diff via URL forms:
    • <PR_URL>.diff (preferred)
    • <PR_URL>.patch (fallback)
  • If needed, fetch related pages directly from URL for comments/checks.

All cross-references must be against origin/main, not the local working tree. The current checkout may be on an unrelated branch or contain WIP changes; Glob/Grep over the working tree does not show the upstream state. Before any cross-reference lookup:

  • Run git fetch origin main to refresh.
  • Read files via git show origin/main:<path> (or browse https://github.com/RLinf/RLinf/blob/main/<path>).
  • Use git log origin/main..<pr-head> to scope what the PR actually adds.
  • Never treat Glob/Grep results over the working tree as "current state of the project" — they reflect whatever branch is checked out, not main.

If the PR page is private and URL fetch is blocked, report that access is unavailable and ask the user to provide exported diff/details.

3. Review priorities

Findings are ordered by severity. Categories are listed in priority order — most of the review should be on (a) and (b); (c)–(e) are checked but should not pad the output.

(a) Correctness, bugs, and edge cases — primary

For every changed function, branch, and config path, look for:

  • Logic bugs: off-by-one, inverted conditions, wrong operator/default, swapped args, mutated shared state, missing await/sync.
  • Edge cases: empty/None/NaN, single-element batches, zero-size tensors, world-size=1, first/last iter, eval-only paths, resume-from-checkpoint, multi-node vs single-node paths.
  • Concurrency / distributed: collectives that must run on every rank, device placement, non-deterministic ordering across workers, blocking calls in async paths, races on Ray actors / channels.
  • Resource & lifecycle: GPU memory leaks (uncleared tensors, missing enable_offload), file handles, Ray actor lifetime, missed cleanup on exceptions, double-init.
  • Numerical: dtype mismatches (fp16/bf16/fp32), in-place ops on grad-required tensors, unsafe casts, accumulator precision, loss-mask correctness.
  • Error handling: silent except, exceptions on hot paths, missing input validation at boundaries; conversely, over-validation of internally-trusted state.
  • Refactor regressions: read both the origin/main version and the new version side-by-side; partial refactors often change semantics by accident.

Cite file:line in the diff and the matching origin/main:file:line when relevant.

(b) Design and pattern consistency vs origin/main — primary

The PR must match how RLinf already does things. Mismatches are usually defects from writing in isolation, not style nits.

  • Find the closest sibling in origin/main — comparable model under rlinf/models/embodiment/, env under rlinf/envs/, runner under rlinf/runners/, worker under rlinf/workers/, advantage/loss/reward under rlinf/algorithms/. Compare structure, naming, registration, base-class usage, and config wiring.
  • Registry wiring: new advantage/loss/reward must use register_advantage / register_policy_loss / register_reward; new model/env must extend SupportedModel / SupportedEnvType and update get_env_cls() and validate_cfg. Flag ad-hoc bypasses.
  • Worker conventions: subclass Worker, implement initialize, use self.log_info / log_warning / log_error (not print or stdlib logging), launch via create_group(...).launch(...).
  • Base class / interface: embodied policies must inherit BasePolicy and implement the documented forwards (default_forward, predict_action_batch, plus algorithm-specific). Flag re-implementations of base behavior.
  • Config layout: new YAML must be copied from a sibling in examples/ and follow the same key hierarchy; no calculations or dynamic values in YAML; fields read-only in code.
  • Reuse vs duplication: if the change reimplements a helper that already exists in rlinf/utils/ (placement, checkpoint, distributed, data-iter, logging), point to the existing helper with file:line.
  • Simplicity: prefer the approach the codebase already uses; flag clumsy / over-engineered alternatives with a concrete simpler suggestion.
  • No hardcoded paths/hacks: machine-specific paths, sleep-based sync, monkey-patches → propose a config/env-driven version.
(c) Code ↔ docs consistency — required when code OR docs change

Both directions matter, and EN/ZH parity must be checked explicitly:

  • If this PR changes documentation, follow the docs-check skill to drive this review: it cross-checks docs against code and against each other (commands, config keys, paths, model/env names) and enforces EN↔ZH parity.
  • Docs → code: every config key, CLI flag, env var, file path, function/class name, and supported model/env name mentioned in changed docs must exist in origin/main + this PR. Verify with git show origin/main:rlinf/.... Stale references = finding.
  • Code → docs: when this PR adds, removes, or renames a public-facing config key, model, env, runner, script, env var, or supported feature, the corresponding doc page must be updated in the same PR. If missing, list the exact doc files (EN and ZH) that need edits.
  • Example-config model paths ↔ docs: for changed example configs under examples/embodiment/config/*.yaml, every model-weight path field (model_path, lora_path, backbone_model_path, wan_wm_hf_ckpt_path) must satisfy all three:
    1. Form: it is /path/to/<repo-name> where the trailing path component equals the repo in its # https://huggingface.co/<org>/<repo> comment (the docs convention is hf download <org>/<repo> --local-dir <repo>, so basename == repo name). Flag stale/placeholder basenames (RLinf-Pi0-SFT, model, openpi, …) and a missing leading slash.
    2. Exists: each distinct referenced repo resolves on Hugging Face — curl -sL -o /dev/null -w '%{http_code}' https://huggingface.co/api/models/<org>/<repo> returns 200 (use /api/datasets/ for datasets). Flag 401/404. Also flag redirecting names: if the API's returned id differs from the requested name, the repo was renamed — point at the canonical id (a 200 via redirect is still a stale reference).
    3. Matches the docs' per-variant model: the repo equals the one the corresponding env recipe page prescribes for that exact environment + task suite + model family — not just any existing repo. Cross-check the recipe doc's model table/download block (e.g. LIBERO spatial/object/goal + π₀ → RLinf-Pi0-LIBERO-Spatial-Object-Goal-SFT, LIBERO-10/Long + π₀ → RLinf-Pi0-LIBERO-Long-SFT, any LIBERO suite + π₀.₅ → RLinf-Pi05-LIBERO-SFT, GR00T N1.5 per-suite RLinf-Gr00t-SFT-{Spatial,Object,Goal,10}). Watch for base-vs-adapter mixups (model_path = full base model, lora_path = LoRA adapter) and casing drift vs the doc/canonical name. Intentional user-supplied placeholders (e.g. DAgger student_model/expert_model, "any pi05 checkpoint") are not findings — confirm against the recipe page before flagging.
  • EN ↔ ZH parity (do this explicitly, even when only one language was touched): paired pages under docs/source-en/ and docs/source-zh/ must agree on setup commands, paths, env vars, config keys, supported models/envs/algorithms, capability claims, reported numbers (metrics, table values, dataset sizes, trial counts), and section structure/order. If only one side is updated, name the matching file that also needs the change.
  • Sibling style: cross-check with sibling pages in the same area (e.g. opensora.rst) for section naming/order, code-block conventions, table/link style.
  • Each docs finding must include a concrete suggested wording / structure fix and exact file references.
Show full SKILL.md (423 more words)Show less
(d) Tests and CI integration
  • User-facing changes must have tests (unit or e2e). Reviewer must be able to validate reproducibility.
  • If this PR changes the install script (requirements/install.sh, requirements/embodied/, or docker/Dockerfile), follow the install-check skill to review the changes: reuse of common utilities, system deps kept in sys_deps.sh, pinned/forked git deps, no ad-hoc pyproject.toml/core-dep hacks, and a matching Dockerfile build stage for every new model/env.
  • Dependencies / CI: new env/model needs install-script update, Docker stage, and CI/e2e coverage — cross-check with the add-install-docker-ci-e2e skill.
  • New CI-relevant YAML must be referenced in the e2e test matrix.
  • Large/new dependencies (docker, models, datasets) → maintainer ping noted.
(e) Style, commit & PR metadata — secondary

Mention only if there are real issues; do not pad the review.

  • Google Python Style; passes pre-commit run --all-files.
  • Public classes/methods have Google-style docstrings; type hints on parameters; return type when not deducible.
  • Assertions/exceptions have meaningful messages (no empty or xxx != yyy restatements).
  • logging / self.log_* not print.
  • License header (newly-added files): every file added by this PR must carry the standard RLinf header (# Copyright <YEAR> The RLinf Authors.), and <YEAR> must equal the current calendar year. Determine the current year (e.g. date +%Y), list added files with git diff --name-status origin/main...<pr-head> (status A), and flag any new file whose header is missing or whose copyright year is not the current year. Files vendored from third parties keep their upstream copyright line — apply this only to the RLinf Authors header.
  • Every commit Signed-off-by; messages follow Conventional Commits <type>(<scope>): <description>.
  • PR title in Conventional Commits format; PR Description and Checklist sections filled; testing results if performance/stability is affected.

4. Explain the PR first

Before listing issues, start with a brief explanation of the PR:

  • What problem it tries to solve.
  • Main change categories (e.g., packaging, docs, CI, refactor).
  • Potential impact/risk areas.

Keep this concise (3-6 bullets), then move to findings.

5. Output format

  • Open with the PR URL and the brief explanation from section 4.
  • List findings, ordered by severity (highest first), as bullets:
    • Severity + Area/File: issue summary
    • Suggested fix: concrete action
    • Reference: file:line in the diff, plus origin/main:file:line when the finding came from a main-branch cross-check
  • The bulk of findings should be from categories (a) and (b). If you find none in those categories, say so explicitly — do not fabricate.
  • Group docs (c) findings together; tests/CI (d) together; style/PR-metadata (e) at the end.
  • Explicitly label findings discovered via main-branch cross-check (not only direct diff lines).
  • Do not include findings that simply restate that the PR description is well-formed; only flag problems.

For a concise checklist, see reference.md.

© RLinf, 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

Files

SKILL.md and 1 other file in .agents/skills/review-pr of RLinf/RLinf.

  • SKILL.md
  • reference.md

Open the folder on GitHubat commit 0067f7d

Compare with similar skills

Review PR 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.

Review PR compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Review PR this skillRLinf/RLinf5.5k—~3kAutomated safety check: PassApache-2.0
Finishing a Development Branchobra/superpowers297k5 repos~1.9kAutomated safety check: PassMIT
Contributor-First PR MergeHKUDS/OpenHarness16k1 repos~847Automated safety check: PassMIT
Open Code Review CLIalibaba/open-code-review45k—~3.1kAutomated safety check: PassApache-2.0
Create Pull Requestcline/cline70k1 repos~1.6kAutomated safety check: PassApache-2.0
Pull Request Title and Body Writeropeninterpreter/openinterpreter69k2 repos~1.1kAutomated safety check: PassApache-2.0

Similar skills

  • 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.

    297k GitHub starsUsed in 5 repos~1.9k tokens
    DevelopmentAuto-check passed
  • Merges external GitHub pull requests while keeping the original author credited, and fixes conflicts after the merge instead of rewriting the contribution.

    16k GitHub starsUsed in 1 repo~847 tokens
    DevelopmentAuto-check passed
  • Open Code Review CLI

    alibaba/open-code-review

    Runs the ocr command-line tool to review Git changes, a commit or a branch comparison with an AI model, returning line-level comments and optionally applying fixes.

    45k GitHub stars~3.1k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Opens a GitHub pull request from your current branch with the gh CLI, after reviewing the commits and diff and gathering the details the PR needs.

    70k GitHub starsUsed in 1 repo~1.6k tokens
    DevelopmentAuto-check passed
  • Pull Request Title and Body Writer

    openinterpreter/openinterpreter

    Rewrites the title and body of one or more pull requests with gh, leading with why the change was made, then what changed, and describing only the net result.

    69k GitHub starsUsed in 2 repos~1.1k tokens
    DevelopmentAuto-check passed
  • Understand Diff Analysis

    Egonex-AI/Understand-Anything

    Reads your git changes or a pull request against a prebuilt knowledge graph of the project to explain what changed, which components are affected and what is risky.

    86k GitHub stars~1.4k tokensUpdated yesterday
    DevelopmentAuto-check passed

More from RLinf/RLinf

All 9 skills in this repo
  • Adds example documentation for a new model or environment in RLinf (RST pages in the docs gallery for both English and Chinese).

    5.5k GitHub stars~1.9k tokensUpdated today
    Auto-check passed
  • Adds a new publication page to the RLinf Sphinx docs (EN + ZH) and wires it into the Publications index/toctree.

    5.5k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Create PR

    RLinf/RLinf

    Open a GitHub pull request for RLinf, or fix an existing one — checks the PR title against Conventional Commits, writes a precise description that follows .github/PULLREQUESTTEMPLATE.md, and lints…

    5.5k GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Docs Check

    RLinf/RLinf

    Cross-check RLinf documentation against code, natural explanation flow, and other docs, including English-Chinese parity.

    5.5k GitHub stars~2.1k tokensUpdated today
    Auto-check passed
  • Install Check

    RLinf/RLinf

    Check, fix, or extend requirements/install.sh and its docker/Dockerfile coverage when adding a new embodied model or environment in RLinf, so the install logic reuses common utilities, keeps system…

    5.5k GitHub stars~2.3k tokensUpdated today
    Auto-check passed
  • Test Install

    RLinf/RLinf

    Test that requirements/install.sh works for an embodied model/env by building its venv and running the matching CI e2e test.

    5.5k GitHub stars~2.3k tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about Review PR

What does Review PR do?

Reviews a pull request from a PR URL by directly fetching the URL content (no gh dependency) and verifies compliance with CONTRIBUTING.md. Review PR is an agent skill from RLinf/RLinf.md.

When should I use Review PR?

Review PR fits situations like: the user asks for a PR review; review changes before merge; check contribution guidelines.

How do I install Review PR in Claude Code?

Run `npx skills add RLinf/RLinf --skill review-pr -a claude-code`. Or copy the skill folder (.agents/skills/review-pr in RLinf/RLinf) into .claude/skills/review-pr in your project. Claude Code loads it when a task matches its description.

How do I install Review PR in Codex?

Run `npx skills add RLinf/RLinf --skill review-pr -a codex`. Or copy the skill folder (.agents/skills/review-pr in RLinf/RLinf) into .agents/skills/review-pr in your project. Codex loads it when a task matches its description.

Can I use Review PR in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add RLinf/RLinf --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.

What does Review PR need to run?

Going by SKILL.md and its folder, Review PR needs the command-line tools its instructions call (git, hf and curl). Our summary lists: Python 3; Docker.

Does Review PR access the network?

SKILL.md names 1 domain. In commands or code: huggingface.co; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Review PR safe to install?

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.

What licence does Review PR use?

Review PR 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.

How many tokens does Review PR use?

About 3k 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.

What are the alternatives to Review PR?

Skills that share tags, products or a category with Review PR: Finishing a Development Branch (obra/superpowers, 297k stars), Contributor-First PR Merge (HKUDS/OpenHarness, 16k stars), Open Code Review CLI (alibaba/open-code-review, 45k stars) and Create Pull Request (cline/cline, 70k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Review PR?

RLinf (a GitHub organization) maintains it in RLinf/RLinf, which has 5,465 GitHub stars. The repository holds 9 skills in this directory. The repository was last updated on October 9, 2026.

Source: RLinf/RLinf on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.