一键导入
phx-review
Review code with parallel agents — tests, security, Ecto, LiveView, Oban. Use after implementation to catch bugs and anti-patterns before committing.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Review code with parallel agents — tests, security, Ecto, LiveView, Oban. Use after implementation to catch bugs and anti-patterns before committing.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
CONTRIBUTOR TOOL - Cut a plugin release: bump plugin.json version, finalize CHANGELOG, update README if needed, gate on make ci, commit, tag vX.Y.Z, and create the GitHub release. Use when shipping a new plugin version. NOT distributed.
OTP/BEAM patterns and Elixir idioms — GenServer, Supervisor, Task, Registry, pattern matching, with chains, pipes. Use when designing processes or debugging BEAM issues.
Verify Elixir/Phoenix changes — compile, format, and test in one loop. Use after implementation, before PRs, or after fixing bugs.
Project health audit and health check — architecture, performance, tests, dependencies, code quality. Use when assessing overall project health, before releases, or after refactors.
Recommend safe Bash permissions for Elixir mix commands in settings.json. Use when permission prompts slow workflow, "fix permissions", "reduce prompts", "auto-allow mix".
Analyze Elixir/Phoenix performance — N+1 queries, assign bloat, ecto optimization, genserver bottlenecks. Use when slowness, timeouts, or high memory reported.
| name | phx:review |
| description | Review code with parallel agents — tests, security, Ecto, LiveView, Oban. Use after implementation to catch bugs and anti-patterns before committing. |
| effort | high |
| argument-hint | ["test|security|oban|deploy|iron-laws|all"] |
Review code by spawning parallel specialist agents. Find and explain issues — do NOT create tasks or fix anything.
/phx:review # Auto-detects task ID from branch/commits
/phx:review test # Review test files only
/phx:review security # Run security audit only
/phx:review oban # Review Oban workers only
/phx:review deploy # Validate deployment config
/phx:review iron-laws # Check Iron Law violations only
/phx:review ENA-8931 # Force Linear issue
/phx:review #42 # Force GitHub issue
/phx:review .claude/plans/auth/plan.md # Force plan / spec file
/phx:review --no-requirements # Skip requirements coverage check
$ARGUMENTS = Focus area, task ID, or path to plan/spec file.
When no requirements argument is passed, the skill auto-detects a task ID
from the current git branch name and recent commits (see
${CLAUDE_SKILL_DIR}/references/requirements-detection.md).
CRITICAL: Create output dirs BEFORE spawning agents — agents cannot create directories and writes will fail.
.claude/plans/*/ (default: "review")mkdir -p ".claude/plans/${SLUG}/reviews" ".claude/plans/${SLUG}/summaries" .claude/reviewsgit diff --name-only HEAD~5 and git diff --name-only main.claude/plans/${SLUG}/scratchpad.md for planning decisions and rationale.claude/plans/${SLUG}/reviews/ for prior output; if present, include a
consolidated summary as "PRIOR FINDINGS" with: "Focus on NEW issues. Mark
still-present issues as PERSISTENT."--no-requirements)Find a task/spec whose requirements should be cross-checked against the diff.
Priority order (stop at first match): explicit arg → conversation context →
branch regex → commit subjects → latest plan → none. Full table, regexes,
and fetch mapping in ${CLAUDE_SKILL_DIR}/references/requirements-detection.md.
Fetch the detected source into .claude/plans/${SLUG}/reviews/.requirements-input.md
(Linear via mcp__linear__get_issue, GitHub via gh issue view, file via Read).
Record REQ_SOURCE label (e.g. "Linear ENA-8931") for the verifier heading.
On fetch failure, set SOURCE_STATUS=FETCH_FAILED and continue — verifier
will emit NOT AVAILABLE rather than block the review.
NEVER spawn the same agent role twice per review. One pass per role. NEVER analyze code yourself — use the Agent tool only. Zero agents = failure.
TaskCreate and TaskUpdate to in_progress/phx:review or /phx:review all: select agents dynamically per the
selection table in ${CLAUDE_SKILL_DIR}/references/agent-spawning.mdtest|security|oban|deploy|iron-laws): spawn only the
matching specialist from the focused mode table in the same reference--no-requirements
not passed): add elixir-phoenix:requirements-verifier to the same
parallel batch. Pass these prompt inputs: REQUIREMENTS_TEXT (content
of .requirements-input.md), REQUIREMENTS_SOURCE (REQ_SOURCE label),
DIFF_FILES (git diff --name-only output), SOURCE_STATUS (only if
FETCH_FAILED), output_file: .claude/plans/{slug}/reviews/requirements.mdmode: "bypassPermissions" and run_in_background: trueoutput_file per-agent (mapping in the reference)git diff --name-only output with
"Focus on NEW code. Pre-existing: one-line {file}:{line} — {brief}. Do
NOT deep-analyze unchanged files."Wait for ALL agents to complete. Do NOT report status until every agent
completes. Mark each task completed via TaskUpdate as it finishes.
Missing file fallback — after each agent finishes, verify its expected
output_file exists. If missing (turn exhaustion, error):
.claude/plans/{slug}/scratchpad.md:
[HH:MM] WARN: {agent} did not write {expected_path} — extracting from message⚠️ EXTRACTED FROM AGENT MESSAGE (see scratchpad) — never silentVerification-runner fallback — if it times out, run directly:
mix compile --warnings-as-errors && mix format --check-formatted $(git diff --name-only HEAD~5 | grep '\.exs\?$' | tr '\n' ' ') && mix credo --strict && mix test
Context supervision — for 4+ agents, spawn elixir-phoenix:context-supervisor:
Prompt: "Compress review agent output.
input_dir: .claude/plans/{slug}/reviews
output_dir: .claude/plans/{slug}/summaries
output_file: review-consolidated.md
priority_instructions: BLOCKERs and WARNINGs: KEEP ALL.
SUGGESTIONs: COMPRESS similar ones into groups.
Deconfliction: when iron-law-judge and elixir-reviewer
flag same code, keep iron-law-judge finding."
Skip the supervisor for focused (1-agent) reviews — read output directly.
Before writing the review, apply these overriding filters to each finding:
Demote or remove findings that fail filters 1-4. Mark pre-existing per filter 5.
Read consolidated/agent output. Write to .claude/plans/{slug}/reviews/{feature}-review.md
with verdict: PASS | PASS WITH WARNINGS | REQUIRES CHANGES | BLOCKED.
Requirements Coverage in verdict: if the verifier ran, read its summary line and fold into the verdict:
UNMET → escalate to REQUIRES CHANGES (even if code-quality PASS)PARTIAL (no UNMET) → downgrade PASS → PASS WITH WARNINGSNOT AVAILABLE / all MET / UNCLEAR only → no verdict changeInsert the verifier's ## Requirements Coverage block into the
review document before the per-agent findings so it's the first
thing the user sees.
STOP and present the review. Do NOT create tasks or fix anything.
On BLOCKED or REQUIRES CHANGES: Show finding count by severity,
then offer via AskUserQuestion: /phx:triage (recommended), /phx:plan,
fix directly, or "I'll handle it myself".
On PASS / PASS WITH WARNINGS: Suggest /phx:compound, /phx:learn-from-fix.
Convention extraction: After presenting findings, offer: "Any findings
to suppress or enforce as conventions?" See ${CLAUDE_SKILL_DIR}/references/conventions.md.
/phx:plan and /phx:work/phx:plan → /phx:work → /phx:review (YOU ARE HERE) → Blocked? /phx:triage or /phx:plan | Pass? /phx:compound
See: ${CLAUDE_SKILL_DIR}/references/review-template.md, ${CLAUDE_SKILL_DIR}/references/example-review.md, ${CLAUDE_SKILL_DIR}/references/blocker-handling.md, ${CLAUDE_SKILL_DIR}/references/requirements-detection.md