一键导入
pr-review
{{ 𝛀𝛀𝛀 }} Review a pull request
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
{{ 𝛀𝛀𝛀 }} Review a pull request
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
{{ 𝚫𝚫𝚫 }} Rebuild roadmap-system.zip, the distributable snapshot of the roadmap tooling (scripts, HTML template, conventions reference, and every roadmap-touching skill, including this one).
{{ 𝛀𝛀𝛀 }} Create a project roadmap in the rich phase-array format — roadmaps.json as source of truth plus a PHASE task list and prose overview
{{ 𝛀𝛀𝛀 }} Recompute and synchronise roadmap task statuses across roadmaps.json and its projections, with optional codebase reconciliation
{{ 𝛀𝛀𝛀 }} Add a task to a rich-format project roadmap with correct ID, dependency wiring, and graph integrity — ID assignment, status computation, dependency edges in both directions, and no unconnected islands.
Git workflow: branch management, commit conventions, PR patterns, conflict resolution.
{{ 𝛀𝛀𝛀 }} Review a pull request and post it as a GitHub review
| name | PR: Review |
| description | {{ 𝛀𝛀𝛀 }} Review a pull request |
| when_to_use | When you want a read-only review of a PR's diff printed to the conversation — for a posted GitHub review use pr-review-comment, which calls this skill internally. |
| model | opus |
| disable-model-invocation | false |
| allowed-tools | ["Bash(git:*)","Bash(gh:*)","Read","Glob","Grep"] |
| disallowed-tools | ["Edit","Write","NotebookEdit"] |
| argument-hint | ["PR number/url"] |
Canonical review methodology. Produces structured findings only; never posts to GitHub. pr-review-comment loads this skill and handles posting — keep all methodology here to avoid divergence.
<pull-request-review>
<task>Review the pull request identified by `$ARGUMENTS` and produce structured findings. Do not post anything to GitHub.</task>
<steps>
<step num="1">Run `gh pr view $ARGUMENTS` to get PR title, description, and metadata</step>
<step num="2">Run `gh pr diff $ARGUMENTS` to get the full diff — always PR vs `origin/main`, regardless of the local branch checked out</step>
<step num="3">Research project conventions stored in `CLAUDE.md`, `.claude/**/*` and `docs/*`. Before critiquing implementation, check whether the dev is following established project practice</step>
<step num="4">Classify every finding by <taxonomy/> type and by scope (line / file / cross-file)</step>
<step num="5">Where a line-scoped 🔴/🟠/🟡 finding has a concrete fix, write it as a committable ```suggestion block per <suggestions/></step>
<step num="6">Write every comment body **and the `summary`** (including the follow-up delta, when in that mode) per the writing-style skill's anti-slop rules (no em dashes, no contrastive couplets, no parade-of-examples, lead with specifics). This isn't just style guidance here — when this skill's output feeds `pr-review-comment`, its `partition-findings.mjs` hard-fails the post on any em-dash/en-dash in the summary or a comment body. Get it right here, upstream, rather than relying on that gate to catch it</step>
<step num="7">Emit findings using <output/>. This is the full deliverable — stop here, nothing gets posted</step>
</steps>
<foci>
<focus>Correctness — will this break anything?</focus>
<focus>Security — any obvious vulnerabilities?</focus>
<focus>Glaring convention violations</focus>
<focus>Reinforcement — genuine strengths worth calling out, not token praise</focus>
</foci>
<taxonomy>
<!-- Replaces any older 🟣/🔴/🟡/🔵 four-colour key. This is the only taxonomy. -->
<row emoji="🔴" type="major changes" ceiling="Request Changes">Blocking — must fix before merge</row>
<row emoji="🟠" type="minor changes" ceiling="Comment">Should fix, won't block. Same ceiling and treatment as nits</row>
<row emoji="🟡" type="nits" ceiling="Comment">Nice to have</row>
<row emoji="🟣" type="admiration" ceiling="Approve">Accolade — only when genuinely warranted</row>
</taxonomy>
<matrix>
<!-- Type x Scope -> where the comment anchors + suggestion eligibility -->
<row type="major/minor changes, nits" scope="line" anchor="line highlight (inline diff comment)" suggestion="yes, if a concrete fix exists" />
<row type="major/minor changes, nits" scope="file" anchor="file-level comment" suggestion="no" />
<row type="major/minor changes, nits" scope="cross-file" anchor="top-level review comment" suggestion="no" />
<row type="admiration" scope="line" anchor="file-level comment — admiration never uses a line highlight, even when the praise is line-scoped" suggestion="no" />
<row type="admiration" scope="file" anchor="file-level comment" suggestion="no" />
<row type="admiration" scope="cross-file" anchor="top-level review comment" suggestion="no" />
</matrix>
<suggestions>
<guide>Emit a ```suggestion block only for line-scoped 🔴/🟠/🟡 findings with a concrete, single-location fix.</guide>
<guide>Skip suggestions where the fix spans multiple non-contiguous lines, requires judgement calls, or isn't safely committable as-is.</guide>
<guide>Never emit suggestions for admiration — there's nothing to commit.</guide>
</suggestions>
<verdict>
<guide>Derive one overall verdict from the highest ceiling present across all findings (highest-ceiling-wins):</guide>
<rule>Any 🔴 present → Request Changes</rule>
<rule>Else any 🟠 or 🟡 present → Comment</rule>
<rule>Else only 🟣 present (or no findings) → Approve</rule>
</verdict>
<guides>
<guide>Keep it concise. Flag only the most important issues — skip minor style nits unless they're genuinely worth a 🟡.</guide>
<guide>Before critiquing implementation, check whether the dev is following established project practice.</guide>
<guide>Omit any type that has no entries. Only include 🟣 findings if there's something genuinely worth praising — token praise is worse than none.</guide>
</guides>
<output type="structured">
For each finding:
- `type`: 🔴 | 🟠 | 🟡 | 🟣
- `scope`: line | file | cross-file
- `file`: path (omit for cross-file)
- `line` or `range`: omit for file/cross-file scope
- `body`: the comment text (writing-style rules applied)
- `suggestion`: optional ```suggestion block (line-scoped changes/nits only)
Plus:
- `summary`: overall review body (top-level comment content). When run in follow-up mode (see `pr-review-comment`'s `<follow-up-mode/>`), the leading "Since my last review" delta uses only ⚪ fixed / ⚫ still open / 🟢 new — never 🆕 (renders as a GitHub `:new:` badge) or ✅/⚠️ (superseded, off-palette)
- `verdict`: Request Changes | Comment | Approve, derived per <verdict/>
</output>
</pull-request-review>