address-pr-comments
Use to iteratively address unresolved review comments on the current PR.
Skill by jsiovn
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.
About
Use cases: agent-building
Reviews
Write a reviewNo 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
- 0.598score
executor-epic-sequential
jsiovn
Run every ready child bead of one epic end-to-end, sequentially, on a single epic branch (epic/<epic-bead-id>).
SkillAFreshness: A★ 2Claude Code +9 - 0.598score
executor-epic-sequential-worktree
jsiovn
Use when you want to deliver a whole epic unattended as ONE branch and ONE PR WITHOUT disturbing in-flight work in the main checkout.
SkillAFreshness: A★ 2Claude Code +9 - 0.507score
plan-beads
jsiovn
Run a planner-only Beads session: brainstorm, produce or confirm an execution plan, brief the user once for bead creation, then create beads and stop.
SkillCFreshness: C★ 2Claude Code +9 - 0.507score
beads-planner
jsiovn
Break a discussed or settled problem into Beads epics and tasks with clear dependencies and validation work.
SkillCFreshness: C★ 2Claude Code +9 - 0.507score
executor-epic-task-worktree
jsiovn
Run a full executor cycle for one bead in a fresh git worktree off its parent epic branch (epic/<epic-bead-id>): leaves the main working tree completely…
SkillCFreshness: C★ 2Claude Code +9 - 0.507score
cleanup-worktree
jsiovn
Remove a sibling git worktree created by `executor-task-worktree`, `executor-epic-task-worktree`, `executor-epic-sequential-worktree`, or…
SkillCFreshness: C★ 2Claude Code +9 - 0.507score
executor-epic-task
jsiovn
Run a full executor cycle for one bead on a fresh feature branch off its parent epic branch (epic/<epic-bead-id>): stash any in-flight work, switch to the…
SkillCFreshness: C★ 2Claude Code +9 - 0.507score
executor-rework-in-place
jsiovn
Re-execute one bead on the current feature branch in the current main worktree, after its requirements were updated and its PR is already open.
SkillCFreshness: C★ 2Claude Code +9 - 0.507score
executor-task-worktree
jsiovn
Run a full executor cycle for one bead in a fresh git worktree off main: leaves the main working tree completely untouched, creates a sibling worktree at…
SkillCFreshness: C★ 2Claude Code +9 - 0.507score
executor-task
jsiovn
Run a full executor cycle for one bead on a fresh feature branch off main: stash any in-flight work, switch to main, pull, create feat/<bead-id>-<short-slug>…
SkillCFreshness: C★ 2Claude Code +9 - 0.507score
prepare-android-chrome
jsiovn
Prepare a USB-connected Android phone so the user (or follow-up tools) can drive Chrome on it via the chrome-devtools-android MCP server.
SkillCFreshness: C★ 2Claude Code +9 - 0.504score
planner-research
jsiovn
Planner-only research step for resolving factual unknowns after brainstorming and before Beads creation.
SkillCFreshness: C★ 2Claude Code +9
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
- Repository
- github.com/jsiovn/agent-workflow-beads
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from jsiovn
- 0.598score
executor-epic-sequential
jsiovn
Run every ready child bead of one epic end-to-end, sequentially, on a single epic branch (epic/<epic-bead-id>).
SkillAFreshness: A★ 2Claude Code +9 - 0.598score
executor-epic-sequential-worktree
jsiovn
Use when you want to deliver a whole epic unattended as ONE branch and ONE PR WITHOUT disturbing in-flight work in the main checkout.
SkillAFreshness: A★ 2Claude Code +9 - 0.507score
executor-rework-in-place
jsiovn
Re-execute one bead on the current feature branch in the current main worktree, after its requirements were updated and its PR is already open.
SkillCFreshness: C★ 2Claude Code +9 - 0.507score
beads-planner
jsiovn
Break a discussed or settled problem into Beads epics and tasks with clear dependencies and validation work.
SkillCFreshness: C★ 2Claude Code +9 - 0.507score
cleanup-worktree
jsiovn
Remove a sibling git worktree created by `executor-task-worktree`, `executor-epic-task-worktree`, `executor-epic-sequential-worktree`, or…
SkillCFreshness: C★ 2Claude Code +9 - 0.507score
executor-task
jsiovn
Run a full executor cycle for one bead on a fresh feature branch off main: stash any in-flight work, switch to main, pull, create feat/<bead-id>-<short-slug>…
SkillCFreshness: C★ 2Claude Code +9
Cite this page
address-pr-comments skill. Agent Mart. https://agentmart.dev/skills/jsiovn-address-pr-comments (last updated 2026-10-24)