Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
dimfeld avatar

Create Pr Review From Comments

  • 1 installs
  • 6 repo stars
  • Updated July 31, 2026
  • dimfeld/dotfiles

Converts AI-tagged comments in local files into GitHub PR review comments mapped to the correct lines, then posts them as a single PR review.

About

Finds AI comment markers in modified files, maps each to its original line, and submits them as a GitHub pull-request review with a status and body. A developer uses it to turn in-code review notes into a posted PR review.

  • Extracts AI-tagged comments from local files into structured review comments
  • Posts them as a GitHub PR review with a chosen status and body

Create Pr Review From Comments by the numbers

  • 1 all-time installs (skills.sh)
  • Ranked #524 of 733 Git & Pull Requests skills by installs in the Skillselion catalog
  • Data as of Aug 1, 2026 (Skillselion catalog sync)
npx skills add https://github.com/dimfeld/dotfiles --skill create-pr-review-from-comments

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs1
repo stars6
Last updatedJuly 31, 2026
Repositorydimfeld/dotfiles

What it does

Converts AI-tagged comments in local files into GitHub PR review comments mapped to the correct lines, then posts them as a single PR review.

Files

SKILL.mdMarkdownGitHub ↗

Find the current jj branch name using: jj log -r 'latest(heads(ancestors(@) & remote_bookmarks()), 1)' --limit 1 --no-graph -T bookmarks | tr -d '*' | sed 's/@origin$//'

Then use gh pr list --head <branch-name> to get the number of the PR.

IMPORTANT NOTE: ALL SCRIPTS ARE RELATIVE TO THE SKILL.md file path but you must run them from the repository directory.

Run the extract_comments.ts script to find all AI comments in modified files:

bun scripts/extract_comments.ts

This script will output each comment with:

  • File path
  • Comment type (single, block_start, block_end)
  • The comment line number in the edited file
  • The comment text
  • The adjacent original line number and content (the line the comment refers to)

Use the "Adjacent Original Line" number as the line field in the Comment structure. For block comments (AI_COMMENT_START/AI_COMMENT_END pairs), use the block_start's adjacent line as startLine and the block_end's adjacent line as line.

interface Comment {
  file: string;
  startLine?: number;
  line: number
  text: string;
}

interface Input {
  pr: number;
  status?: 'comment' | 'requestChanges' | 'approve';
  body: string;
  comments: Comment[];
}

Once you have that, read the files and relevant surrounding lines to ensure you have the full context of each comment.

After extracting comments, display them and ask if the user wants to:

  • set a particular status value
  • modify the comments

Finally, separately ask for a review body (main message) to be included with the review.

Generate an object of type Input, save it as JSON to a temporary file, and pass it to scripts/create_review.ts.

You may add extra context to a comment if needed to better explain it, but if you do this you MUST do it in a separate paragraph that starts with "AI says: " so that it's very clear what the original reviewer wrote and what you are adding.

GITHUB_TOKEN=$(gh auth token) bun scripts/create_review.ts <tempfile>

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.