원클릭으로
review-pr
Assess and address PR review findings from Copilot, CodeRabbit, or human reviewers — classify, fix, reply, resolve
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Assess and address PR review findings from Copilot, CodeRabbit, or human reviewers — classify, fix, reply, resolve
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Run ASOPB evaluation with credential routing, build context sync, and baseline comparison
Walk the full ADEPT Code Hygiene Quick Reference Card checklist and report PASS/FAIL/N-A for each item. Use as a final check before pushing.
Full task closure workflow -- runs test validation, session report, tracking doc updates, commit preparation, and hygiene audit in sequence. Use at the end of a development session. Pass an optional title hint as argument.
Configure Claude Code to connect to an ADEPT instance (local Docker stack or remote server). Generates .mcp.json, runs doctor check, verifies connectivity. Use when setting up or switching between ADEPT instances.
Guided workflow to deploy ADEPT on cloud infrastructure (AWS, Azure, or GCP) as a single VM or A2A mesh pair. Covers provisioning, OS prep, stack deployment, and optional A2A federation between two independently-deployed stacks.
Add a new tool to an existing MCP server following the canonical register(mcp) + Pydantic pattern. Use during Phase 4 (Implement) of the feature development lifecycle.
| name | review-pr |
| description | Assess and address PR review findings from Copilot, CodeRabbit, or human reviewers — classify, fix, reply, resolve |
| disable-model-invocation | true |
| allowed-tools | Bash(gh *) Bash(git *) Bash(grep *) Bash(find *) Bash(cat *) Bash(ls *) Read Write Edit Glob Grep |
You are assisting an ADEPT developer with assessing and addressing pull request review findings from automated reviewers (GitHub Copilot, CodeRabbit, SonarCloud) or human reviewers.
Do not use emojis in any output.
Enforce all rules in docs/development/AGENT_CODING_RULES.md throughout this skill execution.
CRITICAL: Always use --paginate with gh api list endpoints to avoid missing results beyond page 1.
The skill accepts one argument: a PR number (e.g., /review-pr 108). If no number is provided, detect the PR for the current branch:
PR_NUMBER=$(gh pr list --head "$(git branch --show-current)" --json number --jq '.[0].number')
echo "PR #$PR_NUMBER"
If no PR exists for the current branch, stop and inform the developer.
Retrieve all review comments (inline findings) and PR reviews:
# Get all review comments with pagination
gh api repos/{owner}/{repo}/pulls/$PR_NUMBER/comments --paginate \
--jq '.[] | select(.in_reply_to_id == null) | {id: .id, user: .user.login, path: .path, line: .line, body: .body[:300]}'
# Get review summaries
gh api repos/{owner}/{repo}/pulls/$PR_NUMBER/reviews --paginate \
--jq '.[] | {id: .id, user: .user.login, state: .state, submitted_at: .submitted_at, body: .body[:200]}'
Determine the repository owner/repo from:
gh repo view --json nameWithOwner --jq '.nameWithOwner'
Present findings in a numbered table:
| # | Reviewer | File | Finding (summary) | Classification |
|---|---|---|---|---|
| 1 | copilot | path/to/file.py | Description... | SECURITY |
Classify each finding into one of these categories:
| Category | Description | Action Required |
|---|---|---|
| SECURITY | Permission model, credential exposure, injection risks, unsafe defaults | Must fix before merge |
| CORRECTNESS | Logic errors, exit code masking, escaping bugs, race conditions | Must fix before merge |
| CONSISTENCY | Acronym drift, threshold mismatches, version discrepancies across docs | Should fix in this PR |
| STYLE | Naming, comments, formatting, code organization | Fix if trivial, defer if not |
| OPTIMIZATION | Performance suggestions, redundant operations, resource waste | Acknowledge, defer to backlog |
| INFORMATIONAL | Observations, suggestions for future work, non-blocking notes | Acknowledge only |
Priority order: SECURITY > CORRECTNESS > CONSISTENCY > STYLE > OPTIMIZATION > INFORMATIONAL
Present the classified findings to the developer. Ask which to address.
For each finding the developer wants to address, perform targeted analysis:
# Read the file at the path and line referenced
Check whether:
| Resolution | When to Use |
|---|---|
| FIX | Finding is valid and fixable in this PR |
| ACKNOWLEDGE | Finding is valid but intentional design choice — explain why |
| DEFER | Finding is valid but out of scope for this PR — create issue/backlog |
| FALSE_POSITIVE | Finding is incorrect given ADEPT's architecture — explain why |
Report the analysis to the developer before making changes.
For each finding classified as FIX:
Group related fixes into a single commit:
git add <fixed-files>
git commit -m "$(cat <<'EOF'
fix(<scope>): address PR #<N> review findings
<what was fixed and why>
Findings addressed:
- <path:line> — <finding summary> (<category>)
- <path:line> — <finding summary> (<category>)
Related documentation (this commit):
- <paths>
Related documentation (past 5 commits):
- <paths from git log -5 -- docs/>
EOF
)"
After fixing, reply to each comment on GitHub to close the feedback loop:
FIX (code change made):
Addressed in `<commit_hash>`: <brief explanation of what was changed>.
ACKNOWLEDGE (intentional, no change):
Acknowledged — <why this is intentional>. <reference to convention or architecture doc if applicable>.
DEFER (out of scope):
Tracked as backlog item <issue_ref or doc_ref>. Out of scope for this PR — <brief reason>.
FALSE_POSITIVE (reviewer incorrect):
Not applicable in ADEPT context: <brief explanation>. <evidence, e.g., "No Jinja2 template rendering exists in the output pipeline">.
# Reply to a specific review comment
gh api repos/{owner}/{repo}/pulls/$PR_NUMBER/comments/<comment_id>/replies \
-f body="<resolution message>"
gh pr comment $PR_NUMBER --body "$(cat <<'EOF'
## Review Findings Addressed
Commit `<hash>` resolves the following review findings:
| # | Finding | Resolution |
|---|---------|------------|
| 1 | <path:line> — <summary> | <what was done> |
| 2 | <path:line> — <summary> | <what was done> |
Remaining items (acknowledged, no code change):
- <item>: <justification>
EOF
)"
Push the fix commit to trigger re-review:
git branch --show-current # Safety check
git push origin <branch>
After push, check for re-review:
gh api repos/{owner}/{repo}/pulls/$PR_NUMBER/reviews --paginate \
--jq '.[] | select(.submitted_at > "<push_timestamp>") | {user: .user.login, state: .state, submitted_at: .submitted_at}'
If new findings appear, return to Phase 1.
Present the developer with:
ADEPT projects have canonical expansions that reviewers frequently flag:
When a reviewer flags acronym inconsistency, search broadly:
grep -rniE "Agentic (Safety|Software|System|Stack|Automated).*(Operations|Security|Operational)" \
docs/ examples/ src/ CLAUDE*.md --include="*.md" --include="*.py" --include="*.yaml" | head -30
Release gate thresholds must match docs/development/VERSIONING_AND_RELEASE_CONVENTIONS.md Section 8:
Scanner pass count references:
Files excluded by .publish-exclude must not be referenced from public-site docs:
# Check if a referenced path survives staging
grep "<path>" .publish-exclude
GitHub Actions permissions should follow least-privilege:
peaceiris/actions-gh-pages@v4: only needs contents: writeactions/deploy-pages: needs pages: write + id-token: writeWhen multiple reviewers have commented (e.g., Copilot + human reviewer):
# Owner/repo detection
REPO=$(gh repo view --json nameWithOwner --jq '.nameWithOwner')
# All review comments (top-level only, excludes replies)
gh api repos/$REPO/pulls/$PR_NUMBER/comments --paginate \
--jq '.[] | select(.in_reply_to_id == null) | {id, path, body: .body[:200]}'
# Check which comments already have replies
REPLIED=$(gh api repos/$REPO/pulls/$PR_NUMBER/comments --paginate \
--jq '[.[] | select(.in_reply_to_id != null)] | .[].in_reply_to_id' | sort -u)
# Post reply to a comment
gh api repos/$REPO/pulls/$PR_NUMBER/comments/<ID>/replies -f body="..."
# Post PR-level comment (summary)
gh pr comment $PR_NUMBER --body "..."
# Check CI status
gh pr view $PR_NUMBER --json statusCheckRollup \
--jq '.statusCheckRollup[] | {name: .name, conclusion: .conclusion}'
# Get latest commit hash for references
COMMIT=$(git rev-parse --short HEAD)