By j-morgan6
Enforce idiomatic Elixir and Phoenix LiveView patterns including Ecto schemas, PubSub, Channels, Oban jobs, GenServer supervision, authentication, authorization, deployment, and security best practices via Claude Code skills and hooks.
Use when adding real-time updates via Phoenix.PubSub — subscribe/broadcast topology, topic naming, handle_info message handling.
Use when implementing file uploads — allow_upload, consume_uploaded_entries, validation, dev vs production storage (local, S3/:external), serving files.
Use when code touches user input, tokens, redirects, raw SQL, or logging — injection, XSS, atom exhaustion, timing attacks, audit tooling.
Use when adding logging, metrics, or instrumentation — structured Logger usage, telemetry handler attachment, Ecto/Phoenix telemetry events.
Use when writing or fixing ExUnit tests — case templates, async safety, fixtures, LiveView test helpers, error-path coverage.
Executes bash commands
Hook triggers when Bash tool is used
Modifies files
Hook triggers on file write and edit operations
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Version: 2.4.0 | Changelog
An essential development guide for Claude Code that ensures idiomatic Elixir and Phoenix LiveView code. This plugin includes enforced skills, plugin-native hooks, automated code quality analysis, and reference documentation that actively guide and validate your Elixir development workflow.
v2.4.0 Released! Hooks now ship and run entirely inside the plugin — no settings.json merging, no script installation. See CHANGELOG.md for details.
Consolidated domain expertise with enforced patterns:
Each skill includes a RULES section with 6-11 non-negotiable patterns that must be followed.
Note on auto_suggest metadata: Skills include auto_suggest: true and file_patterns metadata for future Claude Code enhancements. These fields are not currently active in the Claude Code runtime but are included for forward compatibility.
Hooks live in hooks/hooks.json and activate automatically when the plugin is installed — no settings.json editing, no script copying:
| Event | Check |
|---|---|
| SessionStart | Detects Phoenix/LiveView/Ecto/Oban and caches project facts (in the plugin data dir, never your repo) |
| PreToolUse (Bash) | Blocks mix ecto.reset and git push --force (suggests --force-with-lease) |
| PostToolUse (Write/Edit on .ex/.exs/.heex) | Security (String.to_atom, SQL-injection fragments, open redirects, raw/1, secrets in logs, timing-unsafe ==, IO.inspect/dbg debug calls), Phoenix deprecations (form_for, live_redirect/live_patch, @current_user under 1.8 scopes), missing @impl true, migration FK/on_delete safety |
Feedback works through exit code 2 with the reason on stderr — Claude reads that and fixes the issue. Exit 0 means no findings; there is no separate "warning" tier. See INSTALL-HOOKS.md for the full write-up, manual install (without the plugin manager), and how to write your own hooks.
Automated code quality analysis tools, run on demand from a checkout (they are not installed anywhere by the plugin manager or install.sh):
elixir scripts/code_quality.exs scan lib/)Detailed reference material in docs/reference/ for complex tasks:
Enforce best practices and prevent common mistakes when adding a native iOS client to an existing web application. SwiftUI, iOS 17+, XcodeGen, App Store pipeline.
npx claudepluginhub j-morgan6/elixir-phoenix-guide --plugin elixir-phoenix-guideElixir/Phoenix/LiveView development with specialist agents, Iron Laws, and Tidewave MCP integration
Paradigm-shifting skills for Elixir, Phoenix, and OTP development
Elixir, Phoenix, and LiveView code review and documentation skills
Phoenix Framework skills for building web applications
Functional programming with Elixir, OTP patterns, Phoenix framework, and distributed systems
Lazy senior dev mode. Forces the simplest, shortest solution that actually works: YAGNI, stdlib first, no unrequested abstractions.