resolve-code-review
- Repo stars 0
- Author repo skills-registry
Resolve Code Review
Read code review feedback on a pull request, resolve each item, reply in comment threads, and post a summary comment. Follows the PR conventions in CLAUDE.md.
Complementary skill: superpowers:receiving-code-review — use it alongside this one to ensure technical rigor when evaluating feedback.
Usage
/resolve-code-review [PR_NUMBER]
If no PR number is provided, detect from the current branch with gh pr view --json number -q .number.
Process
digraph resolve_review {
rankdir=TB;
fetch [label="1. Fetch PR comments" shape=box];
read [label="2. Read & categorize each comment" shape=box];
fix [label="3. Implement fixes" shape=box];
reply [label="4. Reply in each comment thread" shape=box];
summary [label="5. Post summary comment" shape=box];
push [label="6. Push fixes" shape=box];
fetch -> read -> fix -> reply -> summary -> push;
}
1. Fetch PR Comments
Detect the repo owner/name from the current git remote (do not hardcode).
Permission compatibility: Always run
ghcommands as standalone statements — never chain with&&or wrap in$()variable assignments in the same Bash call. Claude Code's shell-aware permission matching evaluates each part of a chain independently, soREPO=$(gh repo view ...) && echo "$REPO"won't match aBash(gh repo view *)permission even though theghcommand itself would. Instead, run theghcommand alone and capture the tool result.
gh repo view --json nameWithOwner -q .nameWithOwner
Store the result as REPO for subsequent commands.
Fetch review context:
gh pr view <PR> --repo ${REPO} --comments
gh pr diff <PR> --repo ${REPO}
Fetch ALL inline comments with pagination (default per_page is 30 — PRs with many review rounds will have more):
gh api "repos/${REPO}/pulls/<PR>/comments?per_page=100" \
--jq '[.[] | {id, in_reply_to_id, line, path, body, created_at, pull_request_review_id, user: .user.login}]'
If the response has 100 items, there may be more pages. Use --paginate to get all:
gh api "repos/${REPO}/pulls/<PR>/comments" --paginate \
--jq '[.[] | {id, in_reply_to_id, line, path, body, created_at, pull_request_review_id, user: .user.login}]'
Find unreplied comments using two separate queries with positive-match selectors only.
zsh compatibility: Never use
!=in jq expressions passed via--jq— zsh interprets!as history expansion and the command will fail. Always use positive==selectors in separate queries instead.
# Step 1: Get all original Gemini comments (not replies)
gh api "repos/${REPO}/pulls/<PR>/comments?per_page=100" \
--jq '[.[] | select(.in_reply_to_id == null) | select(.user.login == "gemini-code-assist[bot]") | {id, path, created_at, body_preview: (.body[0:120])}]'
# Step 2: Get IDs already replied to by dshaevel
gh api "repos/${REPO}/pulls/<PR>/comments?per_page=100" \
--jq '[.[] | select(.in_reply_to_id > 0) | select(.user.login == "dshaevel") | .in_reply_to_id]'
# Step 3: Compare — any ID in Step 1 not in Step 2 is unreplied
To fetch the full body of specific unreplied comments by ID:
gh api "repos/${REPO}/pulls/<PR>/comments?per_page=100" \
--jq '[.[] | select(.id == 12345 or .id == 67890) | {id, path, line, body}]'
Alternatively, fetch comments for the latest review specifically:
# Get the latest gemini review ID and summary
gh api "repos/${REPO}/pulls/<PR>/reviews" \
--jq '[.[] | select(.user.login == "gemini-code-assist[bot]")] | last | {id, body, state}'
# Fetch only that review's inline comments
REVIEW_ID=<id-from-above>
gh api "repos/${REPO}/pulls/<PR>/reviews/${REVIEW_ID}/comments" \
--jq '[.[] | {id, line, path, body, created_at}]'
If the review has a top-level summary comment (gemini-code-assist often posts one), read it first to understand the overall assessment.
2. Read and Categorize
For each review comment:
- Read the file and surrounding code to understand context before deciding
- Determine severity from the reviewer's language (critical, high, medium, low)
- Decide resolution: fix or decline
Rules:
- CRITICAL and HIGH: Must fix
- MEDIUM: Evaluate — fix if reasonable, decline with technical reasoning if not
- LOW: Fix if trivial, decline if YAGNI
3. Implement Fixes
For each item being fixed:
- Read the relevant file
- Make the change
- Commit with a descriptive message (conventional commits format)
Group related fixes into a single commit when they address the same concern.
4. Reply to Each Comment Thread
Reply in the comment thread (not top-level). Every reply MUST:
- Start with
@gemini-code-assist(required for notification) - Explain what was fixed and how (if fixed)
- Provide technical reasoning (if declining)
gh api repos/${REPO}/pulls/<PR>/comments/<COMMENT_ID>/replies \
-f body="@gemini-code-assist Fixed. Changed X to Y."
5. Post Summary Comment
After all items are resolved, post a top-level PR comment:
gh pr comment <PR> --body "$(cat <<'EOF'
@gemini-code-assist Review addressed:
| # | Feedback | Resolution |
|---|----------|------------|
| 1 | Issue X | Fixed in <commit> - Description of fix |
| 2 | Issue Y | Declined - Technical reasoning |
EOF
)"
Resolution column format: Include both the commit reference AND a brief summary.
6. Push
Push fixes to the PR branch so the reviewer can verify.
git push
<!-- tomevault:4.0:skill_md:2026-05-23 -->Source: davidshaevel-dot-com/davidshaevel-marketplace — distributed by TomeVault.
- Fluxly category
- Writing
- Author-declared agents
- No explicit declaration found; this is not inferred or tested compatibility
- Static check
- 88 / 100 · heuristic scan, not runtime safety proof
- Author / version / license
- @tomevault-io · no license declared
- Fluxly token estimate
- Lean
- Fluxly setup estimate
- Guided setup
- External API key
- No requirement detected
- Detected OS requirements
- Unspecified
- Runtime requirements
- Unspecified
- Detected file/system behavior
-
- Read-only
- Shell exec
- Detected network behavior
- External requests
- Install commands
- None (reference only)
Profile is derived at build time from SKILL.md and install vectors. Subject to drift from author intent.
Heads up: 未限定 allowed-tools,默认拥有全部工具权限。
The current SKILL.md does not define a fixed output example. If no PR number is provided, detect from the current branch with gh pr view --json number -q .number.
Process
Detect the repo owner/name from the current git remote (do not hardcode). Permission compatibility: Always run gh commands as standalone statements — never chain with && or wrap in $() variable assignments in the same Bash call. Claude Code's shell-aware…
For each review comment: Read the file and surrounding code to understand context before deciding Determine severity from the reviewer's language (critical, high, medium, low)
For each item being fixed: Read the relevant file Make the change
Reply in the comment thread (not top-level). Every reply MUST: Start with @gemini-code-assist (required for notification) Explain what was fixed and how (if fixed)
# Resolve Code Review
Read code review feedback on a pull request, resolve each item, reply in comment threads, and post a summary comment. Follows the PR conventions in CLAUDE.md.
**Complementary skill:** `superpowers:receiving-code-review` — use it alongside this one to ensure technical rigor when evaluating feedback.
## Usage
```
/resolve-code-review [PR_NUMBER]
```
If no PR number is provided, detect from the current branch with `gh pr view --json number -q .number`.
## Process
```dot
digraph resolve_review {
rankdir=TB;
fetch [label="1. Fetch PR comments" shape=box];
read [label="2. Read & categorize each comment" shape=box];
fix [label="3. Implement fixes" shape=box];
reply [label="4. Reply in each comment thread" shape=box];
summary [label="5. Post summary comment" shape=box];
push [label="6. Push fixes" shape=box];
fetch -> read -> fix -> reply -> summary -> push;
}
```
### 1. Fetch PR Comments
Detect the repo owner/name from the current git remote (do not hardcode).
> **Permission compatibility:** Always run `gh` commands as standalone statements — never chain with `&&` or wrap in `$()` variable assignments in the same Bash call. Claude Code's shell-aware permission matching evaluates each part of a chain independently, so `REPO=$(gh repo view ...) && echo "$REPO"` won't match a `Bash(gh repo view *)` permission even though the `gh` command itself would. Instead, run the `gh` command alone and capture the tool result.
```bash
gh repo view --json nameWithOwner -q .nameWithOwner
```
Store the result as `REPO` for subsequent commands.
Fetch review context:
```bash
gh pr view <PR> --repo ${REPO} --comments
gh pr diff <PR> --repo ${REPO}
```
… Author text anchors workflow facts; Fluxly only indexes current sections, terms, files, and commands.
sections -> Usage → Process → 1. Fetch PR Comments → 2. Read and Categorize → 3. Implement Fixes → 4. Reply to Each Comment Thread
terms -> Complementary skill · Permission compatibility · Fetch ALL inline comments with pagination · Find unreplied comments · zsh compatibility · full body · latest review · Read the file and surrounding code
files/cmd -> superpowers:receiving-code-review · gh pr view --json number -q .number · $() · REPO=$(gh repo view ...) && echo "$REPO" · Bash(gh repo view ) · REPO · perpage · --paginate
body sha256 -> ea6db6b38646
Decide Fit First
Design Intent
How To Use It
Boundaries And Review