Review code with parallel agents — tests, security, Ecto, LiveView, Oban. Use after implementation to catch bugs and anti-patterns before committing.
npx skills add https://github.com/oliver-kriska/claude-elixir-phoenix --skill review
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
/phx:review --codex # Add Codex CLI as cross-model reviewer
$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 branch 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 aconsolidated 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 theselection table in ${CLAUDE_SKILL_DIR}/references/agent-spawning.md
test|security|oban|deploy|iron-laws): spawn only thematching specialist from the focused mode table in the same reference
--no-requirementsnot passed): add phx: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.md
run_in_background: true. Do not pass thedeprecated Agent mode parameter; Claude Code 2.1.212+ ignores it and
subagents inherit the parent session's permission mode
output_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."
--codex: add phx:codex-reviewer to the same batch(prompt template in agent-spawning.md). Missing CLI degrades to SKIPPED.
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 silent
Verification-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 phx: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:
[codex]? → mark HIGH CONFIDENCEDemote 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 .claude/plans/{slug}/reviews/{feature}-review.md (converts
findings into a follow-up plan — pass the review file path, not a
re-description), fix directly (/phx:codex-loop when codex ran), 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:workmaking claims about CI/CD or external services
/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
Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
Replace with description of the skill and when Claude should use it.
Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies
This skill should be used when the user wants to "create a skill", "add a skill to plugin", "write a new skill", "improve skill description", "organize skill content", or needs guidance on skill structure, progressive disclosure, or skill development best practices for Claude Code plugins.
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
Use when creating new skills, editing existing skills, or verifying skills work before deployment
Take oliver-kriska/review from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.