plugins/elixir-phoenix/skills/pr-review/SKILL.md
Address PR review comments on Elixir/Phoenix code — fetch comments, draft responses, optionally fix code. Use when the user shares a PR URL or mentions reviewer feedback.
npx skillsauth add oliver-kriska/claude-elixir-phoenix phx: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.
Fetch PR review comments, categorize them, draft responses, and optionally apply code fixes.
/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 = PR number (or URL), optionally followed by --fix.
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.
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 |
For each code-change comment:
path and positionFor 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}
If --fix flag provided AND user approves:
mix compile --warnings-as-errors && mix testSTOP 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}".
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
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
${CLAUDE_SKILL_DIR}/references/response-patterns.md — Response templates and common patternstools
Scope or freeze which files Claude can edit during debugging, a refactor, or review. Use when edits should stay in specific dirs, or for a read-only investigate lock. Backed by a sentinel + PreToolUse hook.
development
Ash Framework — resources, actions, policies, aggregates, calculations, AshPhoenix.Form, LiveView, migrations. Use when generating resources via mix ash.codegen, editing changes, checks, types, validations, or domain code interfaces.
development
Reduce mix output noise (5-15% token savings) by installing rtk filters that compress mix test/credo/dialyzer/compile output before it reaches Claude. Use when long mix output floods context.
development
Narrow bare rescue in Elixir so real errors like KeyError and typos propagate instead of being swallowed. Use to audit rescues and refactor error handling.