perf
Use when anything in a Phoenix app is slow, times out, or uses too much memory, even if the cause looks obvious. Load it before analyzing or fixing: it runs measured Ecto, LiveView and OTP checks and ranks fixes.
Install / Use
npx skills add oliver-kriska/claude-elixir-phoenix --skill perfInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
Development & EngineeringSupported Platforms
Tags
Our assessment of perf
perf scores 87/100 on our quality scale, 1741st of 4,634 Development & Engineering skills we index (top 38%).
Its SKILL.md is 3.8 KB long, well organised into 16 sections with 4 code examples: a solid amount of guidance for an agent.
It has 560 GitHub stars, a meaningful sign that others use it.
Maintenance, license and trust
- The repository was last updated 2 days ago, so perf is actively maintained.
- It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 100/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
perf compared with similar skills
All 4 of these similar skills score higher than perf; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| perf (this skill)by oliver-kriska | 87 | 560 | 2d ago | SKILL.md |
| ai-job-searchby MadsLorentzen | 100 | 44.9k | today | CLAUDE.md |
| claude-howtoby luongnv89 | 100 | 41.7k | 3d ago | CLAUDE.md |
| algorithmic-artby anthropics | 100 | 177.9k | 11d ago | SKILL.md |
| pptxby anthropics | 100 | 177.9k | 11d ago | SKILL.md |
Frequently asked questions
- How do I install perf?
- Run
npx skills add oliver-kriska/claude-elixir-phoenix --skill perf. The install tabs above show the steps for each supported agent. - Which AI agents does perf work with?
- It is written for Universal, as a SKILL.md file. Other agents that read the same format can often use it too.
- Is perf safe to use?
- It is MIT-licensed and scores 100/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is perf still maintained?
- The repository was last updated 2 days ago, so perf is actively maintained.
Skill content
View source on GitHubname: perf description: "Use when anything in a Phoenix app is slow, times out, or uses too much memory, even if the cause looks obvious. Load it before analyzing or fixing: it runs measured Ecto, LiveView and OTP checks and ranks fixes." effort: high argument-hint: "[page|context|module] [--focus ecto|liveview|otp]"
Performance Analysis
Analyze code for performance issues across Ecto, LiveView, and OTP layers. Prioritize findings by impact and effort.
Usage
/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
$ARGUMENTS = Optional module/context path and --focus flag.
Iron Laws
- MEASURE BEFORE OPTIMIZING — Never optimize without evidence of a problem
- DATABASE FIRST — 90% of Elixir performance issues are query-related
- ONE CHANGE AT A TIME — Isolate optimizations to measure impact
- NEVER benchmark in dev mode — Always use
MIX_ENV=prodfor performance measurements; dev mode includes code reloading, debug logging, and unoptimized compilation that invalidate results
Workflow
Step 1: Identify Scope
Check specific file if provided. Otherwise scan full project:
# Find hot paths: contexts, LiveViews, workers
find lib/ -name "*.ex" | head -50
Step 2: Run Analysis Tracks
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."
Step 3: Prioritize Findings
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.
Step 4: Present Top 5
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
...
Step 5: Offer Next Steps
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
Tidewave Integration
If Tidewave MCP is available:
- Use
mcp__tidewave__project_evalto runRepo.query!("EXPLAIN ANALYZE ...")on suspicious queries - Use
mcp__tidewave__project_evalto checkProcess.info(pid, :message_queue_len)for GenServer bottlenecks - Use
mcp__tidewave__execute_sql_queryto check missing indexes
References
${CLAUDE_SKILL_DIR}/references/benchmarking.md— Benchee patterns, profiling, flame graphs
Related Skills
ai-job-search
44.9kThe job search that runs on your machine. AI job application framework built on Claude Code: evaluate postings, tailor CVs, write cover letters, prep interviews. Fork it and own it.
claude-howto
41.7kA visual, example-driven guide to Claude Code — from basic concepts to advanced agents, with copy-paste templates that bring immediate value.
algorithmic-art
177.9kCreating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems.
pptx
177.9kUse this skill any time a .pptx or .potx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx or .potx file (even if the extracted content will be used elsewhere, like in an em…
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
