Skip to content
Agentmart
Submit a tool

address-pr-comments

Use to iteratively address unresolved review comments on the current PR.

Skill by jsiovn

IndexedMIT★ 2
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/jsiovn-address-pr-comments

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Use to iteratively address unresolved review comments on the current PR. Fetches unresolved inline threads AND non-inline conversation comments, dispatches the pr-comment-fixer subagent to apply fixes, then verifies, commits, pushes, and posts replies. The reviewer resolves threads on their side; rerun the skill when new comments arrive.

Use cases: agent-building

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/address-pr-comments

What's inside

Skill name
address-pr-comments
Description
Use to iteratively address unresolved review comments on the current PR. Fetches unresolved inline threads AND non-inline conversation comments, dispatches the pr-comment-fixer subagent to apply fixes, then verifies, commits, pushes, and posts replies. The reviewer resolves threads on their side; rerun the skill when new comments arrive.
License
MIT
Instructions
285 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Addressing PR Review Comments

**Announce at start:** "I'm using the address-pr-comments skill to fetch unresolved review comments and dispatch the pr-comment-fixer subagent."

This skill is a thin driver. The heavy work — reading files and applying fixes — happens in the `pr-comment-fixer` subagent so the main session stays clean across iterative review cycles. **You never resolve threads.**

Two sources of feedback are checked on every run:

- **Inline threads** — PR review threads anchored to specific file/line positions (GraphQL `reviewThreads`). Tracked by `isResolved` + 👀 on the review comment.
- **Conversation items** — PR-level issue comments, e.g. a bot's top-level review summary (REST `issues/$PR_NUMBER/comments`). Tracked by 👀 on the issue comment (there is no `isResolved` for these).

## Where the subagent lives

- `.claude/agents/pr-comment-fixer.md`

If it is missing, run `agent-workflow-beads update` against the repo to install it.

## Prerequisites

- Working directory is the downstream repo with the PR's feature branch checked out.
- `gh` CLI is installed and authenticated (`gh auth status`).
- Working tree is clean (or any uncommitted changes are intentional).
- `gh pr view` succeeds — the branch has an open PR.

If any prerequisite fails, stop and report.

## Steps

### 1. Identify the PR, repo, and "us"

```bash
gh pr view --json number,headRefName,url,state,author -q '{number, branch: .headRefName, url, state, author: .author.login}'
gh repo view --json owner,name -q '{owner: .owner.login, name}'
```

Capture `OWNER`, `REPO`, `PR_NUMBER`, and `AUTHOR_LOGIN` (the PR author — this is "us" for the purpose of detecting our own replies). If `state != OPEN`, stop.

### 2. Fetch all actionable review feedback

Run both fetches. Combine results into a single actionable list.

#### 2a. Inline review threads (GraphQL)

```bash
gh api graphql -f query='
  query($owner: String!, $repo: String!, $pr: Int!) {
    repository(owner: $owner, name: $repo) {
      pullRequest(number: $pr) {
        reviewThreads(first: 100) {
          nodes {
            id
            isResolved
            isOutdated
            path
            line
            comments(first: 50) {
              nodes {
                databaseId
                author { login }
                body
                path
                line
                diffHunk
                url
                createdAt
                reactions(first: 20, content: EYES) {
                  nodes { user { login } }
                }
              }
            }
          }
        }
      }
    }
  }' -F owner="$OWNER" -F repo="$REPO" -F pr="$PR_NUMBER"
```

A thread is **actionable** when both hold:

1. `isResolved == false`
2. The latest reviewer comment (latest `comments.nodes[]` where `author.login != AUTHOR_LOGIN`) does **not** have a 👀 reaction from `AUTHOR_LOGIN`

Keep `isOutdated` threads if they pass both filters.

#### 2b. Conversation comments (REST)

```bash
gh api "repos/$OWNER/$REPO/issues/$PR_NUMBER/comments" --paginate
```

For each comment where `author.login != AUTHOR_LOGIN`, fetch its 👀 reactions:

```bash
gh api "repos/$OWNER/$REPO/issues/comments/$COMMENT_ID/reactions?content=eyes"
```

A conversation comment is **actionable** when the 👀 list contains no entry with `user.login == AUTHOR_LOGIN`.

Skip comments authored by `AUTHOR_LOGIN` (those are our own prior replies, not reviewer asks).

#### Combined filter

If zero actionable items remain across both sources, report "No actionable unresolved feedback (all already 👀'd or resolved)" and stop.

### 3. Build the brief and dispatch the subagent

Transform the results into the brief schema the subagent expects. Every item has a `kind` field.

**Inline thread item:**

- `kind: "inline"`
- `thread_id` — the GraphQL `id`
- `root_comment_id` — `comments.nodes[0].databaseId`
- `latest_reviewer_comment_id` — `databaseId` of the most recent comment where `author.login != AUTHOR_LOGIN`
- `path`, `line`, `is_outdated`
- `comments[]` — all messages oldest-first, each with `author.login` and `body`
- `diff_hunk`, `url`

**Conversation item:**

From jsiovn/agent-workflow-beads, MIT.

More from jsiovn/agent-workflow-beads

Signals

Stars
2
Forks
0
Open issues
0
Last commit (this folder)
Jun 4, 2026 (4 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from jsiovn

Cite this page

address-pr-comments skill. Agent Mart. https://agentmart.dev/skills/jsiovn-address-pr-comments (last updated 2026-10-24)