phx:pr-review
The phx:pr-review skill fetches review comments from Elixir/Phoenix pull requests, categorizes them by type (code changes, questions, nitpicks, discussions), and drafts tailored responses for each. When invoked with a PR number or URL and the optional --fix flag, it can also apply suggested code fixes, run tests, and present changes for user approval before posting responses to the PR.
git clone --depth 1 https://github.com/oliver-kriska/claude-elixir-phoenix /tmp/phx-pr-review && cp -r /tmp/phx-pr-review/plugins/elixir-phoenix/skills/pr-review ~/.claude/skills/phx-pr-reviewSKILL.md
# PR Review Response
Fetch PR review comments, categorize them, draft responses,
and optionally apply code fixes.
## Usage
```
/phx:pr-review 42 # Address comments on PR #42
/phx:pr-review 42 --fix # Address + apply code fixes
/phx:pr-review https://... # Full URL also works
```
## Arguments
`$ARGUMENTS` = PR number (or URL), optionally followed by `--fix`.
## Workflow
### Step 1: Fetch PR Context
Run `gh pr view {number} --json title,body,state,baseRefName,headRefName` for PR metadata.
Run `gh api repos/{owner}/{repo}/pulls/{number}/comments --paginate` and `gh api repos/{owner}/{repo}/pulls/{number}/reviews --paginate` for all review comments.
Run `gh pr diff {number}` for the diff context.
Parse the PR number from `$ARGUMENTS`. If a URL, extract the
number from it. Detect `--fix` flag.
### Step 2: Categorize Comments
Group each comment into one of these categories:
| Category | Signal | Action |
|----------|--------|--------|
| **Code change** | "should be", "change to", "use X instead" | Draft fix + response |
| **Question** | "why", "what if", "how does" | Draft explanation |
| **Nitpick** | "nit:", style-only, formatting | Quick acknowledgment |
| **Praise** | "nice", "good", "LGTM" | No action needed |
| **Discussion** | Architecture, trade-offs, alternatives | Draft thoughtful response |
### Step 3: Map to Code Locations
For each code-change comment:
1. Find the file and line from the comment's `path` and `position`
2. Read the current code at that location
3. Understand the reviewer's suggestion in context
4. Check if the suggestion conflicts with Iron Laws
### Step 4: Draft Responses
For each comment, draft a response following patterns in
`${CLAUDE_SKILL_DIR}/references/response-patterns.md`.
Present ALL draft responses to the user for review:
```
## PR #{number}: {title}
### {n} comments to address
**Code changes ({n}):**
1. {file}:{line} — {reviewer suggestion} → {proposed fix}
**Questions ({n}):**
1. {question summary} → {draft answer}
**Nitpicks ({n}):**
1. {nit} → Acknowledged
**Discussion ({n}):**
1. {topic} → {draft response}
```
### Step 5: Apply Fixes (if --fix)
If `--fix` flag provided AND user approves:
1. Apply code changes from approved code-change responses
2. Run `mix compile --warnings-as-errors && mix test`
3. If tests pass, present the changes
4. Do NOT commit or push — leave that to the user
### Step 6: Post Responses (with user approval)
**STOP and ask user to review all draft responses.**
After user approves (may edit some):
Post each approved response as a reply using `gh api repos/{owner}/{repo}/pulls/{number}/comments/{id}/replies -f body="{response}"`.
## Iron Laws
1. **NEVER auto-post responses** — Always show drafts and get explicit approval
2. **NEVER dismiss a review** — Only the reviewer should dismiss
3. **Iron Laws override reviewer suggestions** — If a reviewer suggests code that violates an Iron Law, explain why in the response
4. **Keep responses constructive** — Acknowledge the feedback, explain reasoning
5. **Separate fixes from responses** — Apply code changes in a separate step
## Integration
```text
PR receives review comments
↓
/phx:pr-review {number} ← YOU ARE HERE
↓
Fix code? → --fix flag applies changes
↓
Post responses (after user approval)
↓
Push changes → user handles git push
```
## Next Steps
After addressing review comments, suggest follow-up:
```
- `/phx:plan` — Create a plan if findings reveal scope gaps
- `/phx:verify` — Run full verification before pushing
- Push changes — user handles git push
```
## References
- `${CLAUDE_SKILL_DIR}/references/response-patterns.md` — Response templates and common patterns|
|
Analyzes skill effectiveness data to identify failure patterns and recommend improvements. Use after /skill-monitor flags underperforming skills.
Run ad-hoc PostgreSQL analytics queries against dev/test database
Find and report technical debt in the codebase
|
|
Guide plugin development workflow — editing skills, agents, hooks, or eval framework in this repo. Use when modifying files in plugins/elixir-phoenix/, lab/eval/, or lab/autoresearch/. Ensures changes pass eval, lint, and tests before committing.