cc-changelog
CONTRIBUTOR TOOL - Track CC changelog, extract new versions since last check, analyze impact on plugin (breaking changes, opportunities, deprecations). Run…
Analyze Elixir/Phoenix performance — N+1 queries, assign bloat, ecto
$ npx -y skills add oliver-kriska/claude-elixir-phoenix --skill phx-perf --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/phx-perfContext preview
The summary Claude sees to decide when to auto-load this skill.
Analyze Elixir/Phoenix performance — N+1 queries, assign bloat, ecto
name: phx-perf description: Analyze Elixir/Phoenix performance — N+1 queries, assign bloat, ecto optimization, genserver bottlenecks. Use when slowness, timeouts, or high memory reported.
Analyze code for performance issues across Ecto, LiveView, and OTP layers. Prioritize findings by impact and effort.
phx-perf # Analyze full project phx-perf lib/my_app/accounts.ex # Analyze specific module phx-perf --focus ecto # Ecto queries only phx-perf --focus liveview # LiveView memory only phx-perf --focus otp # OTP bottlenecks only
`$ARGUMENTS` = Optional module/context path and `--focus` flag.
1. **MEASURE BEFORE OPTIMIZING** — Never optimize without evidence of a problem 2. **DATABASE FIRST** — 90% of Elixir performance issues are query-related 3. **ONE CHANGE AT A TIME** — Isolate optimizations to measure impact 4. **NEVER benchmark in dev mode** — Always use `MIX_ENV=prod` for performance measurements; dev mode includes code reloading, debug logging, and unoptimized compilation that invalidate results
Check specific file if provided. Otherwise scan full project:
# Find hot paths: contexts, LiveViews, workers find lib/ -name "*.ex" | head -50
Spawn analysis agents in parallel based on focus:
**Ecto Track** (default or `--focus ecto`):
Spawn `phx:elixir-reviewer` with prompt: "Analyze for N+1 queries, missing preloads, unindexed queries, and inefficient patterns. Check: `Repo.all` in loops, `Enum.map` with Repo calls, missing `preload`, queries without indexes on WHERE/JOIN columns."
**LiveView Track** (default or `--focus liveview`):
Spawn `phx:elixir-reviewer` with prompt: "Analyze LiveViews for memory issues: large assigns, missing streams for lists, assigns that grow unbounded, heavy `handle_info` processing, missing `assign_async` for slow ops."
**OTP Track** (only with `--focus otp`):
Spawn `phx:otp-advisor` with prompt: "Analyze for OTP bottlenecks: GenServer mailbox growth, synchronous calls in hot paths, missing Task.async for parallel work, ETS opportunities for read-heavy state."
Score each finding on a 2x2 matrix:
| | Low Effort | High Effort | |---|---|---| | **High Impact** | DO FIRST | PLAN | | **Low Impact** | QUICK WIN | SKIP |
High impact = affects response time, memory per user, or query count. Low effort = single file change, no migration needed.
Present findings sorted by priority:
## Performance Analysis: {scope}
### 1. {Finding} — DO FIRST
**Impact**: {what improves}
**Location**: {file}:{line}
**Current**: {problematic pattern}
**Fix**: {optimized pattern}
**Estimated gain**: {e.g., "eliminates N+1, reduces queries from O(n) to O(1)"}
### 2. {Finding} — PLAN
...Always end with actionable next steps — findings without follow-up get lost. Present options based on severity:
How would you like to proceed? - `phx-plan` — Create a plan from these findings (recommended for 3+ fixes) - `phx-quick` — Apply top priority fix directly (1-2 simple fixes) - `phx-investigate` — Deep-dive into a specific finding
If Tidewave MCP is available:
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…