Agent skill
phx:learn-from-fix
Capture lessons after fixing a bug or receiving a correction — ecto, liveview, oban, iron law mistakes. Use when the user corrects your approach or teaches a pattern.
Install this agent skill to your Project
npx add-skill https://github.com/oliver-kriska/claude-elixir-phoenix/tree/main/plugins/elixir-phoenix/skills/learn-from-fix
SKILL.md
Learn From Fix
After fixing a bug or receiving a correction, capture the lesson to prevent future mistakes.
Usage
/phx:learn-from-fix Fixed N+1 query in user listing - was missing preload
/phx:learn-from-fix String vs atom key mismatch in params handling
/phx:learn-from-fix LiveView assign_async needs render_async in tests
Workflow
Step 1: Identify the Pattern
Look at recent conversation context. Ask yourself:
- What was the root cause? (not the symptom)
- Is this a common mistake others might make?
- Can it be prevented with a simple rule?
Step 2: Check Existing Knowledge
Check if already documented:
- Grep project CLAUDE.md for the pattern keyword
- Check auto-memory files for similar lessons
- Read
${CLAUDE_SKILL_DIR}/references/common-mistakes.md(READ-ONLY plugin reference — do NOT edit this file)
If already documented, tell the user and stop.
Step 3: Decide Where to Save
CRITICAL: NEVER edit plugin files. Files under
~/.claude/plugins/ are cached and get overwritten on updates.
Always write to project or memory locations.
| Scope | Write to | Example |
|---|---|---|
| This project only | Project CLAUDE.md | "Never use raw SQL in this app" |
| All Elixir projects | Auto-memory MEMORY.md | "jsonb always uses string keys" |
| Detailed fix with context | .claude/solutions/ via /phx:compound |
Complex debugging story |
Step 4: Write the Lesson
For project CLAUDE.md — append a concise rule:
### [Category] Iron Laws (continued)
N. **[SHORT RULE NAME]** — Do NOT [bad pattern]. Instead [good pattern]
For auto-memory — append to
~/.claude/projects/{project-hash}/memory/MEMORY.md:
### Lesson: [Title]
- **Pattern**: Do NOT [bad] — instead [good]
- **Why**: [root cause explanation]
Step 5: Consider Broader Updates
If the lesson is significant enough to be an Iron Law:
- Suggest adding to project CLAUDE.md Iron Laws section
- If it's universal (applies to all Elixir projects), suggest updating the plugin itself (the user can PR it)
Output
After capturing, confirm:
Lesson captured in [location]
Pattern: Do NOT [bad pattern] — instead [good pattern]
Category: [Ecto/LiveView/OTP/Testing/etc]
Iron Laws
- NEVER edit plugin files — files under
~/.claude/plugins/are cached and overwritten on updates - DO NOT duplicate existing lessons — always check CLAUDE.md and memory before writing
- Capture the root cause, not the symptom — "missing preload" not "query was slow"
References (READ-ONLY — do NOT edit)
${CLAUDE_SKILL_DIR}/references/common-mistakes.md— Common Elixir mistakes reference. Consult when checking for duplicates. Ships with the plugin — NEVER modify.
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
lab:autoresearch
Self-improving loop for plugin skills. Reads program.md, proposes one mutation per iteration, evaluates against deterministic scorer, keeps improvements via git, reverts failures. Targets weakest skill+dimension. Use with /loop for overnight runs.
promote
Generate X/Twitter release promotion posts with ASCII tables and CodeSnap rendering. Use when writing release posts, promotion tweets, plugin announcements, or preparing social media content for new versions.
skill-monitor
Analyze skill effectiveness across sessions. Computes per-skill metrics (action rate, friction, outcomes), identifies degrading skills, and generates improvement recommendations. Requires session-scan data in metrics.jsonl.
session-trends
Analyze trends across session metrics. Computes windowed aggregates, deltas, and compares against MEMORY.md findings. Use periodically for progress tracking.
cc-changelog
CONTRIBUTOR TOOL - Track CC changelog, extract new versions since last check, analyze impact on plugin (breaking changes, opportunities, deprecations). Run periodically or before releases. NOT part of the distributed plugin.
session-scan
Compute metrics for Claude Code sessions. Discovers via ccrider, filters trivial, computes friction/opportunity/fingerprint scores. Use for broad session triage.
Didn't find tool you were looking for?