agentleFS
TangleMLTangleML/tangle-ui/.claude/skills/address-pr-comments/SKILL.md

address-pr-comments

Skill104 starsChanged 3 days agoApache-2.0View on GitHub

Find the PR for the current branch, read review comments, and address them — either by fixing the code or pushing back with a reply. Use when the user wants to handle PR feedback.

We split this skill into the rules it gives an agent

14 rules. 0 are common, 13 are distinctive, and 1 is very specific to this project.

  • 0

    Common

    Most of the 15 edited versions we read keep these.

  • 13

    Distinctive

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Check the current branch for an open PR, read all unresolved review comments, and let the user pick which ones to address.

    line 10
  2. Distinctive:

    If no PR exists for the current branch, tell the user and stop.

    line 18
  3. Distinctive:

    Before presenting comments to the user, read the relevant code and think critically about each comment.

    line 50
  4. Distinctive:

    Use the AskUserQuestion tool to show a multi-select list of all remaining unresolved, unaddressed comments.

    line 52
  5. Distinctive:

    If there are no actionable comments, tell the user everything has been addressed and stop.

    line 72
  6. Distinctive:

    Every reply must be prefixed with the AI disclaimer:

    line 80
  7. Distinctive:

    If any code changes were made:

    line 139
  8. Very specific:

    Create a commit with a message like: address pr feedback

    line 142
  9. Distinctive:

    Do NOT push — tell the user the changes are committed and ready to push

    line 143
  10. Distinctive:

    After all comments are addressed, show a summary table with columns:

    line 147
  11. Distinctive:

    Always read the full file context before deciding how to address a comment

    line 156
  12. Distinctive:

    Never dismiss feedback rudely — be respectful even when pushing back

    line 158
  13. Distinctive:

    If a comment requires a large refactor or is out of scope, say so and suggest a follow-up issue

    line 159
  14. Distinctive:

    If unsure about a comment's intent, ask the user before responding

    line 161

“Common” is measured: kept by at least 6 in 10 of the 15 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Address PR Comments

Check the current branch for an open PR, read all unresolved review comments, and let the user pick which ones to address.

Step 1: Find the PR

gh pr view --json number,title,url,state --jq '{number, title, url, state}'

If no PR exists for the current branch, tell the user and stop.

Also determine the current GitHub user:

gh api user --jq '.login'

Step 2: Fetch review comments

Get all review comments (not general PR comments):

gh api repos/{owner}/{repo}/pulls/{pr_number}/comments --paginate --jq '.[] | {id, path, line, body, user: .user.login, created_at, in_reply_to_id, diff_hunk}'

Step 3: Filter to actionable comments

Build a thread map by grouping comments using in_reply_to_id. For each top-level comment thread:

Skip the thread if ANY of these are true:

  • The thread is already resolved
  • The top-level comment was made by the current user
  • The top-level comment was made by a bot (dependabot, github-actions, etc.)
  • The comment is a pure approval with no actionable feedback
  • The current user (or PR author) has already replied in the thread — this means it was already addressed in a previous run or manually. Check if any reply in the thread was authored by the current GitHub user.

This ensures running the command again won't double-reply to already-addressed comments.

Step 4: Analyze comments and present for selection

Before presenting comments to the user, read the relevant code and think critically about each comment. Determine whether the suggestion is correct, already addressed, or a bad idea. Form a proposed action for each.

Use the AskUserQuestion tool to show a multi-select list of all remaining unresolved, unaddressed comments.

Always make "All comments" the first option of the first question, with the total count (e.g. All comments (8)). Selecting it addresses every comment with its proposed action, whatever else is selected. AskUserQuestion allows at most 4 options per question and 4 questions, so when the comments don't fit in the remaining slots, group related ones into a single option (by file or shared concern) rather than leaving any out.

Each comment option should show:

  • The reviewer's username
  • The file path and line number
  • A truncated preview of the comment (first ~80 characters)
  • Your proposed action — what you plan to do (e.g., "Will fix: change X to Y", "Will push back: current approach is better because...", "Will answer: explain how X works")

Example options:

  • All comments (8) → address every comment above with its proposed action
  • [reviewer] file.ts:42 — "Fix this typo..." → Will fix: rename varName to variableName
  • [reviewer] other.ts:10 — "This should use..." → Will push back: current pattern is more performant here
  • [reviewer] types.ts:5 — "Why not use...?" → Will answer: explain the tradeoff

The user picks which comments they want to address. If "All comments" is selected, address every comment; otherwise proceed only with the selected ones.

If there are no actionable comments, tell the user everything has been addressed and stop.

Step 5: Address each selected comment

Do not blindly agree with every comment. Critically evaluate each suggestion against the codebase, existing patterns, and correctness. If a suggestion would make the code worse, introduce inconsistency, or is factually wrong — push back respectfully. The reviewer is a collaborator, not an authority to obey unconditionally.

For each selected comment, read the relevant file and surrounding context, then decide:

Every reply must be prefixed with the AI disclaimer:

> 🤖 This is an AI-generated response.

<rest of the reply body>

If the suggestion is correct and actionable:

  1. Make the code change
  2. Reply to the comment confirming the fix:
> 🤖 This is an AI-generated response.

Fixed — <brief description of what was changed>.

If the suggestion is already addressed:

Reply explaining that it's already handled:

> 🤖 This is an AI-generated response.

This is already handled — <explanation with file path/line reference>.

If the suggestion is incorrect or not applicable:

Reply respectfully pushing back:

> 🤖 This is an AI-generated response.

I think the current approach is better here because <reasoning>. <Optional: offer an alternative compromise>.

If the comment is a question (not a change request):

Reply with the answer:

> 🤖 This is an AI-generated response.

<Answer the question with relevant context/file references>.

Step 6: Post replies

For each comment, post the reply:

gh api repos/{owner}/{repo}/pulls/{pr_number}/comments/{comment_id}/replies -f body="<reply>"

Step 7: Stage and commit fixes

If any code changes were made:

  1. Stage only the files that were modified to address comments
  2. Create a commit with a message like: address pr feedback
  3. Do NOT push — tell the user the changes are committed and ready to push

Step 8: Show summary

After all comments are addressed, show a summary table with columns:

#FileCommentAction

Where Action clearly states what was done: "Fixed — ...", "Pushed back — ...", "Answered — ...", or "Already handled — ...".

Important

  • Always read the full file context before deciding how to address a comment
  • Think critically — do not default to agreeing. Push back when the suggestion is wrong, harmful, or inconsistent with the codebase
  • Never dismiss feedback rudely — be respectful even when pushing back
  • If a comment requires a large refactor or is out of scope, say so and suggest a follow-up issue
  • Group related comments that touch the same code — address them together
  • If unsure about a comment's intent, ask the user before responding
  • Show the user what you plan to reply before posting, so they can adjust

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.