Challenge mode reviews - rigorous questioning before approving changes.

MITAuto-check passed

Install Phx Challenge

skills CLI
$ npx skills add oliver-kriska/claude-elixir-phoenix --skill phx-challenge -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install oliver-kriska/claude-elixir-phoenix phx-challenge --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/oliver-kriska/claude-elixir-phoenix.git skills-src && mkdir -p .claude/skills && cp -r skills-src/targets/pi/skills/phx-challenge .claude/skills/phx-challenge && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
phx-challenge
GitHub stars
565
Token cost
~1.2k tokens
SKILL.md length
528 words
Files
1
Skills in repo
109
Repo updated
First seen
Licence
MIT

At a glance

Challenge mode reviews - rigorous questioning before approving changes.

  • Works in 4 steps: No approval without verification - Don't… → Assume bugs exist - Look for edge cases,… → Question everything - Even "obvious"… → …
  • You want thorough scrutiny of Ecto changes
  • SKILL.md covers Iron Laws - Never Violate These, Adversarial Lenses (Apply to…, Challenge Modes and Prior Findings Deduplication…, plus 2 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Phx Challenge is an agent skill from oliver-kriska/claude-elixir-phoenix. Challenge mode reviews - rigorous questioning before approving changes. Use when you want thorough scrutiny of Ecto changes, LiveView events, OTP designs, or PR readiness.

Its SKILL.md is about 1.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

The repository describes itself as: Claude Code plugin for Elixir/Phoenix/LiveView — 26 specialist agents, Iron Laws enforcement, and Tidewave MCP integration. Plan features with parallel research agents, execute… The licence is MIT.

When your agent uses it

  • You want thorough scrutiny of Ecto changes
  • LiveView events

Example prompts

  • “/phx-challenge”

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  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

What it can do on your machine

Read from SKILL.md and the folder at commit 9767a82. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are markdown).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Phx Challenge loads about 1.2k tokens when it runs. Until then it costs about 46 tokens; SKILL.md has 528 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~46
When it runs · the whole SKILL.md, loaded when a task matches
~1.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from oliver-kriska/claude-elixir-phoenix at commit 9767a82, republished under its MIT licence (© oliver-kriska). 528 words, ~1,204 tokens.

Download SKILL.mdSave it as .claude/skills/phx-challenge/SKILL.md (or your agent's skills folder).
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.

Challenge Mode Reviews

Rigorous, critical review patterns inspired by Boris Cherny's "Grill me" approach. Push beyond first solutions to ensure quality.

Iron Laws - Never Violate These

  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

Adversarial Lenses (Apply to ALL Modes)

  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

Challenge Modes

Ecto Challenge (/skill:phx-challenge ecto)

Grill the developer on database changes:

Migration Safety

  • Will this migration lock the table in production?
  • What happens to existing records without the new field?
  • Is the migration reversible?
  • Are there any unsafe operations (column removal, type change)?

Query Performance

  • Have you introduced any N+1 queries?
  • Are there missing indexes for new WHERE clauses?
  • Will this query scale with data growth?

Schema Integrity

  • Are all constraints enforced at database level?
  • What happens during rolling deployment (old code, new schema)?
  • Are foreign key cascades correct?

Backward Compatibility

  • Will old code work during deployment?
  • Are there any breaking changes to the context API?
LiveView Challenge (/skill:phx-challenge liveview)

Prove the LiveView handles all cases:

Event Coverage

  • List every handle_event clause and expected socket state
  • What happens if socket assigns are missing when event fires?
  • Are there race conditions between user events and server pushes?

PubSub Handling

  • List every handle_info clause and when it's triggered
  • Do all PubSub subscriptions have corresponding handlers?
  • What happens if a message arrives before mount completes?

State Transitions

  • Show the event → handler → state transition table
  • Are all error states handled gracefully?
  • What's the recovery path from each error state?

Memory & Performance

  • Are large lists using streams?
  • Is transient data using temporary_assigns?
  • What's the memory footprint per connected user?
Show full SKILL.md (200 more words)Show less
PR Challenge (/skill:phx-challenge pr)

Senior engineer review checklist:

Must Pass

  • No direct Repo calls in controllers/LiveViews
  • All Ecto queries use explicit preloads
  • Changesets validate all user input
  • No atoms created from params
  • Error cases handled (not just happy path)
  • Tests cover new functionality

Performance

  • No queries in Enum.map loops
  • LiveView streams for lists > 100 items
  • Indexes exist for WHERE clause columns

OTP

  • GenServers have supervision
  • Timeouts set for GenServer.call
  • No unbounded process spawning

Security

  • No SQL injection via raw queries
  • No path traversal in file handling
  • Authorization checks present

Prior Findings Deduplication (MANDATORY)

Run this before analysis so consecutive runs don't re-report identical issues.

  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:
    • Fixed → SKIP | Still present → PERSISTENT (one line) | New → NEW (full analysis) | Reintroduced → REGRESSION
  4. Present: NEW first (full), then PERSISTENT (one-line), then REGRESSION

Example Challenge Output

markdown
## 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

Usage

Run /skill:phx-challenge [mode] to initiate a rigorous review. The reviewer will not approve until all concerns are addressed with evidence.

Example workflow:

  1. Run /skill:phx-challenge ecto after migration changes
  2. Answer each question with code references or test results
  3. Address all concerns before proceeding to PR

© oliver-kriska, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in targets/pi/skills/phx-challenge of oliver-kriska/claude-elixir-phoenix.

Open the folder on GitHubat commit 9767a82

Compare with similar skills

Phx Challenge next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Phx Challenge compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Phx Challenge this skilloliver-kriska/claude-elixir-phoenix565—~1.2kAutomated safety check: PassMIT
Agent Challengesruvnet/ruflo74k2 repos~995Automated safety check: PassMIT
Challengealirezarezvani/claude-skills28k1 repos~1.7kAutomated safety check: PassMIT
Operator Approval Loopaffaan-m/ECC277k—~3.3kAutomated safety check: PassMIT
Approvedyoshikawa/rulesync1.5k—~429Automated safety check: PassMIT
Ask User QuestionMemTensor/MemOS12k—~1kAutomated safety check: PassApache-2.0

Similar skills

  • Agent Challenges

    ruvnet/ruflo

    Agent skill for challenges - invoke with $agent-challenges. An agent skill from ruvnet/ruflo.

    74k GitHub starsUsed in 2 repos~995 tokens
    Auto-check passed
  • Challenge

    alirezarezvani/claude-skills

    Pre-mortem plan analysis. An agent skill from alirezarezvani/claude-skills.

    28k GitHub starsUsed in 1 repo~1.7k tokens
    Business, Finance & HRAuto-check passed
  • Operator approval contract with internal filing notices for agent-drafted outbound messages, hashed drafts, epoch-keyed decisions, durable delivery claims and receipts, and a pre-draft baseline gate.

    277k GitHub stars~3.3k tokensUpdated today
    Auto-check passed
  • Approve

    dyoshikawa/rulesync

    Approve a pull request using gh pr review --approve. An agent skill from dyoshikawa/rulesync.

    1.5k GitHub stars~429 tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Ask User Question

    MemTensor/MemOS

    Shows a question as a modal in the interface to clarify a task, collect a preference or get approval, since the user cannot see terminal output.

    12k GitHub stars~1k tokensUpdated 2 days ago
    Agent WorkflowsAuto-check passed
  • Maps BiSheng's approval-center architecture to exact service files and methods, so a change to approval logic can be located without searching the whole repo.

    12k GitHub stars~4.4k tokensUpdated yesterday
    DevelopmentAuto-check passed

More from oliver-kriska/claude-elixir-phoenix

All 109 skills in this repo
  • Codex Ab

    oliver-kriska/claude-elixir-phoenix

    Run an A/B codex review experiment — holistic codex review vs 3 focused dimension passes (security, ecto, liveview) on the branch diff, classify findings, report a panel-value verdict.

    565 GitHub stars~977 tokensUpdated 5 days ago
    Auto-check passed
  • Audit

    oliver-kriska/claude-elixir-phoenix

    Project health audit and health check — architecture, performance, tests, dependencies, code quality.

    565 GitHub stars~2k tokensUpdated 5 days ago
    Auto-check passed
  • Compound Docs

    oliver-kriska/claude-elixir-phoenix

    Searchable Elixir/Phoenix/Ecto solution documentation system with; Use when consulting past solutions…

    565 GitHub stars~528 tokensUpdated 5 days ago
    Auto-check passed
  • Compound Docs

    oliver-kriska/claude-elixir-phoenix

    Searchable Elixir/Phoenix/Ecto solution documentation system with YAML frontmatter.

    565 GitHub stars~547 tokensUpdated 5 days ago
    Auto-check passed
  • Deploy

    oliver-kriska/claude-elixir-phoenix

    Elixir/Phoenix deployment patterns — Dockerfile, fly.toml, runtime.exs, mix release, rel/ overlays.

    565 GitHub stars~1.1k tokensUpdated 5 days ago
    Auto-check passed
  • Deps Update

    oliver-kriska/claude-elixir-phoenix

    Bump outdated Hex deps — inventory, snapshot changelogs, update, fix breaks, split reviewable PRs (patches bundled, majors solo).

    565 GitHub stars~1.4k tokensUpdated 5 days ago
    Auto-check passed

Questions about Phx Challenge

What does Phx Challenge do?

Challenge mode reviews - rigorous questioning before approving changes. Phx Challenge is an agent skill from oliver-kriska/claude-elixir-phoenix. Challenge mode reviews - rigorous questioning before approving changes.

When should I use Phx Challenge?

Phx Challenge fits situations like: you want thorough scrutiny of Ecto changes; liveView events.

How do I install Phx Challenge in Claude Code?

Run `npx skills add oliver-kriska/claude-elixir-phoenix --skill phx-challenge -a claude-code`. Or copy the skill folder (targets/pi/skills/phx-challenge in oliver-kriska/claude-elixir-phoenix) into .claude/skills/phx-challenge in your project. Claude Code loads it when a task matches its description.

How do I install Phx Challenge in Codex?

Run `npx skills add oliver-kriska/claude-elixir-phoenix --skill phx-challenge -a codex`. Or copy the skill folder (targets/pi/skills/phx-challenge in oliver-kriska/claude-elixir-phoenix) into .agents/skills/phx-challenge in your project. Codex loads it when a task matches its description.

Can I use Phx Challenge in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add oliver-kriska/claude-elixir-phoenix --skill phx-challenge -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/phx-challenge, .gemini/skills/phx-challenge, .github/skills/phx-challenge and .opencode/skills/phx-challenge in your project.

What does Phx Challenge need to run?

SKILL.md names no scripts, command-line tools or credentials: Phx Challenge is instructions for the agent only.

Does Phx Challenge access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Phx Challenge safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Phx Challenge use?

Phx Challenge is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Phx Challenge use?

About 1.2k tokens (SKILL.md is roughly 4.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Phx Challenge?

Skills that share tags, products or a category with Phx Challenge: Agent Challenges (ruvnet/ruflo, 74k stars), Challenge (alirezarezvani/claude-skills, 28k stars), Operator Approval Loop (affaan-m/ECC, 277k stars) and Approve (dyoshikawa/rulesync, 1.5k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Phx Challenge?

oliver-kriska (a GitHub user) maintains it in oliver-kriska/claude-elixir-phoenix, which has 565 GitHub stars. The repository holds 109 skills in this directory. The repository was last updated on October 5, 2026.

Source: oliver-kriska/claude-elixir-phoenix on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.