Skip to content
Code Review
Skill

/addressing-pr-review-comments

Address all valid review comments on a PR for the current branch in the streamlit/streamlit repo. Covers both inline review comments and general PR (issue) comments. Use when a PR has reviewer feedback to address, including code changes, style fixes, and documentation updates.

From plugin
streamlit
46k19 skills4 agents4 commands
Install
$ npx -y skills add streamlit/streamlit --skill addressing-pr-review-comments --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/addressing-pr-review-comments

Context preview

The summary Claude sees to decide when to auto-load this skill.

Address all valid review comments on a PR for the current branch in the streamlit/streamlit repo. Covers both inline review comments and general PR (issue) comments. Use when a PR has reviewer feedback to address, including code changes, style fixes, and documentation updates.

SKILL.md

addressing-pr-review-comments.SKILL.md
name: addressing-pr-review-comments
description: Address all valid review comments on a PR for the current branch in the streamlit/streamlit repo. Covers both inline review comments and general PR (issue) comments. Use when a PR has reviewer feedback to address, including code changes, style fixes, and documentation updates.

Address PR Comments

Address actionable review comments on the PR for the current branch using `gh` CLI.

Workflow checklist

Copy and track progress:

- [ ] 1. Verify auth: gh auth status
- [ ] 2. Fetch PR data and comments
- [ ] 3. Analyze and categorize comments
- [ ] 4. Present options to user
- [ ] 5. Apply selected fixes
- [ ] 6. Show summary, next steps, and offer to post replies

1. Verify authentication

gh auth status

If auth fails, prompt user to run `gh auth login`.

2. Fetch PR data

You must fetch both inline review comments and general PR (issue) comments. Use both when building the list of feedback to address. General comments have no file or line. Treat them as PR-level feedback.

# PR details for current branch (extract PR number from here)
gh pr view --json number,title,url,state,author,headRefName,baseRefName,reviewDecision,reviews,comments

# Inline review comments with file/line info (--paginate fetches all pages)
gh api --paginate repos/streamlit/streamlit/pulls/{PR_NUMBER}/comments

# General PR discussion comments (--paginate fetches all pages)
gh api --paginate repos/streamlit/streamlit/issues/{PR_NUMBER}/comments

Get unresolved review threads via GraphQL (inline only; used for file/path/line). The query returns the first comment of each thread for display when listing threads; full comment bodies are already fetched via the REST `pulls/{PR_NUMBER}/comments` and `issues/{PR_NUMBER}/comments` APIs above. Note: `reviewThreads(first: 100)` returns at most 100 threads; for PRs with more unresolved threads, use cursor-based pagination (`pageInfo.hasNextPage` / `endCursor`) or rely on the REST comments list.

gh api graphql -f query="
{
  repository(owner: \"streamlit\", name: \"streamlit\") {
    pullRequest(number: {PR_NUMBER}) {
      reviewThreads(first: 100) {
        nodes {
          id
          isResolved
          path
          line
          comments(first: 1) {
            nodes { author { login } body }
          }
        }
      }
    }
  }
}" --jq '[.data.repository.pullRequest.reviewThreads.nodes[] | select(.isResolved == false)]'

Issue comments (from `issues/{PR_NUMBER}/comments`) do not have a "resolved" flag. Consider all issue comments when building the actionable list, including the PR author's. Author comments can add useful context.

**Tip:** Save outputs for later reference if the data falls out of context: `work-tmp/reviews/pr-{PR_NUMBER}-review-threads.json` for inline threads, and `work-tmp/reviews/pr-{PR_NUMBER}-issue-comments.json` for general PR comments.

3. Analyze comments

**Include:** Unresolved threads (inline), general PR comments from `issues/{PR}/comments`, `issue`/`todo`/`chore` comments, maintainer feedback, `CHANGES_REQUESTED` reviews. Include the PR author's comments when present. They can help clarify the problem space.

**Exclude:** Resolved threads, `praise`/`thought`/`note` comments (unless the caller explicitly requests responding to ALL comments, in which case acknowledge these with a brief reply)

**Skip status-only automated comments.** Ignore comments that are only status or check notifications with no actionable feedback. Examples: Snyk ("Snyk checks have passed. No issues have been found so far.") and comments from `.github/workflows/pr-preview.yml` that only say the PR is building or the preview is ready.

**Include substantive bot feedback.** Include automated comments that contain actual review feedback. For example, AI review comments from the `github-actions` bot. Treat them like other review comments and validate before acting. Bot suggestions can be false positives.

**General PR comments:** Analyze general PR comments (from `issues/{PR}/comments`) the same way as inline comments. Same include/exclude rules and conventional-comment types (`issue` / `todo` / `chore` / `suggestion` / etc.).

**Critical analysis:** Before categorizing a comment or suggesting a response, thoroughly investigate the code and context:

  • **Read the code:** Carefully read the relevant code sections mentioned in the comment, including surrounding logic.
  • **Challenge assumptions:** Do not take the reviewer's comment or the original code's correctness for granted. Question both.
  • **Seek the truth:** Determine the most correct outcome—whether that means siding with the reviewer, defending the code, or proposing a new solution.
  • **Verify bot comments:** Bot suggestions may be false positives. Always validate the issue exists before acting.
  • **General comments without file/line:** If a comment does not reference a file or line, infer scope from the text (e.g. "add a test" points to a test file, "update the doc" to docs). If scope is unclear, list possible locations when presenting options.

**Action types** (per [conventional comments](https://conventionalcomments.org)): `issue` / `todo` / `chore` (must fix) · `suggestion` (consider) · `nitpick` (optional) · `question` (clarify) · `praise` / `thought` / `note` (skip)

4. Present options

The list below combines actionable inline comments and general PR comments. For general comments use "(general)" or "PR-level" instead of `{file_path}:{line}`.

Found {N} actionable comments ({X} inline, {Y} general) on PR #{NUMBER}: {TITLE}
Review Decision: {APPROVED|CHANGES_REQUESTED|REVIEW_REQUIRED}

Actionable Items:
─────────────────────────────────────────────────────────

1. [issue] {file_path}:{line}
   @{reviewer}: "{comment text}"
   Action: {what will be done}

2. [todo] (general)
   @{reviewer}: "{comment text}"
   Action: {what will be done}

3. [chore] (general)
   @{reviewer}: "{comme
Read more
Ships withstreamlit

A faster way to build and share data apps.

Get the whole plugin

Other skills on streamlit.