phx:compound
The phx:compound skill documents solved engineering problems as searchable solution files in `.claude/solutions/`, extracting context from recent work, checking for duplicates, and creating structured records with metadata, investigation steps, root cause, and prevention advice. Use it after fixing bugs, completing successful reviews or investigations, or whenever encountering problems worth capturing for future reference and institutional knowledge building.
git clone --depth 1 https://github.com/oliver-kriska/claude-elixir-phoenix /tmp/phx-compound && cp -r /tmp/phx-compound/plugins/elixir-phoenix/skills/compound ~/.claude/skills/phx-compoundSKILL.md
# Compound — Capture Solutions as Knowledge
After fixing a problem, capture the solution as searchable
institutional documentation.
## Usage
```
/phx:compound Fixed N+1 query in user listing
/phx:compound Resolved LiveView timeout in dashboard
/phx:compound # Auto-detects from recent session context
```
## Philosophy
> Each unit of engineering work should make subsequent units
> easier — not harder.
## Workflow
### Step 1: Detect Context
1. If `$ARGUMENTS` provided, use as description
2. If no args, check scratchpad DEAD-END/DECISION entries,
`git diff`, `.claude/plans/{slug}/progress.md` for recent completions
3. If unclear, ask: "What problem did you just solve?"
**Only document non-trivial problems** that required investigation.
### Step 2: Search Existing Solutions
Create `.claude/solutions/` directory if it doesn't exist (run `mkdir -p .claude/solutions`).
Then search `.claude/solutions/` for relevant keywords using Grep.
If found: **Create new** (different root cause), **Update
existing** (same root cause, new symptom), or **Skip**.
### Step 3: Gather Details and Create Solution
Extract from session context: module, symptoms, investigation
steps, root cause, solution code, and prevention advice.
Validate frontmatter against `compound-docs/references/schema.md`,
then create file using `compound-docs/references/resolution-template.md`.
**Write-blocked fallback**: if writing to `.claude/solutions/` is denied
by permissions, do NOT silently drop the solution. Output the full
solution doc inline (fenced markdown the user can paste), then suggest
`/phx:permissions` to allow `.claude/solutions/` writes for next time.
### Step 4: Decision Menu
1. **Continue** (default)
2. **Promote to Iron Law check** — Add to iron-law-judge
3. **Update skill reference** — Add to relevant skill
4. **Update CLAUDE.md** — Add prevention rule
## Auto-Trigger Phrases
When user says "that worked", "it's fixed", "problem solved",
"the fix was" — suggest `/phx:compound`.
### Supply-chain finding auto-feed (Phase 3)
When `/phx:deps-audit` produces a BLOCK-severity finding that the
user investigates and confirms is a real malicious pattern (not a
false positive), suggest:
> Caught a high-severity finding in `<pkg>@<version>`. Run
> `/phx:compound` to capture this for future audits?
If accepted, the resulting solution doc goes to
`.claude/solutions/supply-chain/<pkg>-<cve_or_pattern>.md` and
includes the exact rule-id + snippet + diff window that triggered
the finding. This compounds the audit corpus: future runs of
`/phx:deps-audit` grep `solutions/supply-chain/` for snippet
matches and pre-elevate severity on known-bad patterns.
**Always prompt; never auto-write.** Solution docs are durable and
shape future trust calls — the user reviews before committing.
## Iron Laws
1. **YAML frontmatter validates or STOP**
2. **Symptoms must be specific** — not "it broke"
3. **Root cause is WHY, not WHAT**
4. **One problem per file**
5. **NEVER document a fix before verifying it works** — run `mix compile && mix test` first; unverified solutions poison the knowledge base
## Integration with Workflow
```text
/phx:review → Complete → /phx:compound ← YOU ARE HERE
│
.claude/solutions/{category}/{fix}.md
│
/phx:investigate and /phx:plan search here
```
## References
- `${CLAUDE_SKILL_DIR}/references/compound-workflow.md` — Detailed step-by-step
- See also: `compound-docs` skill for schema and templatesAsh Framework — resources, actions, policies, aggregates, calculations,
Compatibility alias for the Elixir/Phoenix plugin's LiveView assigns audit. Invoke explicitly with /lv:assigns.
Inspect LiveView socket assigns for memory bloat — missing temporary_assigns, unused assigns, unbounded lists needing streams, memory estimates. Use when LiveView memory grows or you need to add temporary_assigns.
Project health audit and health check — architecture, performance, tests, dependencies, code quality. Use when assessing overall project health, before releases, or after refactors.
Analyze Phoenix context boundaries and module coupling via mix xref. Use when checking cross-context calls, validating dependencies, before splitting modules, or reviewing architecture.
Brainstorm Elixir/Phoenix features — explore ideas, compare approaches, gather requirements. Use when vague idea, not sure how to approach, or want to discuss before plan.
Interactive briefing of a plan file — explains reasoning, schema decisions, component choices. Use when developers need to understand a plan before approving.
Summarize and review what changed while you were away. Use after a weekend, vacation, or flight to check missed PRs, git commits, Linear tickets, and meetings — one prioritized brief, not a firehose.