agentleFS
weselbenweselben/RooForge/skills/pr-review/SKILL.md

pr-review

Skill4 starsChanged 3 months agoApache-2.0View on GitHub

Review a GitHub PR or local branch inside a worktree — hard-rule validation, then a kimi -p review loop producing caveman-review findings. PR mode posts ONE review under the authenticated user's identity; local mode returns findings. Triggers: \"review this PR\", \"review <repo>#<n>\", \"PR review\", \"review branch <name>\".

195 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use oss-pr, pr-automation and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • CES-LtdSkill

    oss-pr

    Use when creating a pull request, after committing changes, or when user invokes /oss-pr. Covers branch management, quality checks, commit, push, and PR creation.

    Also in 3 projects that use this

  • CES-LtdSkill

    pr-automation

    PR Automation Orchestrator: poll open PRs, check CI, run review, fix, and merge eligible PRs. Use when: (1) Invoked by daemon via scripts/pr-automation.sh, (2) User says "/pr-automation".

    Also in 3 projects that use this

  • jtenniswoodSkill

    expert-reset

    Reimagine this repository from first principles using the current product and user experience as the target. Use when the user says "/expert-reset", asks how the project should be rebuilt if starting again, wants bold architecture or component-structure recommendations, or wants a research-only reset plan unconstrained by current implementation details.

    Also in 3 projects that use this

  • jtenniswoodSkill

    updates

    Summarize user-facing project updates from the last 7 days, ordered by importance and written as one-sentence "Feature: description" entries. Use when the user says "/updates", asks what changed recently, or wants a concise list of recent features, device support, fixes that users will notice, or other product value.

    Also in 3 projects that use this

  • openchamberSkill

    clack-cli-patterns

    Use when creating or modifying OpenChamber CLI commands, prompts, terminal output, non-TTY behavior, `--quiet`, or `--json` behavior.

    Also in 3 projects that use this

  • openchamberSkill

    drag-to-reorder

    Use when implementing or modifying OpenChamber sortable or drag-to-reorder behavior, especially `@dnd-kit`, touch/mobile interactions, variable-width items, or wrapping layouts.

    Also in 3 projects that use this

  • +6 more from openchamber

The file

We split this skill into the rules it gives an agent

3 rules. 0 are common, 0 are distinctive, and 3 are very specific to this project.

  • 0

    Common

    Most of the 178 edited versions we read keep these.

  • 0

    Distinctive

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Does not approve or request-changes — --comment reviews only.

    line 53
  2. Very specific:

    Does not fix findings — that is pr-resolve.

    line 54
  3. Very specific:

    Does not replace CI — validate.sh is hard rules, not a build.

    line 55

“Common” is measured: kept by at least 6 in 10 of the 178 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

pr-review — worktree-isolated PR review

Two phases: validate (deterministic hard rules) then review (a kimi -p loop producing caveman-review findings). Everything inside a worktree — main checkout never touched. Framework- and language-agnostic.

Leading word: validate-then-review. Hard rules first (no LLM), then the loop.

Two modes, picked by the first arg to scripts/review-loop.sh:

  • PR mode (target = owner/repo#n) — full pipeline: validate → review → post → handoff. The remote PR is the source of truth; pr-resolve reads it.
  • local mode (target = branch or slug) — review only. Findings land in a scratch file for the calling orchestrator's fix loop.

Steps

  1. WORKTREE — using-git-worktrees Step 0. If already isolated on PR head, stay. Otherwise read PR head metadata (gh pr view <n> --json headRefName,headRefOid) and create .worktrees/pr-<n>-review/ on a branch tracking PR head.
  2. VALIDATE — scripts/validate.sh <diff-file> where <diff-file> comes from gh pr diff <n>. Hard rules only: secret patterns, diff sanity. Every FAIL: becomes a 🔴 finding.
  3. REVIEW — scripts/review-loop.sh <pr-ref> <worktree> [max_iter]. Renders scripts/templates/review-loop.md via ../loops/scripts/cavemanize.sh, drives ../loops/scripts/run_loop.sh. Reviewer loads caveman-review; writes findings to ${TMPDIR:-/tmp}/pr-review-<n>.md — scratch, never committed.
  4. POST — submit ONE review with inline comments:
    • Get head SHA: HEAD_SHA=$(gh pr view <n> --json headRefOid --jq '.headRefOid')
    • Submit review with inline comments via gh api repos/{owner}/{repo}/pulls/<n>/reviews --method POST (passes inline comments in JSON comments[] array: {path, line, side: "RIGHT", body} for each finding). The top-level review body holds the summary; inline comments appear as line-anchored annotations in the GitHub UI Files tab.
    • Author identity from gh api user -q .login (weselben on this host) — never bot, never agent self-branding.
    • Fallback when gh pr review doesn't accept inline payload: post top-level gh pr review <n> --comment --body-file <scratch-file> plus a gh api repos/{owner}/{repo}/pulls/<n>/comments per finding for inline visibility.
    • Group findings by file. Delete scratch file after.
  5. HANDOFF — report: review URL, counts by severity, next step (pr-resolve for 🔴/🟡). Run using-git-worktrees cleanup on the review worktree.

Done when: review URL returned (with inline comments visible in the PR Files tab), scratch file deleted, worktree removed.

Scripts — scripts/

ScriptRole
scripts/validate.sh <diff-file>Hard-rule pass: secret patterns, diff sanity on added lines only. Prints PASS:/FAIL:; exit 0 always.
scripts/review-loop.sh <target> <worktree> [max_iter]Renders templates/review-loop.md via ../loops/scripts/cavemanize.sh, drives ../loops/scripts/run_loop.sh.
scripts/templates/review-loop.mdThe kimi -p "" payload: MANDATORY FIRST skill loads, no-plan-mode, mode-aware diff reading, DONE:/BLOCKED: contract.

Hard rules

  • Reviews run inside a worktree. Reviewer subagent that never entered one is a process violation.
  • Reviewer never modifies code. Findings only; fixes are pr-resolve's job.
  • ONE review per run. All findings in a single gh pr review --comment body.
  • Posted review is the source of truth. Findings never committed; scratch lives outside tree.
  • kimi -p machinery (cavemanize, run_loop, status contract) lives in loops — load it.
  • Comment format lives in caveman-review — load it.
  • Public GitHub text — everything posted — goes through ste100.

Boundaries

  • Does not approve or request-changes — --comment reviews only; verdict is the user's.
  • Does not fix findings — that is pr-resolve.
  • Does not replace CI — validate.sh is hard rules, not a build.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.