Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsBlogPro
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges
  • Chrome Extension
  • Skill Manager

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Handle Pr Author Feedback

ASecurity

As a PR reviewer, verify that the author's new commits actually address your review comments, resolve fixed threads, reply on partial or unaddressed ones, and evaluate author rebuttals. The reviewer-side counterpart of handle-pr-reviewer-feedback.

10 stars
0 votes
0 copies
0 views
Added 10/6/2026
toolsbashgitapi

Works with

cliapi

Security Analysis

A100/100

Scanned 10/6/2026

$npx -y skills add tomzx/agents --skill handle-pr-author-feedback --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Handle Pr Author Feedback?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Handle Pr Author Feedback
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tomzx-handle-pr-author-feedback/badge)](https://www.skillsdirectory.com/skills/tomzx-handle-pr-author-feedback)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
Files
SKILL.md
---
name: handle-pr-author-feedback
description: As a PR reviewer, verify that the author's new commits actually address your review comments, resolve fixed threads, reply on partial or unaddressed ones, and evaluate author rebuttals. The reviewer-side counterpart of handle-pr-reviewer-feedback.
allowed-tools: Bash(gh:*, ghx:*, git:*, ~/.agents/scripts/should-post-to-github:*), Read, Glob, Grep
argument-hint: "<pr-number>"
---

# Handle PR Author Feedback

As the reviewer of a GitHub pull request, verifies that the author's fixes actually address the review feedback left earlier. For each unresolved review thread, inspects the current code and diff to decide whether the comment is addressed, partially addressed, not addressed, or reasonably rejected, then resolves the fixed threads and replies on the rest. Whether replies are posted and threads resolved on GitHub is decided by `should-post-to-github` (based on `~/.sdlc/config.yaml`), otherwise replies are drafted without posting.

This skill never modifies the PR's code. To implement fixes on your own PR, use `handle-pr-reviewer-feedback` instead.

## Prerequisites

- `gh` CLI authenticated with write access to the target repository
- PR number identifying an open pull request where you left review comments
  - If `$1` is provided, use it directly
  - If `$1` is not provided, resolve the PR number with: `ghx pr list --head $(git branch --show-current) --json | jq '.[0].number'`

### Skill attribution (GitHub)

Before posting any PR comment with `gh`, read [`github-post-attribution/SKILL.md`](../github-post-attribution/SKILL.md) and append the **Posted with** footer for `SKILL_DIR` = `handle-pr-author-feedback`.

### Communication guidelines (outbound text)

Before composing any text posted or drafted on the user's behalf, apply [`communication-guidelines/SKILL.md`](../communication-guidelines/SKILL.md).

## Workflow

```
Fetch PR threads + metadata ($1)
        |
        v
Filter to unresolved threads
authored by current user
        |
        v
   For each thread
        |
        v
   Inspect current code + diff
   since the comment
        |
        v
   Verdict: addressed / partial /
   not addressed / rebuttal
        |
        v
Present verdicts to user for approval
       /         \
   Approved     Rejected
      |             |
      v             v
   Resolve +      Skip
   reply per thread
   (ghx + GraphQL),
   only if
   should-post-to-github
   allows
      |
      v
All threads resolved? --Yes--> Suggest /quick-pr-review
                              to re-approve
```

## Steps

1. Fetch PR metadata and threads:
   ```
   ghx pr view $1 --json --refresh
   ghx pr threads $1 --ids --state all
   ```
   `ghx pr view` does not expose the head commit SHA, so fetch it with `gh pr view $1 --json headRefOid --jq .headRefOid`.
   Extract the latest commit SHA, the PR author, and the current user (`gh api user --jq .login`).

2. Filter threads to those that are:
   - unresolved, and
   - authored by the current user (the first comment's author is you).

   Threads started by other reviewers are skipped; report them as out of scope.

3. For each thread, inspect the fix. The diff is cumulative, so the test is "is the concern addressed in the current code", not "which commit touched it":
   - Read the thread's comment (file, line, request) and any author replies.
   - Fetch the current diff: `gh pr diff $1`.
   - Read the current file content at the commented location when the diff alone is insufficient:
     `gh api repos/{owner}/{repo}/contents/{path}?ref={headRefOid} --jq .content | base64 -d`.
   - Optionally check the commits added since the comment for citation: `gh pr view $1 --json commits --jq '.commits[].oid'`.

4. Assign a verdict per thread:
   - **Addressed**: the code now satisfies the comment correctly (not a cosmetic rename that avoids the issue). If the comment asked for tests, tests exist and plausibly cover the case.
   - **Partially addressed**: part of the request is done, part remains. Record precisely what remains.
   - **Not addressed**: no meaningful change and no substantive author reply.
   - **Rebuttal**: the author replied explaining why the change will not be made. Evaluate the justification on its facts; if it is sound (style preference, out of scope, documented trade-off), accept it; otherwise prepare a counter-argument citing code or requirements.

5. Present a verdict table to the user for approval: thread, comment summary, verdict, and the proposed reply or resolve action.

6. On approval, decide whether to post: get the PR author (`ghx pr view $1 --json | jq -r .author.login`), then run `~/.agents/scripts/should-post-to-github --repo "<owner>/<repo>" --author "<PR_AUTHOR>"`.
   If it exits 0:
   - **Addressed**: reply to the thread, then resolve it:
     ```
     ghx pr comment $1 --reply-thread <thread-id> --body "Addressed in <short-sha>. Resolving."
     gh api graphql -f query='mutation($id: ID!) { resolveReviewThread(input: {threadId: $id}) { thread { isResolved } } }' -f id="$THREAD_ID"
     ```
   - **Partially addressed / not addressed / rebuttal not accepted**: reply with what remains or the counter-argument; do not resolve.
   - **Rebuttal accepted**: reply acknowledging the justification, then resolve as above.
   - Accepted rebuttals and addressed threads resolve only after the reply succeeds.
   - Append the **Skill attribution** footer to each reply.

   If it exits 1, present the drafted replies and the resolve list to the user without posting or resolving.

7. If every thread is resolved and your latest review was `CHANGES_REQUESTED` (check `gh pr view $1 --json reviews`), the PR is no longer blocked from your side: suggest running `/quick-pr-review <owner>/<repo> $1` to re-review and approve the new commit, or run `ghx pr review submit $1 --event APPROVE --body "..."` directly when the user prefers an immediate approval.

## Example Usage

**Scenario 1: Author pushed a real fix**
```
/handle-pr-author-feedback 42
```
Thread: "This function doesn't handle `user` being null."
The diff adds a null guard plus a test.
Verdict: addressed. Reply + resolve.

**Scenario 2: Partial fix**
```
/handle-pr-author-feedback 100
```
Thread asked for a null guard and a test; only the guard was added.
Verdict: partially addressed. Reply listing the missing test; keep the thread open.

**Scenario 3: Sound rebuttal**
```
/handle-pr-author-feedback 77
```
Comment: "Rename `processBatch` to `run`."
Author replies that `run` shadows an existing helper and would break the public API.
Verdict: rebuttal accepted. Reply acknowledging; resolve.

**Scenario 4: Unsupported rebuttal**
```
/handle-pr-author-feedback 88
```
Author replies "done" but the code is unchanged.
Verdict: not addressed. Reply pointing at the unchanged code and the missing change; keep the thread open.

**Scenario 5: Posting disabled**
```
/handle-pr-author-feedback 55
```
`should-post-to-github` exits 1.
Verdicts and drafted replies are presented locally; nothing is posted or resolved.

## Useful Commands Reference

| Command | Description |
|---|---|
| `ghx pr view <pr-number> --json --refresh` | Fetch PR metadata including latest commit, author, and reviews (fresh) |
| `ghx pr threads <pr-number> --ids --state all` | List all review threads with IDs, authors, and resolved state |
| `gh pr diff <pr-number>` | Show the current cumulative diff |
| `gh api repos/{owner}/{repo}/contents/{path}?ref={sha} --jq .content | base64 -d` | Read the current file content at the PR head |
| `ghx pr comment <pr-number> --reply-thread <thread-id> --body "..."` | Reply to a specific review thread |
| `gh api graphql -f query='mutation($id: ID!) { resolveReviewThread(input: {threadId: $id}) { thread { isResolved } } }' -f id=<thread-id>` | Resolve a review thread |
| `ghx pr review submit <pr-number> --event APPROVE --body "..."` | Approve the PR after all threads are resolved |

Attribution

tomzxtomzx
View sourceSee grades on GitHubMore from tomzx →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

ucoz-landing-skill

Create and edit uCoz homepage landing pages via MCP: custom templates, hero sections, lead forms, navigation menus, SEO, and responsive layout. Includes a visual design system (style selection, layout/grid, section recipes, typography/spacing, color tokens, component states, icons, modern CSS/JS, motion, imagery, social proof, copy/voice, accessibility). Uses ucoz-mcp tools for templates, site file uploads, and site modules.

107 votes

Paperclip

Interact with the Paperclip control plane API for task coordination and governance. Use when checking assignments, updating issue status, posting comments, delegating work, managing routines, or calling Paperclip API endpoints.

953191 votes

Pptx

Presentation toolkit (.pptx). Create/edit slides, layouts, content, speaker notes, comments, for programmatic presentation creation and modification.

471861 votes

Daw Music

Digital Audio Workstation usage, music composition, interactive music systems, and game audio implementation for immersive soundscapes.

761 votes

Instantly Rdsthomas Mission Control

Instantly.ai cold email outreach API - manage campaigns, leads, accounts, and analytics. Use for cold email automation, lead management, campaign creation/monitoring, and email account warmup.

761 votes
View all in tools →