Skip to main content

update-pr-review

Given fresh review findings (from a prior review skill) and a PR number, fetch previous Claude inline comments, cross-reference findings, and update the PR in a thread-aware way. Resolves addressed issues, replies to active threads, and posts only genuinely new findings as new inline comments. Never posts the same issue twice.

Zur Installation springen

Quellinformationen

Repository
ROCm/repo-digest
Letzte Quellaktivität
23. März 2026 um 13:24
Erkannte Sprache von SKILL.md
Englisch
Sterne
6
Forks
0

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
update-pr-review
description
Given fresh review findings (from a prior review skill) and a PR number, fetch previous Claude inline comments, cross-reference findings, and update the PR in a thread-aware way. Resolves addressed issues, replies to active threads, and posts only genuinely new findings as new inline comments. Never posts the same issue twice.
argument-hint
["PR-number"]
context
fork
agent
general-purpose
allowed-tools
mcp__github_inline_comment__list_inline_comments, Bash(gh *), Bash(jq *), Bash(grep *), Bash(head *), Read, Grep, Glob
# Update PR Review You are the second phase of a two-phase PR review pipeline. The first phase (a review skill) already produced a fresh list of findings from the diff. Your job is to reconcile those findings with the existing inline comment threads on the PR and take the right action for each one. **Hard rule**: Never post the same finding as a new inline comment if it was already flagged in a previous Claude review. Each issue must appear at most once as an inline comment. --- ## Step 1 — Parse Inputs - `$ARGUMENTS` is the PR number. - The fresh review findings are in the conversation context above (output from the prior skill). Extract each finding: file path, relevant line, and a concise description of the issue. --- ## Step 2 — Fetch Previous Inline Review Comments Use `mcp__github_inline_comment__list_inline_comments` (no filters) to fetch all inline comments on the PR. From the result, build the following picture: **Claude root comments** — entries where all of these are true: - `user.login == "claude[bot]"` - `in_reply_to_id` is null (i.e. they are thread roots, not replies) These represent issues flagged in previous Claude reviews. **Thread replies** — entries where `in_reply_to_id` is non-null. Group replies under the root comment they belong to (follow `in_reply_to_id` chains to the root). **Human replies to Claude** — within a Claude-rooted thread, any reply where `user.login != "claude[bot]"`. These are the developer's responses. For each Claude root comment, record: - `id` — used for reactions and replies - `path` — file path - `line` — line number (may have shifted due to rebasing) - `body` — the text of the finding - `human_replies` — list of `{id, body}` for any human replies in the thread, ordered by `id` ascending (GitHub returns comments in creation order; IDs are monotonically increasing, so the last element is always the most recent reply) --- ## Step 3 — Cross-Reference Findings For each finding from the fresh review, check if it matches a previous Claude root comment: **Matching criteria** (use both together): 1. Same `path` (exact file path match) 2. Same logical issue — compare the finding description to the Claude comment body semantically. Line numbers may have shifted due to rebasing; do not require an exact line match. Then determine which scenario applies and act accordingly: --- ### Scenario A — Issue is addressed in the new diff AND the developer replied The flagged code no longer exists or the problem is corrected in the new diff, and there is at least one human reply in the thread (e.g. "Done", "Fixed", "Implemented"). ```bash # 1. React 👍 on the most recent human reply (last element of human_replies — highest id) gh api "repos/$REPO/pulls/comments/$HUMAN_REPLY_ID/reactions" \ -X POST -f content="+1" # 2. Post a "Resolved" reply on Claude's original comment to close the thread gh api "repos/$REPO/pulls/$ARGUMENTS/comments/$CLAUDE_COMMENT_ID/replies" \ -X POST -f body="Resolved ✓ — addressed in this revision." ``` Do NOT create a new inline comment for this finding. --- ### Scenario B — Issue is addressed in the new diff, no developer reply The problem is fixed in the new diff, but the developer did not reply to Claude's comment. ```bash # Post a "Resolved" reply on Claude's original comment gh api "repos/$REPO/pulls/$ARGUMENTS/comments/$CLAUDE_COMMENT_ID/replies" \ -X POST -f body="Resolved ✓ — addressed in this revision." ``` Do NOT create a new inline comment for this finding. --- ### Scenario C — Issue is NOT fixed AND the developer replied The flagged code still has the problem in the new diff, and the developer replied in the thread. ```bash # Reply to the thread with a clarification explaining the issue is still present gh api "repos/$REPO/pulls/$ARGUMENTS/comments/$CLAUDE_COMMENT_ID/replies" \ -X POST -f body="<concise explanation of why the issue is still present and what needs to change>" ``` Do NOT create a new inline comment for this finding. --- ### Scenario D — Issue is NOT fixed AND the developer did not reply The problem remains and no one replied to Claude's original comment. **Do nothing. Skip silently.** Do NOT create a new inline comment for this finding. --- ### Scenario E — Genuinely new finding (no previous Claude comment matches) This issue was not flagged in any prior review. Return this finding to the caller so it can be posted as a new inline comment via the MCP tool. Include: `path`, `line`, and the full finding description. --- ## Step 4 — Output Return a structured list of actions taken and genuinely new findings: ``` ## Thread Updates - [path:line] <what was done> (Scenario A/B/C/D) ... ## New Findings (post as inline comments) - [path:line] <finding description> ... ``` The caller (workflow) will use `mcp__github_inline_comment__create_inline_comment` to post the new findings as inline comments on the PR diff.
Auf GitHub ansehen