resolve-review
GitHub PR의 코드 리뷰 코멘트를 읽어와 피드백을 반영하고, 각 코멘트에 답글을 남깁니다.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
GitHub PR의 코드 리뷰 코멘트를 읽어와 피드백을 반영하고, 각 코멘트에 답글을 남깁니다.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Load when designing new domains or modules, refactoring architecture, working with Clean Architecture layers, ports/adapters pattern, or cross-domain communication.
Load when developing API endpoints, designing request/response DTOs, creating controllers, or working with BaseResponse wrapper and exception handling patterns.
Commit, push, and open a PR following project conventions. Use when creating pull requests.
프로젝트 컨벤션에 맞는 일관된 커밋 메시지를 생성하고 커밋을 수행합니다.
Create a GitHub issue following project conventions. Use when creating issues.
Load when working with environment settings, application profiles (local/staging/prod), Jasypt encryption, secrets management, or infrastructure configuration.
| name | resolve-review |
| description | GitHub PR의 코드 리뷰 코멘트를 읽어와 피드백을 반영하고, 각 코멘트에 답글을 남깁니다. |
GitHub PR에 남겨진 코드 리뷰 코멘트를 확인하고, 피드백을 코드에 반영한 뒤, 각 코멘트에 처리 결과를 답글로 남깁니다.
PR에 코드 리뷰 코멘트가 달린 후, 피드백을 반영할 때 사용합니다.
/resolve-review <PR번호>
# PR 리뷰 요약 확인
gh pr view <PR번호> --comments --json comments,reviews \
--jq '.reviews[] | "[\(.author.login)] state: \(.state)\n\(.body)"'
# 인라인 리뷰 코멘트 조회 (comment ID, 파일 경로, 내용)
gh api repos/{owner}/{repo}/pulls/{pull_number}/comments \
--jq '.[] | "\(.id)\t\(.path):\(.original_line)\t\(.body)"'
각 코멘트에서 다음을 파악:
path와 line 필드suggestion 코드 블록 또는 본문 설명in_reply_to_id가 있는 코멘트는 답글이므로 원본만 처리# PR의 head 브랜치 확인
gh pr view <PR번호> --json headRefName --jq '.headRefName'
# 해당 브랜치로 체크아웃 (worktree가 있으면 해당 경로에서 작업)
git checkout <branch>
git add <수정된 파일들>
git commit -m "refactor: 코드 리뷰 피드백 반영
Co-Authored-By: Claude <model> <noreply@anthropic.com>"
git push
각 코멘트에 처리 결과를 답글로 남김:
gh api repos/{owner}/{repo}/pulls/{pull_number}/comments -X POST \
-f body="반영 완료했습니다. <변경 요약> (<commit-hash>)" \
-F in_reply_to=<comment_id>
AI Agent(봇)가 남긴 코멘트를 반영한 경우, 해당 코멘트 스레드를 resolve 처리:
user.type이 "Bot"인 코멘트만 resolve (예: gemini-code-assist[bot], github-actions[bot] 등)# 코멘트의 GraphQL node_id를 사용하여 resolve
gh api graphql -f query='
mutation {
resolveReviewThread(input: {threadId: "<thread_node_id>"}) {
thread { isResolved }
}
}
'
thread_node_id 조회 방법: 리뷰 코멘트 조회 시 node_id 필드 대신, PR의 review threads에서 GraphQL로 조회:
gh api graphql -f query='
query {
repository(owner: "{owner}", name: "{repo}") {
pullRequest(number: {pull_number}) {
reviewThreads(first: 100) {
nodes {
id
isResolved
comments(first: 1) {
nodes {
databaseId
author { login }
}
}
}
}
}
}
}
'
comments(first: 1)의 databaseId가 원본 코멘트 ID와 일치하는 thread의 id를 사용하여 resolve
in_reply_to_id가 null인 코멘트만 대상으로 함 (답글은 무시)user.type == "Bot"인 코멘트는 반영 후 자동으로 resolve 처리. 사람이 남긴 코멘트는 절대 resolve하지 않음GET /repos/{owner}/{repo}/pulls/{pull_number}/comments
주요 필드:
id: 코멘트 고유 ID (답글 시 in_reply_to에 사용)path: 대상 파일 경로line / original_line: 코멘트가 달린 라인 번호body: 코멘트 본문in_reply_to_id: 답글 대상 코멘트 ID (null이면 원본 코멘트)POST /repos/{owner}/{repo}/pulls/{pull_number}/comments
필수 파라미터:
body (string): 답글 내용 → -f body="..."in_reply_to (integer): 원본 코멘트 ID → -F in_reply_to=<id> (-F로 숫자 전달)