Review PR Comments

SkillFiles & storage

Lets your agent fetch and triage pull request review comments on the current branch, grouping them by file and suggesting actions.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Review PR Comments skill

About this capability

Review and triage PR review comments on the current branch — groups threads by file, separates bots from humans, walks through unresolved comments interactively

What this skill tells your AI

The instructions your AI receives, as published by datadog/datadog-agent in .agents/skills/review-pr-comments/SKILL.md and read by ahel’s review.

Fetch, summarize, and interactively triage review comments on the PR for the current git branch.

Prerequisites

  • gh CLI authenticated with access to the repository
  • Current branch must have an open PR (not main or a release branch like N.N.x)

Workflow

Step 1: Identify the PR

BRANCH=$(git branch --show-current)

Guard: skip if branch is main, master, or matches release pattern ^\d+\.\d+\.x$.

Find the PR:

gh pr list --head "$BRANCH" --json number,title,url,state --limit 5

If no PR found, inform the user and stop.

Step 2: Fetch all review data

Run these three gh api calls in parallel:

# Review comments (inline code 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}'

# Top-level reviews (approval/request-changes status + body)
gh api repos/{owner}/{repo}/pulls/{PR_NUMBER}/reviews --paginate \
  --jq '.[] | {id, user: .user.login, state, body}'

# Issue-level comments (general PR discussion, CI bot reports)
gh api repos/{owner}/{repo}/issues/{PR_NUMBER}/comments --paginate \
  --jq '.[] | {id, user: .user.login, body, created_at}'

Extract {owner} and {repo} from gh repo view --json owner,name.

Step 3: Organize into threads

Group review comments into conversation threads using in_reply_to_id:

  • A comment with in_reply_to_id: null starts a new thread
  • Replies link to their parent thread

For each thread, track:

  • File & line from the root comment
  • Author of the root comment
  • All replies in chronological order
  • Resolution status: resolved if the PR author replied last

Step 4: Classify comments

Separate into two groups:

Bot comments (user login ends with [bot] or is a known CI bot):

  • Summarize briefly (e.g., "CI quality gates passed", "Regression detector: no regressions")
  • Only highlight actionable items (failures, warnings)

Human reviewer comments:

  • These get full treatment in Step 5

Step 5: Present and triage each human comment

For each unresolved human reviewer comment thread:

  1. Show context: file, line, diff hunk, the comment body
  2. Read the current file at the referenced location to understand current state
  3. Summarize the reviewer's concern in one sentence
  4. Propose a concrete action: code fix, reply text, or explanation
  5. Ask the user what to do using AskQuestion:
Options:
- "Fix" → Apply the proposed code change
- "Reply" → Post a reply comment on the PR via gh api
- "Reply with custom message" → Ask user for reply text, then post
- "Add TODO" → Add a TODO item to track for later
- "Skip" → Move to next comment

For already-resolved threads (PR author replied last), present them as a summary group:

  • Show the comment + your reply, note it's resolved
  • Ask if user wants to revisit any

Step 6: Execute chosen actions

Fix: Edit the file, show the diff to the user. Do NOT commit automatically.

Reply: Post via gh API:

gh api repos/{owner}/{repo}/pulls/{PR_NUMBER}/comments \
  -f body="$REPLY_TEXT" -f in_reply_to=$COMMENT_ID

TODO: Use the TodoWrite tool to track it.

Step 7: Summary

After processing all comments, output a summary table:

| # | File | Reviewer | Action Taken |
|---|------|----------|--------------|
| 1 | path/to/file.go:42 | reviewer1 | Fixed |
| 2 | path/to/other.py:10 | reviewer2 | Replied |
| 3 | path/to/build.bzl:5 | reviewer3 | Skipped (already resolved) |

Edge Cases

  • No unresolved comments: Report "All review comments are resolved" with approval status summary
  • PR not found: Suggest the user push the branch or create a PR first
  • Outdated diff hunks: Note that the comment may reference old code; read the current file to verify
  • Multiple PRs for branch: Use the most recent open one

Signals

GitHub stars
4k
Forks
1k
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
review-pr-comments-datadog
Source
github.com/datadog/datadog-agent