Claude-elixir-phoenix compound-docs

Searchable Elixir/Phoenix/Ecto solution documentation system with YAML frontmatter. Builds institutional knowledge from solved problems. Use when consulting past solutions before investigating new issues.

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/compound-docs" ~/.claude/skills/oliver-kriska-claude-elixir-phoenix-compound-docs && rm -rf "$T"
manifest: plugins/elixir-phoenix/skills/compound-docs/SKILL.md
source content

Compound Docs — Institutional Knowledge Base

Searchable, categorized solution documentation that makes each debugging session easier than the last.

Directory Structure

.claude/solutions/
├── ecto-issues/
├── liveview-issues/
├── oban-issues/
├── otp-issues/
├── security-issues/
├── testing-issues/
├── phoenix-issues/
├── deployment-issues/
├── performance-issues/
└── build-issues/

Iron Laws

  1. ALWAYS search solutions before investigating — Check
    .claude/solutions/
    for existing fixes before debugging
  2. YAML frontmatter is MANDATORY — Every solution needs validated metadata per
    ${CLAUDE_SKILL_DIR}/references/schema.md
  3. One problem per file — Never combine multiple solutions
  4. Include prevention — Every solution documents how to prevent recurrence

Solution File Format

---
module: "Accounts"
date: "2025-12-01"
problem_type: runtime_error
component: ecto_schema
symptoms:
  - "Ecto.Association.NotLoaded on user.posts"
root_cause: missing_preload
severity: medium
tags: [preload, association, n-plus-one]
---

# Association NotLoaded on User Posts

## Symptoms
Ecto.Association.NotLoaded raised when accessing user.posts
in UserListLive after filtering.

## Root Cause
Query in Accounts context missing preload for :posts.

## Solution
Added `Repo.preload(:posts)` to `list_users/1`.

## Prevention
Use n1-check skill before shipping list views.

Searching Solutions

Use Grep to search

.claude/solutions/
by symptom (e.g.,
NotLoaded
), by tag (e.g.,
tags:.*preload
), or by component (e.g.,
component: ecto
).

Integration

  • /phx:compound
    creates solution docs here
  • /phx:investigate
    searches here before debugging
  • /phx:plan
    consults for known risks
  • learn-from-fix
    feeds into this system

References

  • ${CLAUDE_SKILL_DIR}/references/schema.md
    — YAML frontmatter validation schema
  • ${CLAUDE_SKILL_DIR}/references/resolution-template.md
    — Full solution template