cc-changelog
CONTRIBUTOR TOOL - Track CC changelog, extract new versions since last check, analyze impact on plugin (breaking changes, opportunities, deprecations). Run…
Challenge mode reviews - rigorous questioning before approving changes.
$ npx -y skills add oliver-kriska/claude-elixir-phoenix --skill phx-challenge --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/phx-challengeContext preview
The summary Claude sees to decide when to auto-load this skill.
Challenge mode reviews - rigorous questioning before approving changes.
name: phx-challenge description: Challenge mode reviews - rigorous questioning before approving changes. Use when you want thorough scrutiny of Ecto changes, LiveView events, OTP designs, or PR readiness.
Rigorous, critical review patterns inspired by Boris Cherny's "Grill me" approach. Push beyond first solutions to ensure quality.
1. **No approval without verification** - Don't approve until all concerns addressed 2. **Assume bugs exist** - Look for edge cases, race conditions, missing handlers 3. **Question everything** - Even "obvious" code can hide issues 4. **Demand proof** - Ask for tests, show state transitions, verify behavior
1. **"What Would Break This?"** — Production failure modes under load, during deploys, with unexpected data 2. **"Assumption Stress Test"** — List every assumption; which are most fragile? 3. **"Contradictions Finder"** — Find contradictions between tests/implementation, docs/behavior, or within the changeset
Grill the developer on database changes:
**Migration Safety**
**Query Performance**
**Schema Integrity**
**Backward Compatibility**
Prove the LiveView handles all cases:
**Event Coverage**
**PubSub Handling**
**State Transitions**
**Memory & Performance**
Senior engineer review checklist:
**Must Pass**
**Performance**
**OTP**
**Security**
CRITICAL: Prevents re-discovering identical issues across consecutive runs.
1. **Search** `.claude/plans/*/reviews/` and `.claude/reviews/` for prior findings 2. **Read ALL** prior findings before analyzing code 3. **Check each finding** against priors:
4. **Present**: NEW first (full), then PERSISTENT (one-line), then REGRESSION
## 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:
1. Run `phx-challenge ecto` after migration changes 2. Answer each question with code references or test results 3. Address all concerns before proceeding to PR
Docs: phxagents.dev -- install guides per runtime, the runtime compatibility matrix, all 26 Iron Laws, and a browsable skill and agent catalog. Claude Code is great.
Repo: oliver-kriska/claude-elixir-phoenix
CONTRIBUTOR TOOL - Track CC changelog, extract new versions since last check, analyze impact on plugin (breaking changes, opportunities, deprecations). Run…
Run an A/B codex review experiment — holistic codex review vs 3 focused dimension passes (security, ecto, liveview) on the branch diff, classify findings,…
CONTRIBUTOR TOOL - Validate plugin against latest Claude Code documentation. Catches breaking changes, deprecations, discovers new features. Run before…
Guide plugin development workflow — editing skills, agents, hooks, or eval framework in this repo. Use when modifying files in plugins/elixir-phoenix/,…
Generate X/Twitter release promotion posts with ASCII tables and CodeSnap rendering. Use when writing release posts, promotion tweets, plugin announcements, or…
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…