ai/claude/skills/pr-review/SKILL.md
Manage GitHub PR review lifecycle: analyze unanswered threads, update review files, and post replies. Initial posting is handled by the review-post script.
npx skillsauth add otto-nation/otto-workbench pr-reviewInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Manages the thread lifecycle of GitHub PR reviews: analyze responses, update review files, and post replies.
Initial posting of review findings is handled by review-post (called via claude-review post <N> or cmd_post()). This skill is for thread management after a review has been posted.
Run with /pr-review <pr_number>.
repo=$(basename $(git rev-parse --show-toplevel))
# Check for an existing PENDING review by the current user
gh api repos/{owner}/{repo}/pulls/<pr_number>/reviews \
--jq '[.[] | select(.user.login == "<current_user>" and .state == "PENDING")] | first'
Also check for submitted reviews with unanswered comment threads:
# Get all review comments and their reply threads
gh api repos/{owner}/{repo}/pulls/<pr_number>/comments \
--jq '[.[] | select(.in_reply_to_id == null)] | map({id, path, body, user: .user.login, updated_at, replies: []})'
If an existing review has unanswered responses:
For each unanswered thread:
~/.config/workbench/reviews/<repo>-<pr_number>.md:
~~strikethrough~~ and note the resolution## Open Threads section with threads needing a responseFor threads that need a response, post replies. Never use -f body="..." — use -F body=@- with a quoted heredoc to avoid shell escaping failures:
gh api repos/{owner}/{repo}/pulls/<pr_number>/comments/<comment_id>/replies \
--method POST -F body=@- <<'REPLY_BODY'
<reply text — backticks, quotes, markdown all safe here>
REPLY_BODY
Print:
APPROVE, REQUEST_CHANGES, COMMENT) — only create as PENDINGtesting
Analyze PR review comments to identify gaps in coding rules. Fetches comments from all registered repos, classifies them against existing rules, and proposes specific rule additions or refinements.
testing
Address incoming PR review comments: fetch, verify, fix, and reply. Works with human and bot reviewers.
development
Reviews accumulated Claude Code memories for promotion into durable workbench artifacts — lint rules, scripts, coding rules, hooks. Prioritizes mechanical enforcement over prose.
tools
Refresh the machine profile (~/.claude/machine/machine.md) — hardware, OS, runtimes, Docker, Git identity, and project registry. Run after upgrading tools or to force a refresh.