From elixir-phoenix
Conducts rigorous challenge reviews of Phoenix Ecto migrations/queries, LiveView events/state transitions, and PRs to uncover bugs, verify safety, and ensure quality before approval.
npx claudepluginhub oliver-kriska/claude-elixir-phoenix --plugin elixir-phoenixThis skill uses the workspace's default tool permissions.
Rigorous, critical review patterns inspired by Boris Cherny's "Grill me" approach. Push beyond first solutions to ensure quality.
Generates design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
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 changes