Agent skill

PR Comment Handler

by flutter-ml in flutter-ml/google_ml_kit_flutter

Fetches unresolved pull request comments using the GitHub CLI (gh), addresses feedback in the codebase, and formats markdown replies for easy copy-pasting to GitHub PRs.

MITAuto-check passedDevelopment

Install PR Comment Handler

skills CLI
$ npx skills add flutter-ml/google_ml_kit_flutter --skill pr-comment-handler -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install flutter-ml/google_ml_kit_flutter pr-comment-handler --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/flutter-ml/google_ml_kit_flutter.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/pr_comment_handler .claude/skills/pr-comment-handler && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
pr-comment-handler
GitHub stars
1.3k
Token cost
~1k tokens
SKILL.md length
348 words
Files
1
Skills in repo
2
Repo updated
First seen
Licence
MIT

At a glance

Fetches unresolved pull request comments using the GitHub CLI (gh), addresses feedback in the codebase, and formats markdown replies for easy copy-pasting to GitHub PRs.

  • Works in 6 steps: Identify the Pull Request → Fetch Unresolved Comments & Review Threads → 1: Early Exit Check → …
  • The user asks to address PR comments
  • Calls gh and uv
  • Review PR feedback

What it does

PR Comment Handler is an agent skill from flutter-ml/google_ml_kit_flutter. Fetches unresolved pull request comments using the GitHub CLI (gh), addresses feedback in the codebase, and formats markdown replies for easy copy-pasting to GitHub PRs. Use when the user asks to address PR comments, review PR feedback, or resolve PR review threads.

Its SKILL.md is about 1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Pull requests. It works with GitHub. The repository describes itself as: A flutter plugin that implements Google's standalone ML Kit. The licence is MIT.

When your agent uses it

  • The user asks to address PR comments
  • Review PR feedback
  • Resolve PR review threads

Example prompts

  • “Use the pr-comment-handler skill to fetch unresolved pull request comments using the GitHub CLI (gh), addresses feedback in the codebase, and…”
  • “/pr-comment-handler”

Requirements

  • Python 3

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Identify the Pull Request
  2. Fetch Unresolved Comments & Review Threads
  3. 1: Early Exit Check
  4. Inspect Code & Address Feedback
  5. Run Verification Tests & Linters
  6. Generate Markdown Replies

What it can do on your machine

Read from SKILL.md and the folder at commit 1083593. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • gh
    • uv

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use gh and uv, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

PR Comment Handler loads about 1k tokens when it runs. Until then it costs about 71 tokens; SKILL.md has 348 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~71
When it runs · the whole SKILL.md, loaded when a task matches
~1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from flutter-ml/google_ml_kit_flutter at commit 1083593, republished under its MIT licence (© flutter-ml). 348 words, ~1,049 tokens.

Download SKILL.mdSave it as .claude/skills/pr-comment-handler/SKILL.md (or your agent's skills folder).
name
pr-comment-handler
description
Fetches unresolved pull request comments using the GitHub CLI (gh), addresses feedback in the codebase, and formats markdown replies for easy copy-pasting to GitHub PRs. Use when the user asks to address PR comments, review PR feedback, or resolve PR review threads.

PR Comment Handler Skill

This skill guides the AI assistant in using the GitHub CLI (gh) to retrieve unresolved review comments from a GitHub Pull Request, address code feedback directly in the codebase, verify changes with tests, and format markdown-ready replies for the user to copy/paste onto GitHub.


Workflow Steps

Step 1: Identify the Pull Request
  1. Check if the user specified a PR number, URL, or branch.
  2. If no PR identifier is provided, query the current branch's PR using:
    bash
    gh pr view --json number,url,headRefName,baseRefName
  3. Extract OWNER, REPO, and PR_NUMBER.

Step 2: Fetch Unresolved Comments & Review Threads

Run a GraphQL query via gh api graphql to retrieve recent review threads (up to 50 threads and 20 comments per thread; paginate if hasNextPage is true) and filter for unresolved threads (isResolved: false):

bash
gh api graphql -f query='
query($owner: String!, $repo: String!, $pr: Int!) {
  repository(owner: $owner, name: $repo) {
    pullRequest(number: $pr) {
      number
      title
      url
      reviewThreads(first: 50) {
        nodes {
          id
          isResolved
          isOutdated
          path
          line
          originalLine
          comments(first: 20) {
            nodes {
              id
              author { login }
              body
              createdAt
            }
          }
        }
      }
      comments(first: 50) {
        nodes {
          id
          author { login }
          body
          createdAt
        }
      }
    }
  }
}' -f owner="<OWNER>" -f repo="<REPO>" -F pr=<PR_NUMBER>

Filter the results:

  • Review Threads: Keep threads where isResolved == false.
  • Issue Comments: Extract top-level PR conversation comments requiring action.

Step 2.1: Early Exit Check
  • If there are no unresolved review threads (isResolved == false is empty) and no unaddressed comments:
    1. Immediately inform the user:
      markdown
      🎉 All comments on PR #<PR_NUMBER> have already been addressed and resolved!
    2. Exit the workflow immediately without making code changes or running tests.

Show full SKILL.md (165 more words)Show less
Step 3: Inspect Code & Address Feedback

For each unresolved comment/thread:

  1. Locate the file (path) and target line range (line or originalLine).
  2. Read the source code using view_file (or view).
  3. Carefully analyze the reviewer's request and any explicit code suggestions provided.
  4. Evaluate any reviewer-provided code suggestions against the overall system architecture, safety, and design intent.
  5. If the suggestion is valid and aligns with the codebase design, implement the code changes using text replacement tools.
  6. If no changes are needed or the suggestion conflicts with design requirements, prepare a clear technical explanation justifying the current approach.

Step 4: Run Verification Tests & Linters

Before outputting replies, verify all code edits locally:

  1. Run pre-commit checks:
    bash
    uv run pre-commit run --all-files
  2. Run unit tests:
    bash
    uv run python manage.py test --settings=besties_backend.test_settings_sqlite

Step 5: Generate Markdown Replies

Present a structured, easy-to-read summary for the user containing markdown blocks ready for copy/pasting onto GitHub.

For each unresolved thread, format the output as follows:

markdown
### 💬 Comment Thread on `[file_path:line]`

> **Reviewer (@username):** _"Comment body text here"_

**Status:** ✅ Addressed / ℹ️ Answered

#### Action Taken:

- Description of code changes made or technical explanation provided.

#### Copy/Paste Reply for GitHub:

```markdown
Thanks @username!

[Detailed response explaining the code changes made, or providing the requested clarification].

Commit/Fix applied in `file_path`.
```

© flutter-ml, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/pr_comment_handler of flutter-ml/google_ml_kit_flutter.

Open the folder on GitHubat commit 1083593

Compare with similar skills

PR Comment Handler next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

PR Comment Handler compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
PR Comment Handler this skillflutter-ml/google_ml_kit_flutter1.3k—~1kAutomated safety check: PassMIT
PR Babysitteropeninterpreter/openinterpreter69k3 repos~4.2kAutomated safety check: PassApache-2.0
Check PRonyx-dot-app/onyx32k2 repos~2.3kAutomated safety check: PassMIT
Contributor-First PR MergeHKUDS/OpenHarness16k1 repos~847Automated safety check: PassMIT
Create Pull Requestcline/cline70k1 repos~1.6kAutomated safety check: PassApache-2.0
Pull Request Title and Body Writeropeninterpreter/openinterpreter69k2 repos~1.1kAutomated safety check: PassApache-2.0

Similar skills

  • PR Babysitter

    openinterpreter/openinterpreter

    Watches an open GitHub pull request until it merges, handling review comments, diagnosing CI failures and retrying flaky checks along the way.

    69k GitHub starsUsed in 3 repos~4.2k tokens
    DevelopmentAuto-check passed
  • Check PR

    onyx-dot-app/onyx

    Checks a GitHub, GitLab, or Perforce (p4) pull request (or merge request, or shelved changelist) for unresolved review comments, failing status checks, and incomplete PR descriptions.

    32k GitHub starsUsed in 2 repos~2.3k tokens
    DevelopmentAuto-check passed
  • Merges external GitHub pull requests while keeping the original author credited, and fixes conflicts after the merge instead of rewriting the contribution.

    16k GitHub starsUsed in 1 repo~847 tokens
    DevelopmentAuto-check passed
  • Opens a GitHub pull request from your current branch with the gh CLI, after reviewing the commits and diff and gathering the details the PR needs.

    70k GitHub starsUsed in 1 repo~1.6k tokens
    DevelopmentAuto-check passed
  • Pull Request Title and Body Writer

    openinterpreter/openinterpreter

    Rewrites the title and body of one or more pull requests with gh, leading with why the change was made, then what changed, and describing only the net result.

    69k GitHub starsUsed in 2 repos~1.1k tokens
    DevelopmentAuto-check passed
  • Official

    Runs a loop on a GitHub pull request: fetch review state, triage comments into actions, implement them and resolve threads, repeating until nothing actionable is left.

    48k GitHub stars~2.2k tokensUpdated today
    DevelopmentAuto-check passed

More from flutter-ml/google_ml_kit_flutter

  • PR Preparer

    flutter-ml/google_ml_kit_flutter

    Analyzes git branch diffs (added, modified, deleted files) against the default or target branch, and generates a conventional commit title, PR title, and formatted markdown PR description for…

    1.3k GitHub stars~1.2k tokensUpdated 23 days ago
    Auto-check passed

Works with

Categories

Questions about PR Comment Handler

What does PR Comment Handler do?

Fetches unresolved pull request comments using the GitHub CLI (gh), addresses feedback in the codebase, and formats markdown replies for easy copy-pasting to GitHub PRs. PR Comment Handler is an agent skill from flutter-ml/google_ml_kit_flutter. Fetches unresolved pull request comments using the GitHub CLI (gh), addresses feedback in the codebase, and formats markdown replies for easy copy-pasting to GitHub PRs.

When should I use PR Comment Handler?

PR Comment Handler fits situations like: the user asks to address PR comments; review PR feedback; resolve PR review threads.

How do I install PR Comment Handler in Claude Code?

Run `npx skills add flutter-ml/google_ml_kit_flutter --skill pr-comment-handler -a claude-code`. Or copy the skill folder (.agents/skills/pr_comment_handler in flutter-ml/google_ml_kit_flutter) into .claude/skills/pr-comment-handler in your project. Claude Code loads it when a task matches its description.

How do I install PR Comment Handler in Codex?

Run `npx skills add flutter-ml/google_ml_kit_flutter --skill pr-comment-handler -a codex`. Or copy the skill folder (.agents/skills/pr_comment_handler in flutter-ml/google_ml_kit_flutter) into .agents/skills/pr-comment-handler in your project. Codex loads it when a task matches its description.

Can I use PR Comment Handler in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add flutter-ml/google_ml_kit_flutter --skill pr-comment-handler -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/pr-comment-handler, .gemini/skills/pr-comment-handler, .github/skills/pr-comment-handler and .opencode/skills/pr-comment-handler in your project.

What does PR Comment Handler need to run?

Going by SKILL.md and its folder, PR Comment Handler needs the command-line tools its instructions call (gh and uv). Our summary lists: Python 3.

Does PR Comment Handler access the network?

SKILL.md contains no URLs. Its commands use gh and uv, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is PR Comment Handler safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does PR Comment Handler use?

PR Comment Handler is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does PR Comment Handler use?

About 1k tokens (SKILL.md is roughly 4.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to PR Comment Handler?

Skills that share tags, products or a category with PR Comment Handler: PR Babysitter (openinterpreter/openinterpreter, 69k stars), Check PR (onyx-dot-app/onyx, 32k stars), Contributor-First PR Merge (HKUDS/OpenHarness, 16k stars) and Create Pull Request (cline/cline, 70k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains PR Comment Handler?

flutter-ml (a GitHub organization) maintains it in flutter-ml/google_ml_kit_flutter, which has 1,284 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on September 14, 2026.

Source: flutter-ml/google_ml_kit_flutter on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.