Claude Code Plugins

Community-maintained marketplace

Feedback

getting-pr-review-comments

@karlmdavis/dotfiles
0
0

Use when needing Claude bot review recommendations from PR - automatically waits for workflows (including Claude review) to complete, then extracts recommendations and returns concise summary without loading full review into context

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name getting-pr-review-comments
description Use when needing Claude bot review recommendations from PR - automatically waits for workflows (including Claude review) to complete, then extracts recommendations and returns concise summary without loading full review into context

Getting PR Review Comments

Overview

Retrieve Claude Code review bot comments from a PR and extract actionable recommendations.

Core principle: Run in subagent to save context. Return only recommendations, not full comment.

Automatic dependency: This skill automatically waits for workflows (including Claude review) to complete before fetching comments.

CRITICAL: Scope Guardrails

This skill ONLY extracts and reports review recommendations. It NEVER fixes issues.

When you find review recommendations:

  • ✅ Extract the recommendations from the Claude bot comment
  • ✅ Format them as a numbered list with severity and location
  • ✅ Return the concise summary
  • ❌ DO NOT investigate the recommendations
  • ❌ DO NOT read the code files mentioned
  • ❌ DO NOT propose fixes
  • ❌ DO NOT make any code changes

Why: This skill runs in a subagent to save tokens. Addressing recommendations should happen in main context with user approval, not automatically in the subagent. Return the recommendations and let the caller decide what to do.

When to Use

Use when you need:

  • Claude bot's review recommendations for a PR
  • Code review feedback after workflows complete
  • Action items from automated review

When NOT to use:

  • Need human reviewer comments (different workflow)

Workflow

Step 0: Wait for Workflows to Complete (Automatic)

Before fetching review comments, ensure all workflows are complete (Claude review is a workflow job).

Skill location: ~/.claude/skills/awaiting-pr-workflows/SKILL.md

Read and execute the awaiting-pr-workflows skill's workflow to:

  • Check for unpushed commits
  • Verify PR exists and commit correlation
  • Wait for workflows to start (up to 30s)
  • Wait for workflows to complete (up to 20 minutes)

Once all workflows (including Claude Code Review) are complete, proceed to Step 1 below.

Step 1: Get PR Issue Comments (Not Review Comments)

Important: Claude bot posts general PR comments, not inline code review comments. Use the comments field from gh pr view, not gh api .../pulls/.../comments.

# Get PR comments (issue-level comments, not inline review comments)
gh pr view $PR_NUM --json comments \
  --jq '.comments[] | {author: .author.login, body: .body, createdAt: .createdAt}'

Step 2: Filter for Most Recent Claude Bot Comment

Critical: Only use the MOST RECENT comment from Claude bot. The bot may post multiple iterations during review - we only want the latest.

# Get only the most recent Claude bot comment
gh pr view $PR_NUM --json comments \
  --jq '.comments
    | map(select(.author.login == "claude"))
    | sort_by(.createdAt)
    | reverse
    | .[0]'

Common bot usernames to check:

  • claude (most common in this repo)
  • github-actions[bot]
  • claude-code-bot
  • anthropic-claude[bot]

Step 3: Extract Recommendations

Parse the comment body for:

  • Recommendation blocks - Usually markdown sections like "## Recommendations" or "### Suggestions"
  • File references - Format: file.ts:123 or file.ts#L123
  • Severity markers - "⚠️", "❌", "💡", or labels like "[HIGH]", "[MEDIUM]"

Return Format

Return to main context:

Claude Code Review Recommendations for PR #{number}:

1. **[Severity]** File:Line - Brief description
   - Detailed recommendation
   - Link to comment

2. **[Severity]** File:Line - Brief description
   - Detailed recommendation
   - Link to comment

[Total: N recommendations]
[Review comment URL: https://...]

Example Implementation

#!/bin/bash
# Run this in subagent

PR_NUM=$1

# Get only the most recent Claude bot comment
LATEST_COMMENT=$(gh pr view $PR_NUM --json comments \
  --jq '.comments
    | map(select(.author.login == "claude"))
    | sort_by(.createdAt)
    | reverse
    | .[0]')

# Extract the body from the most recent comment
COMMENT_BODY=$(echo "$LATEST_COMMENT" | jq -r '.body')

# Parse and extract recommendations from the body
# Look for sections like "## 🔴 Critical Issues", "## ⚠️ Warnings", etc.
# Format as numbered list with severity, location, and description
# (Actual parsing depends on Claude bot's comment format)

# Return concise summary (limit to key recommendations)

Common Mistakes

Returning all Claude bot comments instead of just the latest

  • Problem: Bot may post multiple review iterations; returning all creates confusion
  • Fix: Sort by createdAt, reverse, take .[0] to get only most recent

Loading full comment into main context

  • Problem: Claude reviews can be 10k+ tokens
  • Fix: Extract just the recommendations in subagent

Not waiting for review to complete

  • Problem: Review job may still be running
  • Fix: Use awaiting-pr-workflows first

Returning raw JSON/markdown

  • Problem: Hard to parse in main context
  • Fix: Format as numbered list with clear structure

Using inline review comments API instead of PR comments

  • Problem: gh api repos/.../pulls/.../comments returns inline code comments, not bot summaries
  • Fix: Use gh pr view --json comments for issue-level comments

Quick Reference

Task Command
List all PR comments gh pr view $PR --json comments
Get most recent Claude comment gh pr view $PR --json comments --jq '.comments | map(select(.author.login == "claude")) | sort_by(.createdAt) | reverse | .[0]'
Extract comment body jq -r '.body'
Parse recommendations Look for "## 🔴 Critical Issues", "## ⚠️ Warnings", "## 💡 Suggestions" sections

Use Subagents

CRITICAL: Always run in subagent.

Use Task tool with subagent_type='general-purpose'.
Give them this skill and the PR number.
They return just the recommendations.

Why: Saves 100k+ tokens by not loading full review into main context.