code-review
Review code quality of a PR. Inspect Go conventions, architecture compliance, and test quality
SKILL.md.claude/skills/code-review/SKILL.md
GitHub/code-review
A skill for conducting code quality reviews on Pull Requests.
Argument Patterns
/code-review <PR number>— Review the specified PR/code-review— Review the PR associated with the current branch
Steps
Step 1: Identify the PR
If an argument is provided:
- Use
<PR number>
If no argument is provided:
- Get the PR number for the current branch with
gh pr view --json number -q .number - If no PR exists, display an error message and exit
Step 2: Fetch PR Information
Fetch the following in parallel:
gh pr view <PR number> --json title,body,headRefName,baseRefName,number,url
gh pr diff <PR number> --name-only
- Record the PR title, branch name, and PR URL
- Get the list of changed files
Step 3: Fetch Issue Information (optional)
Extract a Linear Issue ID (USK-XX format) from the PR body.
If found, fetch the Issue description with mcp__linear-server__get_issue.
If not found, leave the Issue-related placeholders empty and continue.
Step 4: Build Product Context
yorishiro-proxy is a network proxy (MCP server) for AI agents.
Provides traffic interception, recording, and replay capabilities for vulnerability assessment.
Architecture: TCP Listener → Protocol Detection → Protocol Handler → Session Recording → MCP Tool
Step 5: Launch Code Review Agent
Read .claude/agents/code-reviewer.md with the Read tool and extract the code block inside the ## Prompt Body section.
Replace placeholders:
{{PR_NUMBER}}→ PR number{{PR_TITLE}}→ PR title{{ISSUE_ID}}→ Issue ID (or "N/A"){{ISSUE_DESCRIPTION}}→ Issue description (or "N/A"){{PRODUCT_CONTEXT}}→ Context built in Step 4{{CHANGED_FILES}}→ List of changed files
Launch with Task tool:
subagent_type:"general-purpose"isolation:"worktree"description:"Code review PR #<N>"prompt: Replaced prompt
Step 6: Report Results
Parse the sub-agent results and report to the user in the following format:
## Code Review Results: PR #<N>
**Verdict**: APPROVED / CHANGES_REQUESTED
**PR**: <PR URL>
### Findings Summary
| ID | Severity | File | Category | Description |
|----|----------|------|----------|-------------|
| F-1 | HIGH | ... | ... | ... |
### Stats
- CRITICAL: X, HIGH: X, MEDIUM: X, LOW: X, NIT: X
Step 7: Worktree Cleanup
After reporting results, delete only the worktree of the sub-agent launched in Step 5.
Use the agent ID from the Task tool return value and run:
git worktree list --porcelain | awk '/^worktree /{print $2}' |
while read -r wt; do
case "$wt" in *"agent-<agentId>"*) git worktree remove "$wt" --force --force 2>/dev/null || true ;; esac
done
git worktree prune
Use the canonical cleanup snippet in
CLAUDE.md→ Agent Isolation Strategy → Worktree Cleanup. Do not construct.claude/worktrees/agent-<id>from an ID (a nested sub-agent's worktree lives inside its parent's, so the path does not exist and the remove silently no-ops), use--force --force(a single--forcefails on a locked worktree), and never select paths withgrep -F -f(this machine'sgrepis ugrep: an empty pattern file matches every line).