Claude-elixir-phoenix phx:techdebt
Analyze Elixir/Phoenix technical debt — duplicates, refactoring opportunities, credo issues. Use when asked about code quality, cleanup, or what to improve.
install
source · Clone the upstream repo
git clone https://github.com/oliver-kriska/claude-elixir-phoenix
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/oliver-kriska/claude-elixir-phoenix "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/elixir-phoenix/skills/techdebt" ~/.claude/skills/oliver-kriska-claude-elixir-phoenix-phx-techdebt && rm -rf "$T"
manifest:
plugins/elixir-phoenix/skills/techdebt/SKILL.mdsource content
Technical Debt Detection
Find and eliminate duplicate code patterns, anti-patterns, and refactoring opportunities in Elixir/Phoenix projects.
Iron Laws - Never Violate These
- Search before refactoring - Understand full scope of duplication before extracting
- Three strikes rule - Extract shared code only after 3+ duplications
- Prefer composition - Use behaviours and protocols over inheritance-style abstractions
- Test coverage first - Ensure tests exist before refactoring duplicated code
Analysis Checklist
1. Run Credo for Automated Detection
Run
mix credo --strict.
Focus on:
- Design issues (duplication, complexity)
- Consistency issues (naming, patterns)
- Refactoring opportunities
2. Find Duplicate Ecto Query Patterns
Use Grep to search for repeated Repo calls (
Repo.get!, Repo.get, Repo.one) in lib/**/*.ex.
Use Grep to find duplicate query patterns (from.*in.*where) in lib/**/*.ex.
3. Find Duplicate Validation Logic
Use Grep with
output_mode: "count" to count def changeset occurrences in lib/**/*.ex.
Use Grep to find repeated validations (validate_required, validate_format) in lib/**/*.ex.
4. Find Copy-Pasted Controller Actions
Use Grep to find similar action patterns (
def create, def update, def delete) in lib/*_web/**/*.ex.
Common Duplication Patterns
| Pattern | Symptom | Solution |
|---|---|---|
| Repeated queries | Same in multiple contexts | Create shared query module |
| Duplicate validations | Same calls | Extract to shared changeset |
| Similar controllers | Copy-pasted CRUD actions | Use Phoenix generators consistently |
| Repeated transforms | Same patterns | Extract to domain module |
Reporting Format
For each duplication found, report:
- Location: File paths and line numbers
- Pattern: What code is duplicated
- Extraction: Suggested shared function/module
- Effort: Low/Medium/High to fix
Usage
Run
/phx:techdebt to analyze the codebase and generate a prioritized report of technical debt with specific remediation steps.