Agent skill

Address Review Comments

by meain in meain/dotfiles

Work through review comments across a stack of jj-managed PRs, one PR at a time — pull comments, present them with proposed fixes, apply only what's approved, and manage the commit/rebase/push flow.

MITAuto-check passed

Install Address Review Comments

skills CLI
$ npx skills add meain/dotfiles --skill address-review-comments -a claude-code

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

GitHub CLI
$ gh skill install meain/dotfiles address-review-comments --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/meain/dotfiles.git skills-src && mkdir -p .claude/skills && cp -r skills-src/agents/.agents/skills/address-review-comments .claude/skills/address-review-comments && 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
address-review-comments
GitHub stars
285
Token cost
~2.5k tokens
SKILL.md length
1,386 words
Files
1
Skills in repo
35
Repo updated
First seen
Licence
MIT

At a glance

Work through review comments across a stack of jj-managed PRs, one PR at a time — pull comments, present them with proposed fixes, apply only what's approved, and manage the commit/rebase/push flow.

  • Works in 10 steps: Create a new commit on top of the PR's… → Pull the PR's review comments → Research and present as a numbered list → …
  • SKILL.md covers Scope: which PRs to process, Per-PR loop, Rebasing this stack against… and Standing rules
  • Calls go, gh and make; reaches github.com

What it does

Address Review Comments is an agent skill from meain/dotfiles. Work through review comments across a stack of jj-managed PRs, one PR at a time — pull comments, present them with proposed fixes, apply only what's approved, and manage the commit/rebase/push flow.

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

The repository describes itself as: If there is a shell, there is a way! The licence is MIT.

Example prompts

  • “/address-review-comments”

Workflow steps

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

  1. Create a new commit on top of the PR's commit
  2. Pull the PR's review comments
  3. Research and present as a numbered list
  4. Apply only what's approved
  5. Handle ripple effects across the stack
  6. Resolve real rebase conflicts inline
  7. Verify the whole stack before finalizing
  8. Show the diffs, then squash only with explicit approval
  9. Push
  10. Move to the next PR

What it can do on your machine

Read from SKILL.md and the folder at commit 3e336e2. 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:

    • go
    • gh
    • make

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

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • github.com

    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

Address Review Comments loads about 2.5k tokens when it runs. Until then it costs about 56 tokens; SKILL.md has 1,386 words of instructions outside code blocks.

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

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 meain/dotfiles at commit 3e336e2, republished under its MIT licence (© meain). 1,386 words, ~2,495 tokens.

Download SKILL.mdSave it as .claude/skills/address-review-comments/SKILL.md (or your agent's skills folder).
name
address-review-comments
description
Work through review comments across a stack of jj-managed PRs, one PR at a time — pull comments, present them with proposed fixes, apply only what's approved, and manage the commit/rebase/push flow.

Address code review comments on a stack of jj-managed PRs/commits, one PR at a time, keeping every fix reviewable before it's folded into history.

Scope: which PRs to process

Only process PRs that have actual human review activity. Comments from bots (coderabbitai, github-actions, claude) do not count as "reviewed" for this filtering purpose — skip a PR with only bot comments unless the user explicitly asks to address bot comments too. When they do ask about a bot's comment, check it against current code before doing anything: bot reviews often describe code that has since changed shape (e.g. an earlier architectural fix already made the comment moot) — say so plainly if the finding no longer applies, don't reflexively "fix" something already fixed.

If preparing research for several PRs ahead of time, background subagents work well — one per PR, each writing findings to .martifacts/pr-<number>-review.md — so the user can go through them one by one without waiting on research each time.

Per-PR loop

For each PR, in order:

1. Create a new commit on top of the PR's commit
bash
jj new <pr-change-id> -m "wip: address pr #<number> review comments"

Never work by directly jj edit-ing the PR's own commit to add new logical changes — that buries the diff inside an existing commit before the user has seen it. The one exception is resolving a genuine rebase conflict (see step 6) — that's mechanical reconciliation of two existing diffs, not new work, so it's fine to resolve inline and squash immediately.

2. Pull the PR's review comments
bash
GIT_DIR=$(jj git root) gh pr view <number> --json reviews,comments

gh pr view does not show whether an inline thread is resolved, so also pull the threads with their state and full reply chain:

bash
GIT_DIR=$(jj git root) gh api graphql -f query='query{repository(owner:"<owner>",name:"<repo>"){pullRequest(number:<number>){reviewThreads(first:100){nodes{id isResolved isOutdated path line originalLine comments(first:50){nodes{author{login} body createdAt}}}}}}}'

Only work on what is actually still open — the goal is never to re-address a comment that has already been dealt with:

  • Drop every thread with isResolved: true.
  • If the last comment in an unresolved thread is the PR author's, it is waiting on the reviewer — list it as "replied, awaiting reviewer", no new work.
  • For what's left, including outdated threads, check the current code (at the PR's commit and in descendants that rewrote the same lines) before proposing anything. If it's already fixed, say so and quote the code rather than proposing a change.
  • A CHANGES_REQUESTED review state stays until the reviewer re-reviews, even when every thread behind it is resolved. That needs a re-review request, not more code.
3. Research and present as a numbered list

For each comment: re-check it against the current shape of the code (line numbers and even the code itself may have moved since the review was posted), then propose a concrete fix. Present all comments as a numbered list with the proposed solution before changing anything — do not edit code first and explain after.

If a comment is architectural rather than mechanical (e.g. "why build a second client instead of extending the shared one"), lay out the tradeoffs and flag that it needs a decision, rather than just picking an approach.

If two comments' proposed fixes contradict each other, or a proposed fix conflicts with a decision already made elsewhere in the stack, stop and explain the contradiction — don't silently resolve it one way.

Right after showing the list, open the PR in the browser so the user can work through the comments visually alongside it:

bash
open https://github.com/<owner>/<repo>/pull/<number>
4. Apply only what's approved

Wait for the user to pick which comments to act on (they may say "do 2, 3, 5", ask follow-up questions about specific ones first, or ask for a different fix than the one proposed). Only touch what's explicitly approved. Re-verify build and tests after every change:

bash
go build ./... && go test ./<affected-packages>/...

Watch for formatting tools (make fmt, gofumpt/goimports hooks) sweeping unrelated files when run repo-wide — check jj diff --stat afterward and jj restore --from @- anything outside the intended scope before describing the commit.

5. Handle ripple effects across the stack

A rename or signature change made at PR N's commit often breaks compilation at PR N+k downstream, because later commits reference the old name. Fix each broken descendant as its own new commit (jj new <descendant-rev> -m "wip: ..."), scoped to just that ripple — not folded into the fix commit, and not directly edited into the descendant's existing commit. This lets the user review the fix and its ripple separately, and keeps each PR's diff matching what it's actually supposed to contain.

Sequence: fix at the PR's commit → jj describe it → jj rebase -s <next-commit> -d <fix-commit> → check for breakage/conflicts at each affected descendant → fix each with its own jj new/jj describe → rebase the remaining tail forward → repeat until the whole stack builds clean.

6. Resolve real rebase conflicts inline

If jj rebase reports actual conflicts (not just compile breakage — look for CONFLICT in jj log or <<<<<<< markers in files), resolve them by editing the conflicted file directly, then:

bash
jj squash --use-destination-message

This is expected/mechanical — reconciling two sides of a real merge — and distinct from squashing new work into an existing commit. Do it as soon as the conflict is resolved; no need to hold it for approval.

Show full SKILL.md (573 more words)Show less
7. Verify the whole stack before finalizing

Move to the tip (jj edit <tip-change-id> or the bookmark furthest along) and run the full build + test suite there — passing at an individual commit doesn't guarantee the assembled stack still builds:

bash
go build ./... && go test ./...
8. Show the diffs, then squash only with explicit approval

Show the user the diff of every new fix/ripple commit created in this pass (jj diff -r <rev> for each). Default suggestion is to squash each into its target PR commit, but never squash without the user explicitly saying so for this batch — a prior "yes" does not carry over to the next PR's squashes. Once approved:

bash
jj squash --from <fix-commit> --into <target-commit> --use-destination-message

Re-verify build/test at the tip after squashing (squashing can itself surface new conflicts if two independent fixes touched overlapping lines).

9. Push
bash
GIT_DIR=$(jj git root) jj git push -b <bookmark1> -b <bookmark2> ...

List every bookmark in the stack from the PR just fixed through the tip — squashing rewrites commit IDs for every descendant, so all of them need re-pushing, not just the one that changed.

10. Move to the next PR

Repeat from step 1 for the next PR with human review comments.

Rebasing this stack against upstream main

A long-running review stack will need to be rebased onto upstream main more than once as other work lands. This is a distinct situation from step 6's same-stack ripple conflicts — here the conflicting side is someone else's merged work, so treat every conflict as needing a review step, not an immediate squash:

  1. jj rebase -d main (or whatever the trunk bookmark is) to pull the whole stack onto the new base.
  2. Find every commit the rebase left conflicted:
    bash
    jj log -r 'descendants(<stack-base>) & mutable()' -T 'change_id.shortest(8) ++ " " ++ if(conflict, "CONFLICT ", "") ++ description.first_line() ++ "\n"'
  3. Process conflicted commits oldest first — resolving an older commit's conflict often auto-resolves its descendants' conflicts too (they were the same root cause propagating downstream), so re-run the check above after each fix before assuming there's more work.
  4. For each: jj new <conflicted-rev> (a new commit on top of it), edit out the <<<<<<</|||||||/=======/>>>>>>> markers by hand (usually both sides are additive — keep both, don't just pick one), build/test/lint, then show the resulting diff and wait for explicit approval before squashing — unlike step 6's same-stack ripple conflicts, a wrong merge here can silently drop real work from someone else's landed PR, so it's worth the extra pause even though the mechanics are the same (jj squash --into <conflicted-rev>).
  5. Once every conflict is resolved, do a full build/test/lint sweep at the tip (not just the commits you touched) before pushing — a clean merge at each individual commit doesn't guarantee the assembled stack still builds against the new base.

Standing rules

  • Show before changing: present the comment list and proposed fix before editing code, and show the diff before squashing — every time, not just the first time.
  • Default to a new commit per fix; squashing always needs explicit, per-batch approval.
  • If a comment's fix belongs conceptually to an earlier PR in the stack (even though the conflict/need surfaced later), put the fix at that earlier PR's commit and rebase forward, rather than patching it wherever is most convenient.
  • If addressing a comment reveals the PR's design needs to change (not just a mechanical fix), stop and explain the situation before proceeding — this is a decision for the user, not something to resolve unilaterally.
  • Skip a PR/comment entirely if the user says so ("skip this one for now") — don't leave partial edits behind; jj restore/jj abandon anything speculative.

© meain, 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/.agents/skills/address-review-comments of meain/dotfiles.

Open the folder on GitHubat commit 3e336e2

Compare with similar skills

Address Review Comments 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.

Address Review Comments compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Address Review Comments this skillmeain/dotfiles285—~2.5kAutomated safety check: PassMIT
Address GitHub Commentsdavila7/claude-code-templates33k7 repos~307Automated safety check: PassMIT
Gh Address Commentstech-leads-club/agent-skills7k—~353Automated safety check: PassApache-2.0
Secrets Managementdavila7/claude-code-templates33k12 repos~2kAutomated safety check: PassMIT
Project ManagerRightNow-AI/openfang18k—~960Automated safety check: PassApache-2.0
Content Management Systemsgithub/awesome-copilot40k1 repos~1.3kAutomated safety check: PassMIT

Similar skills

  • Address GitHub Comments

    davila7/claude-code-templates

    A skill your agent uses when you need to address review or issue comments on an open GitHub Pull Request using the gh CLI.

    33k GitHub starsUsed in 7 repos~307 tokens
    Auto-check passed
  • Gh Address Comments

    tech-leads-club/agent-skills

    Address review and issue comments on the open GitHub PR for the current branch using gh CLI.

    7k GitHub stars~353 tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Secrets Management

    davila7/claude-code-templates

    Secure secrets management practices for CI/CD pipelines using Vault, AWS Secrets Manager, and other tools.

    33k GitHub starsUsed in 12 repos~2k tokens
    DevOps & CloudAuto-check passed
  • Project Manager

    RightNow-AI/openfang

    Project management expert for Agile, estimation, risk management, and stakeholder communication

    18k GitHub stars~960 tokensUpdated 3 mo ago
    Product & Project ManagementAuto-check passed
  • Content Management Systems

    github/awesome-copilot

    Official

    Workflow for building and modifying content management systems across WordPress, Shopify, Wix, Squarespace, Drupal, WooCommerce, Joomla, HubSpot CMS Hub, Webflow, Adobe Experience Manager, and…

    40k GitHub starsUsed in 1 repo~1.3k tokens
    Sales & SupportAuto-check passed
  • No Comments

    cursor/plugins

    Official

    Spawn Comment Sicko, fix accepted findings, and offer encodings for claimed constraints.

    11k GitHub starsUsed in 7 repos~640 tokens
    Auto-check passed

More from meain/dotfiles

All 35 skills in this repo
  • Recall

    meain/dotfiles

    Search past Claude Code and Codex sessions. An agent skill from meain/dotfiles.

    285 GitHub starsUsed in 1 repo~684 tokens
    Auto-check passed
  • Grill With Docs

    meain/dotfiles

    Grilling session that challenges your plan against the existing domain model, sharpens terminology, and updates documentation (CONTEXT.md, ADRs) inline as decisions crystallise.

    285 GitHub starsUsed in 20 repos~875 tokens
    Auto-check passed
  • Backlog

    meain/dotfiles

    Daily backlog management — full planning review OR add a single entry from a URL.

    285 GitHub stars~3k tokensUpdated 2 days ago
    Auto-check passed
  • Concern Review

    meain/dotfiles

    Generate an interactive local HTML review page for a large PR or diff, grouping the changed files by logical concern (not just by file) so a reviewer can go through one theme at a time instead of a…

    285 GitHub stars~2.2k tokensUpdated 2 days ago
    Auto-check passed
  • My Weekly Report

    meain/dotfiles

    Generate a concise weekly status update in team format. An agent skill from meain/dotfiles.

    285 GitHub stars~2.5k tokensUpdated 2 days ago
    Auto-check passed
  • Web Search

    meain/dotfiles

    Search the web using lynx and DuckDuckGo. An agent skill from meain/dotfiles.

    285 GitHub stars~830 tokensUpdated 2 days ago
    Auto-check passed

Questions about Address Review Comments

What does Address Review Comments do?

Work through review comments across a stack of jj-managed PRs, one PR at a time — pull comments, present them with proposed fixes, apply only what's approved, and manage the commit/rebase/push flow. Address Review Comments is an agent skill from meain/dotfiles. Work through review comments across a stack of jj-managed PRs, one PR at a time — pull comments, present them with proposed fixes, apply only what's approved, and manage the commit/rebase/push flow.

How do I install Address Review Comments in Claude Code?

Run `npx skills add meain/dotfiles --skill address-review-comments -a claude-code`. Or copy the skill folder (agents/.agents/skills/address-review-comments in meain/dotfiles) into .claude/skills/address-review-comments in your project. Claude Code loads it when a task matches its description.

How do I install Address Review Comments in Codex?

Run `npx skills add meain/dotfiles --skill address-review-comments -a codex`. Or copy the skill folder (agents/.agents/skills/address-review-comments in meain/dotfiles) into .agents/skills/address-review-comments in your project. Codex loads it when a task matches its description.

Can I use Address Review Comments 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 meain/dotfiles --skill address-review-comments -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/address-review-comments, .gemini/skills/address-review-comments, .github/skills/address-review-comments and .opencode/skills/address-review-comments in your project.

What does Address Review Comments need to run?

Going by SKILL.md and its folder, Address Review Comments needs the command-line tools its instructions call (go, gh and make).

Does Address Review Comments access the network?

SKILL.md names 1 domain. In commands or code: github.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Address Review Comments 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 Address Review Comments use?

Address Review Comments 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 Address Review Comments use?

About 2.5k tokens (SKILL.md is roughly 10k 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 Address Review Comments?

Skills that share tags, products or a category with Address Review Comments: Address GitHub Comments (davila7/claude-code-templates, 33k stars), Gh Address Comments (tech-leads-club/agent-skills, 7k stars), Secrets Management (davila7/claude-code-templates, 33k stars) and Project Manager (RightNow-AI/openfang, 18k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Address Review Comments?

meain (a GitHub user) maintains it in meain/dotfiles, which has 285 GitHub stars. The repository holds 35 skills in this directory. The repository was last updated on October 8, 2026.

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