一键导入
review-pr
Review a pull/merge request by fetching PR details, checking CI, and running verification skills on the changes
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Review a pull/merge request by fetching PR details, checking CI, and running verification skills on the changes
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Manual E2E tester that starts the app and exercises new features end-to-end
Generate a single self-contained HTML page that is genuinely visual AND interactive — charts, diagrams, motion, tabs, comparison toggles, click-to-expand, base64-inlined images, opinionated typography. Use whenever the user wants ANY rich visual artifact from arbitrary content: explainer, research write-up, PRD or spec page, pitch, internal one-pager, "make this less boring" rebuild, scroll-snap deck, landing-style summary, distilled report. Trigger phrasings: "make me a page about X", "turn this PDF/doc into something visual", "build me a deck/talk/pitch", "explain Y in a visual way", "make this readable", "give it some eye candy", "I want something I can show the team", "less boring version of this", "rebuild that page", "redo it with more visuals". Output is one .html file that renders identically when DM'd — CDN libraries (Tailwind, Chart.js, D3, GSAP, Mermaid, Lucide) load from stable jsdelivr/unpkg URLs; every image is base64-inlined. Not for plain Markdown docs (use technical-writer), not for code revi
Vision-based visual QA reviewer — captures rendered output (live web pages, static HTML artifacts, PDFs) as screenshots, inspects them with a designer's eye for layout defects a human catches instantly, and normalizes findings into the verify pipeline format
Independent second-opinion reviewer that shells out to the local Codex CLI for a broad code review, then normalizes findings into the verify pipeline format
Comment-hygiene-only reviewer — flags ephemeral review-ID references, historical change-narration, stale comments, reviewer-appeasement, and redundant restating in the scoped diff, and normalizes findings into the verify pipeline format
Adversarial cooperation loop — player implements, /verify reviews, creates PR, passes CI
| name | review-pr |
| description | Review a pull/merge request by fetching PR details, checking CI, and running verification skills on the changes |
| argument-hint | <PR URL, e.g. https://github.com/org/repo/pull/123> |
| disable-model-invocation | true |
| allowed-tools | ["Read","Bash","Grep","Glob","Skill","AskUserQuestion"] |
Review an external pull request (GitHub) or merge request (GitLab) by fetching its details, checking CI status, and running verification skills on the changed code. Produces a combined report. This is a read-only operation — never push, comment on the PR, or modify code.
Required: $ARGUMENTS — a PR/MR URL.
Supported formats:
https://github.com/{owner}/{repo}/pull/{number}https://gitlab.com/{owner}/{repo}/-/merge_requests/{number}Options:
--with-ux: Also run ux-reviewer and exerciser (skipped by default)If no URL provided, show:
Usage: /review-pr <PR URL>
Example: /review-pr https://github.com/acme/api/pull/42
Extract from the URL:
github.com → GitHub, gitlab.com (or other) → GitLabacme/api42If the URL doesn't match either pattern, error with usage example.
This command MUST be run from within the correct repository clone.
# Confirm we're in a git repo
git rev-parse --git-dir
# Get local remote URL
REMOTE_URL=$(git remote get-url origin)
Extract owner/repo from REMOTE_URL (handle both SSH and HTTPS formats):
https://github.com/acme/api.git → acme/apigit@github.com:acme/api.git → acme/apiCompare with the owner/repo from the PR URL (case-insensitive, strip .git suffix).
If they don't match, stop immediately with:
ERROR: Wrong repository.
This PR belongs to: {pr-owner}/{pr-repo}
You are currently in: {local-owner}/{local-repo}
To review this PR, first navigate to your local clone of {pr-owner}/{pr-repo}, then run:
/review-pr {original URL}
GitHub:
which gh && gh auth status
GitLab:
which glab && glab auth status
If the CLI is not installed or not authenticated, error with installation/auth instructions and stop.
GitHub:
gh pr view {number} --json title,body,author,baseRefName,headRefName,state,labels,additions,deletions,changedFiles,url
GitLab:
glab mr view {number}
Display a brief PR summary to the user before proceeding.
GitHub:
gh pr checkout {number}
GitLab:
glab mr checkout {number}
This ensures all code is available locally for verification skills.
GitHub:
# File list (scope for agents)
gh pr diff {number} --name-only
# Full diff (for scope line ranges)
gh pr diff {number}
GitLab:
glab mr diff {number}
Parse the diff to build a scope list with file paths and changed line ranges.
GitHub:
gh pr checks {number}
GitLab:
glab ci status
Record the status of each check/job (pass/fail/pending/running). Do NOT wait for pending checks — report current state.
Invoke skills in parallel using the Skill tool. Each skill prompt MUST include the PR scope context.
Skills to invoke:
reviewer — Comprehensive review scoped to PR diff (design, architecture, coherence, hardening, security)tester — Run test suite with scope awarenessIf --with-ux flag is present, also invoke:
ux-reviewer — UX review of changed surfacesexerciser — Manual E2E testingScope context template for each skill prompt:
VERIFICATION SCOPE (PR #{number}: {title}):
Files in scope:
- {file1} (modified, lines X-Y, A-B)
- {file2} (added, entire file)
- {file3} (deleted)
CRITICAL SCOPE CONSTRAINTS:
- ONLY flag issues in code that was ADDED or MODIFIED in the PR diff
- DO NOT flag issues in surrounding context or old code unless it blocks the new changes
- DO NOT flag issues in files not listed in scope
- Focus exclusively on the quality of the NEW or CHANGED code
Exception: You MAY flag issues in old code IF:
1. The new changes directly interact with or depend on that old code
2. The old code issue causes the new code to be incorrect
3. The old code issue creates a blocker for the new functionality
[Skill-specific instructions follow...]
Use the same agent invocation patterns as /verify — see skills/verify/SKILL.md for the detailed prompt templates per agent.
Combine all information into a single report:
# PR Review Report
## PR Overview
| Field | Value |
|-------|-------|
| Title | {title} |
| Author | {author} |
| Branch | {head} → {base} |
| Changes | +{additions} / -{deletions} across {changedFiles} files |
| URL | {url} |
**Description:** {first ~200 chars of body, or "No description provided"}
---
## CI Status
| Check | Status | Details |
|-------|--------|---------|
| {check1} | PASS/FAIL/PENDING | {duration or error} |
| {check2} | PASS/FAIL/PENDING | {duration or error} |
**Overall:** {N} passed, {N} failed, {N} pending
---
## Agent Results Summary
| Skill | Status | Notes |
|-------|--------|-------|
| tester | X passed, Y failed | [brief note] |
| reviewer | Completed | Found N items (design, arch, coherence, hardening, security) |
| ux-reviewer | Completed / Skipped | [if --with-ux] |
| exerciser | PASSED / FAILED / Skipped | [if --with-ux] |
---
## Issues Found
[Deduplicated issues from all agents, sorted by severity descending]
| ID | Sev | Title | Sources | Location | Description |
|----|-----|-------|---------|----------|-------------|
| RI-1 | 9 | [Title] | tester, reviewer | file:line | [Combined description] |
| RI-2 | 7 | [Title] | security | file:line | [Description] |
*Severity: 9-10 Critical | 7-8 High | 5-6 Moderate | 3-4 Low | 1-2 Trivial*
**Total: N issues from M skill findings (deduplicated)**
---
## Verdict
[One-paragraph overall assessment: is this PR ready to merge, or what needs attention?]
Issue IDs use RI-{n} prefix (Review Issue) to distinguish from /verify's VI-{n} prefix.
Present the full report to the user, then STOP.
Do NOT:
The user decides what to do next.
Same approach as /verify: