phx-help

$npx mdskill add oliver-kriska/claude-elixir-phoenix/phx-help

Recommends the right phx-* command for planning, review, debug, or deploy tasks.

  • Helps users find the correct command when they ask 'which command' or 'how do I'.
  • Depends on git status, existing plans, and solution docs for context.
  • Classifies user intent using a routing table from tool-catalog.md.
  • Suggests primary commands like phx-intro, phx-brainstorm, or phx-investigate.

SKILL.md

.github/skills/phx-helpView on GitHub ↗
---
name: phx-help
description: Recommend the right phx-* command for planning, review, debug, deploy,
  or test tasks. Use when "which command", "what should I use", or "how do I". NOT
  for /help.
---

# Plugin Help — Interactive Command Advisor

Helps users find the right command, skill, or agent for their situation.

## Usage

```
phx-help                          # Analyze context, suggest commands
phx-help how do I debug this?     # Route to phx-investigate
phx-help add a new feature        # Route to phx-plan -> phx-work
```

## Arguments

- `$ARGUMENTS` — optional description of what the user wants to do
- Empty = analyze current context (git status, existing plans, file patterns)

## Execution Flow

### Step 1: Gather Context

If `$ARGUMENTS` is non-empty, use it as primary signal.

Always gather ambient context (run in parallel):

1. Check for existing plans: use Glob on `.claude/plans/*/plan.md` — active work in progress?
2. Check git status: uncommitted changes? which files?
3. Check for solution docs: use Glob on `.claude/solutions/**/*.md` — prior knowledge?

### Step 2: Classify Intent

Read `references/tool-catalog.md` for the full routing table.

Map the user's situation to one of these categories:

| Category | Signals | Primary Commands |
|----------|---------|-----------------|
| **Starting out** | No plans, new to plugin | `phx-intro` |
| **Ideation** | "explore", "brainstorm", "not sure", "how to approach", "vague idea" | `phx-brainstorm` |
| **New feature** | "add", "build", "implement", multi-file | `phx-plan` → `phx-work` |
| **Quick change** | Single file, <50 lines, "fix typo" | `phx-quick` |
| **Bug** | Error, stack trace, "broken", "failing" | `phx-investigate` |
| **Review** | "check", "review", PR ready | `phx-review` |
| **Performance** | "slow", "N+1", "memory" | `phx-perf`, `ecto-n1-check`, `lv-assigns` |
| **Research** | "how to", "best practice", "evaluate lib" | `phx-research` |
| **Resume work** | Existing plan with unchecked tasks | `phx-work --continue` |
| **Post-fix** | "that worked", solved a hard bug | `phx-compound` |
| **Full cycle** | Large feature, new domain area | `phx-full` |
| **Project health** | "audit", "tech debt", "overall quality" | `phx-audit`, `phx-techdebt` |
| **Dep update audit** | "audit deps", "supply chain", "post-`mix deps.update`", "review mix.lock PR" | `phx-deps-audit` |
| **Manual dep vetting** | "vet this package", "approve dep", "trust ledger", "after phx-deps-audit findings" | `phx-deps-vet` |
| **Deployment** | "deploy", "release", "production" | `phx-verify` then deploy skill |
| **Permissions** | "too many prompts", "allow", "permission fatigue" | `phx-permissions` |
| **Returning after time off** | "what did I miss", "back from vacation", "catch up", "what changed while I was out" | `/catchup` (companion plugin, separate install) |

### Step 3: Respond or Clarify

**If high confidence** (clear match to one category):
Present the recommendation with:

- The command to run (with exact syntax)
- One-line explanation of what it does
- What artifacts it creates (if any)
- Suggested next step after it completes

**If medium confidence** (2-3 possible matches):
Use `AskUserQuestion` with the top options, each with a one-line explanation.

**If low confidence** (vague or no signal):
Ask ONE focused clarifying question. Examples:

- "Are you starting something new or continuing existing work?"
- "Is this a bug fix or a new feature?"
- "How many files do you expect to change?"

Then recommend based on the answer.

### Step 4: Offer Follow-up

After recommending, always add:

- "Run `phx-help` anytime to get routing advice"
- If they seem new: "Try `phx-intro` for a full plugin walkthrough"

## Iron Laws

1. **ONE recommendation** — don't dump the full catalog, pick the best match
2. **MAX ONE clarifying question** — don't interrogate, make your best guess
3. **Show exact syntax** — `phx-plan Add user notifications` not just "use the plan command"
4. **Context over keywords** — existing plans + git state matter more than word matching
5. **NEVER block** — if user already knows what they want, DO NOT redirect

## Integration

- Complements `intent-detection` (auto-trigger) with explicit invocation
- References same routing logic but adds interactive clarification
- Can recommend `phx-intro` for onboarding

More from oliver-kriska/claude-elixir-phoenix

SkillDescription
ash-frameworkAsh Framework — resources, actions, policies, aggregates, calculations, AshPhoenix.Form, LiveView, migrations. Use when generating resources via mix ash.codegen, editing changes, checks, types, validations, or domain code interfaces.
catchupSummarize 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.
cc-changelog|
codex-abRun an A/B codex review experiment — holistic codex review vs 3 focused dimension passes (security, ecto, liveview) on the branch diff, classify findings, report a panel-value verdict. Use when the branch is fresh, before any codex review runs.
compound-docsSearchable Elixir/Phoenix/Ecto solution documentation system with YAML frontmatter. Builds institutional knowledge from solved problems. Use when consulting past solutions before investigating new issues.
docs-check|
ecto-n1-checkDetect N+1 query anti-patterns specifically — Repo calls inside Enum/for
ecto-patternsEcto patterns — schemas, changesets, queries, migrations, Multi, associations, preloads, upserts. Use when editing Repo calls, Ecto.Query, or schema fields. Skip for Ash.
ecto:constraint-debugDebug Ecto constraint violations - trace triggers, check migrations, find duplicate data. Use when seeing unique_constraint, foreign_key_constraint, or check_constraint errors.
ecto:n1-checkDetect N+1 query anti-patterns specifically — Repo calls inside Enum/for loops, missing preloads on associations. Use when N+1 is explicitly suspected, NOT for unrelated Ecto questions or wider database performance.