targets/codex/skills/phx-challenge/SKILL.md
Challenge mode reviews - rigorous questioning before approving changes. Use when you want thorough scrutiny of Ecto changes, LiveView events, OTP designs, or PR readiness.
npx skillsauth add oliver-kriska/claude-elixir-phoenix phx-challengeInstall 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.
Rigorous, critical review patterns inspired by Boris Cherny's "Grill me" approach. Push beyond first solutions to ensure quality.
$phx-challenge ecto)Grill the developer on database changes:
Migration Safety
Query Performance
Schema Integrity
Backward Compatibility
$phx-challenge liveview)Prove the LiveView handles all cases:
Event Coverage
handle_event clause and expected socket statePubSub Handling
handle_info clause and when it's triggeredState Transitions
Memory & Performance
$phx-challenge pr)Senior engineer review checklist:
Must Pass
Performance
OTP
Security
CRITICAL: Prevents re-discovering identical issues across consecutive runs.
.claude/plans/*/reviews/ and .claude/reviews/ for prior findings## Challenge: Ecto — Orders Migration
### FINDING 1: Table lock risk (HIGH)
AddColumn on `orders` (2.1M rows) will lock table during deploy.
**Proof needed**: Run `SELECT count(*) FROM orders` — if >1M, use
`ALTER TABLE ... ADD COLUMN ... DEFAULT NULL` (no lock).
### FINDING 2: Missing index (MEDIUM)
New `WHERE status = ?` query on line 45 has no index.
**Action**: Add `create index(:orders, [:status])` to migration.
### Status: BLOCKED — 2 unresolved findings
Run $phx-challenge [mode] to initiate a rigorous review. The reviewer will not approve until all concerns are addressed with evidence.
Example workflow:
$phx-challenge ecto after migration changestools
Compatibility alias for the Elixir/Phoenix plugin's LiveView assigns audit. Invoke explicitly with /lv:assigns.
development
Trace Elixir call trees from entry points via mix xref. Use when debugging data flow, planning signature changes, or understanding how a bug reaches code.
tools
Compatibility alias for the Elixir/Phoenix plugin's N+1 query checker. Invoke explicitly with /ecto:n1-check.
tools
Compatibility alias for the Elixir/Phoenix plugin's Ecto constraint debugger. Invoke explicitly with /ecto:constraint-debug.