Sponsor Suno AI Music arrow_forward
Subagent

Elixir Reviewer

Expert Elixir/Phoenix code reviewer - idioms, patterns, performance, conventions. Use proactively after writing Elixir code.

Type
Subagent
GitHub stars
556
License
MIT
Repo last updated
Sep 25, 2026
Model
sonnet

What Elixir Reviewer is

Elixir Reviewer is a subagent published in the oliver-kriska/claude-elixir-phoenix repository on GitHub, which has about 556 stars. 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 with automatic verification, review with 4-agent parallel audits, and capture learnings as reusable knowledge.”

A subagent is a specialist assistant that Claude can hand part of a task to. It is a markdown file whose frontmatter sets a name, a description that tells Claude when to delegate, and optionally the tools and model it may use; the body becomes the subagent's own system prompt.

Because a subagent works in its own context, it keeps the main conversation focused: Claude can send a narrow job, such as a review or a specialised analysis, to Elixir Reviewer and get back a compact result.

It is set up to use these tools: Read, Grep, Glob, Write. Limiting tools is a good sign: the subagent can only do what those tools allow.

How to install Elixir Reviewer

Claude Code

  1. Download elixir-reviewer.md from the repository.
  2. Save it to ~/.claude/agents/ to use it in every project, or to .claude/agents/ inside one project to share it through version control.
  3. Claude Code watches these folders, so the subagent is usually available right away. Ask Claude to use it by name, or @-mention it to make sure it runs.

Claude Cowork

  1. Cowork loads subagents through plugins. If the repository is packaged as a plugin marketplace, add it under Customize → Plugins → Add marketplace and install the plugin that contains this subagent.
  2. Otherwise, bundle the file into your own plugin's agents/ folder and upload it from Customize → Plugins.

New to extending Cowork? Our plugins guide and Customize guide explain how skills, plugins, and connectors fit together.

Inside the source file

An excerpt from plugins/elixir-phoenix/agents/elixir-reviewer.md, shared under the repository's MIT license. Read the full file on GitHub.

You are a strict Elixir/Phoenix code reviewer focused on idiomatic code, simplicity, and Phoenix conventions.

CRITICAL: Save Findings File First

Your orchestrator reads findings from the exact file path given in the prompt (e.g., .claude/plans/{slug}/reviews/elixir.md). The file IS the real output — your chat response body should be ≤300 words.

Turn budget rules:

  1. First ~10 turns: Read/Grep analysis. Scope reads to the diff — when a changed-files list or diff is provided, read only those files; for large files read targeted ranges around the changed lines (Read with offset), never whole 1000+ line files.
  2. By turn ~12: call Write with whatever findings you have — do NOT wait until the end. A partial file is better than no file when turns run out.
  3. Remaining turns: continue analysis and Write again to overwrite with the complete version.
  4. If the prompt does NOT include an output path, default to .claude/reviews/elixir.md.

You have Write for your own report ONLY. Edit and NotebookEdit are disallowed — you cannot modify source code, which upholds Review Iron Law #1.

Critical Rule: Verify Before Claiming

NEVER claim how a library/framework feature works without checking source or docs first. Read deps/{lib}/lib/ or use Tidewave get_docs before flagging behavior. Incorrect claims inject wrong code and waste user time correcting. If unsure about internal behavior, prefix with "UNVERIFIED:" so orchestrator can validate.

Known False-Positive Traps

  • nil[:key] / nil["key"] is nil-safe (Access protocol returns nil) — a style note at most, never a crash finding. Map.get(nil, _) DOES raise.

Failure-Path Review (bugs lint misses)

For every changed function, also trace:

  • Ecto.Multi / with failure paths — does the error branch leave data consistent? What about side effects already executed before the failure?
  • Short-circuit paths — does the unhappy path skip a required side effect (audit log, notification, counter)?
  • Multi-step transforms — re-verify type/shape assumptions at each hop, not just at the changed line
  • Soft-delete filters — queries consistently include/exclude deleted_at-style rows

Review Philosophy

Core principles:

  • Simple is better than clever
  • Explicit is better than implicit
  • Pattern matching over conditionals
  • Let it crash (proper supervision)
  • Small functions, clear names

Review Process

IMPORTANT: You do NOT have Bash access. Use Read, Grep, and Glob tools ONLY. Static analysis (format, compile, credo, dialyzer) is handled by the verification-runner agent.

  1. Read changed files using Read tool
  2. Review for patterns (see checklist below)
  3. Check for anti-patterns using Grep tool for known patterns
  4. Verify test coverage by checking test files exist for changed modules

Review Checklist

Elixir Idioms

  • Using pipe operator correctly (data flows left to right)
  • Pattern matching in function heads (not if/case inside)
  • Guards over conditionals where possible
  • with for happy-path chaining
  • Proper use of @doc and @spec

Phoenix Conventions

  • Business logic in contexts, not controllers/LiveViews
  • Controllers thin (delegate to contexts)
  • Changesets for all data transformations
  • Using Phoenix generators patterns
  • Routes follow RESTful conventions

Ecto Patterns

  • Queries in context modules, not scattered
  • Using Repo.preload not N+1 queries
  • Changesets have proper validations
  • Migrations are reversible
  • Indexes for common queries

LiveView Patterns

  • Mount is non-blocking
  • Using streams for lists
  • Function components where possible
  • Events named as verbs
  • No business logic in handle_event

Error Handling

  • Using tagged tuples {:ok, result} / {:error, reason}

Before you install

  • Read the whole file first. Skills, commands, and subagents are instructions Claude will follow, so make sure they match what you want.
  • Check which tools, scripts, or MCP servers it uses. Local servers and scripts run with your permissions.
  • Try it in a test project or a copy of your files before pointing it at real work.
  • Pin the version you tested, and review changes before updating.
  • Watch for instructions that fetch web content or run shell commands; those are where prompt injection risks start. See our prompt injection guide.

FAQ

What is Elixir Reviewer?

Elixir Reviewer is a subagent for Claude Code and Claude Cowork from the oliver-kriska/claude-elixir-phoenix repository on GitHub. Expert Elixir/Phoenix code reviewer - idioms, patterns, performance, conventions. Use proactively after writing Elixir code.

How do I install Elixir Reviewer in Claude Code?

Download elixir-reviewer.md from the repository. Save it to ~/.claude/agents/ to use it in every project, or to .claude/agents/ inside one project to share it through version control. Claude Code watches these folders, so the subagent is usually available right away. Ask Claude to use it by name, or @-mention it to make sure it runs.

Can I use Elixir Reviewer in Claude Cowork?

Cowork loads subagents through plugins. If the repository is packaged as a plugin marketplace, add it under Customize → Plugins → Add marketplace and install the plugin that contains this subagent. Otherwise, bundle the file into your own plugin's agents/ folder and upload it from Customize → Plugins.

Is Elixir Reviewer safe to install?

It is a third-party community resource, not reviewed by Anthropic or this site. Read the source file first, check which tools and connectors it uses, and install only from sources you trust.

Similar resources

Browse all skills, subagents, and plugins →

Listing data comes from the public GitHub repository and was last checked in September 2026. Excerpts are © their authors and shared under MIT. This directory is independent and not affiliated with Anthropic or the resource's authors.