agentsclimarketplace

Review pr

Skill Ryan-M-Frank/volley/skills/review-pr

Use to send a GitHub PR's diff to Codex for review via MCP. Required argument is the PR number. Output written to .volley/PR-REVIEW-<num>.md and shown inline. Asks for explicit user opt-in before posting as a PR comment.From its SKILL.md

Install
npx -y skills add Ryan-M-Frank/volley --skill review-pr

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

3.3 KB, as published. Nobody here has run it

/volley:review-pr

Codex reviews a PR. You decide whether to post the review as a comment.

Steps for Claude

  1. Validate input. PR number is required. If missing, tell user "Pass a PR number, e.g. /volley:review-pr 123" and stop.

  2. Verify .volley/ is initialized and the lock allows Claude to act.

    [ -d .volley ] || { echo "ERROR: .volley/ not found. Run /volley:setup first." >&2; exit 1; }
    [ -f .volley/STATE ] || { echo "ERROR: .volley/STATE not found. Run /volley:setup first." >&2; exit 1; }
    . "${CLAUDE_PLUGIN_ROOT}/scripts/lib.sh"
    volley_state_assert_active .volley/STATE claude || exit 1
    
  3. Fetch PR metadata and diff via gh. Write into .volley/ (transient, gitignored, no /tmp/ collision risk):

    PR_NUM=<n>
    gh pr view "$PR_NUM" --json title,body,baseRefName,headRefName > ".volley/pr-${PR_NUM}-meta.json"
    gh pr diff "$PR_NUM" > ".volley/pr-${PR_NUM}-diff.patch"
    

    If gh is not authenticated or PR doesn't exist, surface the error and stop.

  4. Build the review prompt for Codex.

    You are reviewing a GitHub pull request. Be specific. Cite file paths
    and line numbers from the diff.
    
    PR TITLE: <title>
    PR DESCRIPTION:
    <body>
    
    DIFF:
    <full diff content>
    
    Provide your review in this format:
    
    ## Verdict
    APPROVE | REQUEST_CHANGES | COMMENT
    
    ## Summary
    (2-3 sentences on what this PR does)
    
    ## Issues
    - (file:line — issue description)
    
    ## Nits
    - (file:line — minor suggestions)
    
    ## Suggestions for follow-up
    - (out-of-scope improvements not blocking this PR)
    
    Keep it under 800 words.
    
  5. Invoke Codex via MCP. Same tool and rules as /volley:review-plan step 6: resolve codex.review.model/reasoningEffort from .volley/config.json (+ local.json overrides); pass sandbox: "read-only", approval-policy: "never", cwd: <canonical git root>, and model/config.model_reasoning_effort when not inherit. Persist the returned threadId to .volley/local.json under roles.prReview; use mcp__codex__codex-reply only for follow-ups within this exchange. Across a restart, rehydrate from files rather than reusing the id over MCP. Surface an unavailable-model/bad-effort error verbatim - never silently substitute. Handle MCP-unreachable errors the same way (restart + re-run /volley:setup).

  6. Write to .volley/PR-REVIEW-<num>.md.

    # Codex PR Review
    
    **PR:** #<num> — <title>
    **Reviewed:** <ISO timestamp>
    
    ---
    
    <Codex's response verbatim>
    
  7. Surface the review inline.

  8. Ask user about posting as PR comment. Output:

    "Post this review as a comment on PR #<num>? (y/n)"

    If y (and ONLY if y - never auto-post):

    gh pr comment "$PR_NUM" --body-file ".volley/PR-REVIEW-${PR_NUM}.md"
    
  9. Print the next-step block.

    • If verdict is APPROVE and user is the PR author: volley_next_step "merge the PR" "Codex approved; merge when CI is green."
    • Otherwise: volley_next_step_done "Review complete. Address any issues in follow-up commits if applicable."

Keep looking

Skills are one crate of 627,801. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.