· Changelog A Claude Code plugin (with Codex support for the skills) that keeps Claude's Elixir and Phoenix code idiomatic and current.
> /plugin marketplace add j-morgan6/elixir-phoenix-guide> /plugin install elixir-phoenix-guide@elixir-phoenix-guide
A Claude Code plugin (with Codex support for the skills) that keeps Claude's Elixir and Phoenix code idiomatic and current. It ships 24 skills checked against Phoenix 1.8's generators, plugin-native hooks that catch dangerous commands and risky code as Claude writes it, and on-demand analysis scripts.
v2.6.0 — five new skills, each verified against the library source and a generated Phoenix 1.8 app: Phoenix 1.8 scopes and generators, Tailwind v4 + daisyUI, zero-downtime Ecto migrations, Ecto query performance, and HTTP clients with Req. Codex installs the plugin directly with
codex plugin add. See CHANGELOG.md.
Each skill opens with a RULES section and a "Verified against" line naming the library versions it was checked against. Skills load on demand when Claude's task matches their description.
with, error contracts, modern Elixir (1.18+): type checker, JSON, dbg; Phoenix project layout referenceto_form, phx-change), streams, assign_async/start_async, JS commands, colocated hooks; LiveView checklist and JS interop referencesRepo.transact; Ecto referenceallow_upload, content-type allowlists, magic-byte checks, external uploads, authorized downloadsReq.Test; testing referenceUserAuth: on_mount, live_session, mount_current_scope, sudo mode, logout disconnectshandle_info, Presence in LiveView%Scope{}-first contexts, ownership checks, policies, mass-assignment safetycast_assoc/cast_embed, inputs_for sort/drop params, on_replace, cascades, Multiexternal:), CSP, safe deserialization, Sobelowmix phx.gen.release --docker, runtime.exs, release migrations, SSL, rolling deploys, health checksintercept/handle_out, PresenceNew in 2.6.0:
Longer reference material lives next to the skill that uses it (skills/<skill>/*.md) and Claude reads it only when needed.
Hooks live in hooks/hooks.json and activate when the plugin is installed. They need jq.
| Event | Check | Result |
|---|---|---|
| SessionStart | Project summary for Claude: Phoenix/LiveView versions (locked and required), scopes, Ecto adapter, Oban, umbrella apps; warns when jq is missing | context |
| PreToolUse (Bash) | mix ecto.reset / mix ecto.drop unless MIX_ENV=test | block |
| PreToolUse (Bash) | git push --force, -f, -uf, +refspec (--force-with-lease and --force-if-includes allowed) | block |
| PostToolUse (Write/Edit) | Interpolated SQL in Repo.query/SQL.query or fragment(); redirect(external: params…); removed/deprecated APIs (form_for, live_redirect, live_patch, push_redirect) | block |
| PostToolUse (Write/Edit) | String.to_atom/1, raw/1, Logger interpolating secrets, IO.inspect/dbg, timing-unsafe == on secrets, missing @impl true, migration FK without index or on_delete, @current_user in a scopes app | review |
additionalContext); Claude decides, nothing is blocked.@doc text, and skip tests, deps/, _build/ and node_modules/.EPG_ALLOW=force_push (or ecto_reset, ecto_drop) or set that variable in Claude Code's environment.See INSTALL-HOOKS.md for details and known limits.
Shipped with the plugin under scripts/ and run on demand (the code-quality skill tells Claude how):
mix compile --warnings-as-errors and mix xref.lib/ (or apps/*/lib in an umbrella)Note: Official marketplace publication is in progress. Once available, installation will be even simpler through the official Claude Code marketplace.
In a Claude Code session:
# Step 1: Add the marketplace (first time only)
/plugin marketplace add j-morgan6/elixir-phoenix-guide
# Step 2: Install the plugin
/plugin install elixir-phoenix-guide@elixir-phoenix-guide
Skills and hooks activate automatically — nothing else to configure. Optional extras (the CLAUDE.md project template, cleanup of legacy pre-2.4.0 installs) are available via ./install.sh from a checkout:
git clone https://github.com/j-morgan6/elixir-phoenix-guide.git
cd elixir-phoenix-guide
./install.sh
The skills also work in OpenAI Codex (hooks are Claude Code only). Install them as a Codex plugin:
codex plugin marketplace add j-morgan6/elixir-phoenix-guide
codex plugin add elixir-phoenix-guide@elixir-phoenix-guide
Codex reads the same marketplace as Claude Code and the manifest in .codex-plugin/plugin.json, and loads every skill with its reference files. To update, upgrade the marketplace (codex plugin marketplace upgrade elixir-phoenix-guide) and re-add the plugin.
Without the plugin system, ./install-codex.sh from a checkout copies the skill directories into ${CODEX_HOME:-~/.codex}/skills instead (keep the checkout: the code-quality skill runs its scripts from there).
If you already have the plugin installed:
# Open the interactive plugin manager
/plugin
# Select "Marketplaces" → "elixir-phoenix-guide" → "Update"
# Then update the plugin from the menu
See CHANGELOG.md for full release notes and version history.
Once installed, Claude Code will automatically:
Before (without optimization):
def process(user) do
if user.status == :active do
if user.role == :admin do
:allowed
else
:denied
end
else
:inactive
end
end
After (with skills guiding idiomatic Elixir):
def process(%{status: :active, role: :admin}), do: :allowed
def process(%{status: :active}), do: :denied
def process(_), do: :inactive
mix ecto.reset/ecto.drop outside test, force pushes)redirect(external:) from params, removed Phoenix APIsString.to_atom/1, raw/1, secrets in Logger interpolation, timing-unsafe comparisons, debug calls, missing @impl true, migration FK indexes and on_delete, @current_user in scope-based appsThis plugin was created to ensure Claude Code consistently produces idiomatic Elixir and Phoenix code by making best practices impossible to ignore, not just available. It combines enforced patterns, real-time validation, and comprehensive guidance for all Elixir development work.
For project-specific instructions, you can create a CLAUDE.md file in your project root with:
This file will be automatically loaded by Claude Code when working in your project.
elixir-phoenix-guide is a Claude Code plugin with 24 hand-picked skills, indexed on Flowy in the Development category. Install it with the command on its page. It includes code-quality, deployment-gotchas, ecto-changeset-patterns. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.
Is this plugin yours?
Claim it with GitHubSubmit a pluginPromote it