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 optimization, genserver bottlenecks. Use when slowness, timeouts, or high memory reported.
$ npx -y skills add oliver-kriska/claude-elixir-phoenix --skill perf --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/perfContext preview
The summary Claude sees to decide when to auto-load this skill.
Analyze Elixir/Phoenix performance — N+1 queries, assign bloat, ecto optimization, genserver bottlenecks. Use when slowness, timeouts, or high memory reported.
name: perf description: Analyze Elixir/Phoenix performance — N+1 queries, assign bloat, ecto optimization, genserver bottlenecks. Use when slowness, timeouts, or high memory reported. effort: high argument-hint: "[page|context|module] [--focus ecto|liveview|otp]"
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…