help
Use when the user asks which /phx: command fits a task (review, plan, debug, test) or how two commands differ. Checks plans and git state, then recommends from the routing table. Not for bare /help, a tour, or ambiguous requests (intent-detection).
Install
npx skills add https://github.com/oliver-kriska/claude-elixir-phoenix/tree/main/plugins/elixir-phoenix/skills/help
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install oliver-kriska-claude-elixir-phoenix@llmmart
git clone https://github.com/oliver-kriska/claude-elixir-phoenix.git
The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole oliver-kriska/claude-elixir-phoenix collection as a plugin from our marketplace. Git is the plain clone.
Skill manifest
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):
- Check for existing plans: use Glob on
.claude/plans/*/plan.md— active work in progress? - Check git status: uncommitted changes? which files?
- Check for solution docs: use Glob on
.claude/solutions/**/*.md— prior knowledge?
Step 2: Classify Intent
Read ${CLAUDE_SKILL_DIR}/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:helpanytime to get routing advice" - If they seem new: "Try
/phx:introfor a full plugin walkthrough"
Iron Laws
- ONE recommendation — don't dump the full catalog, pick the best match
- MAX ONE clarifying question — don't interrogate, make your best guess
- Show exact syntax —
/phx:plan Add user notificationsnot just "use the plan command" - Context over keywords — existing plans + git state matter more than word matching
- 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:introfor onboarding
Files (claude-elixir-phoenix)
-
references
-
tool-catalog.md 9.4 KB
# Tool Catalog — Complete Command Reference Full catalog of all plugin commands, skills, and agents for `/phx:help` routing. ## Workflow Commands (the main cycle) These commands form a connected pipeline — each reads the previous phase's output. ### `/phx:brainstorm <topic>` — Adaptive requirements gathering - **When**: Vague idea, unclear scope, want to explore before planning - **Input**: Topic or feature idea (can be very rough) - **Output**: `.claude/plans/{slug}/interview.md` with structured requirements - **Next step**: `/phx:plan` (detects interview.md, skips clarification) - **Agents used**: phoenix-patterns-analyst, web-researcher (research phase only) **When to use brainstorm vs plan:** | Signal | Use | |--------|-----| | Clear feature, know what you want | `/phx:plan` directly | | Vague idea, exploring options | `/phx:brainstorm` | | Multiple possible approaches | `/phx:brainstorm` (research phase) | | Requirements unclear, need to discuss | `/phx:brainstorm` | ### `/phx:plan <description>` — Create implementation plan - **When**: New feature, multi-file change, anything needing structure - **Input**: Feature description in natural language (or brainstorm interview.md) - **Output**: `.claude/plans/{slug}/plan.md` with checkboxed tasks - **Flags**: `--depth quick|standard|deep`, `--existing` (enhance existing plan) - **Next step**: `/phx:work .claude/plans/{slug}/plan.md` - **Agents used**: research specialists (phoenix-patterns-analyst + selected); planning-orchestrator compresses the fan-out when 3+ agents are needed ### `/phx:brief <plan-path>` — Interactive plan walkthrough - **When**: Want to understand a plan before working on it - **Input**: Path to a plan.md file - **Output**: Ephemeral (conversation only, no files) - **Next step**: `/phx:work` or `/phx:plan --existing` to enhance ### `/phx:work <plan-path>` — Execute plan tasks - **When**: Ready to implement a plan - **Input**: Path to plan.md with checkboxed tasks - **Output**: Code changes, updated checkboxes, `progress.md` - **Flags**: `--continue` (resume from last checkpoint) - **Next step**: `/phx:review` ### `/phx:review` — Parallel code review - **When**: Implementation done, want quality check before merging - **Input**: Git diff (changed files) - **Output**: `.claude/plans/{slug}/reviews/{feature}-review.md` - **Agents used**: 3-5 specialist reviewers in parallel - **Next step**: Fix issues, then `/phx:compound` for lessons learned ### `/phx:triage` — Interactive review triage - **When**: Review has many findings, need to prioritize - **Input**: Review file from `/phx:review` - **Output**: Prioritized action list ### `/phx:compound` — Capture solved problem - **When**: Just solved a tricky bug or pattern worth remembering - **Input**: Description of what was solved - **Output**: `.claude/solutions/{category}/{fix}.md` - **Why**: Builds searchable knowledge base for future sessions ### `/phx:full <description>` — Autonomous full cycle - **When**: Large feature, want plan→work→verify→review in one shot - **Input**: Feature description - **Output**: All workflow artifacts - **Caution**: Best for well-defined features; complex ones benefit from manual phase control ## Standalone Commands ### `/phx:quick <description>` — Fast implementation - **When**: Small change (<50 lines), single file, clear scope - **Input**: What to change - **Output**: Direct code changes (no plan artifacts) - **Examples**: "Add phone field to User schema", "Fix pagination bug in index" ### `/phx:investigate` — Bug investigation - **When**: Error, crash, unexpected behavior, failing test - **Input**: Bug description or stack trace - **Output**: Root cause analysis, fix suggestion - **Agents used**: deep-bug-investigator (for complex bugs) - **Checks**: `.claude/solutions/` first for known fixes ### `/phx:verify` — Run all checks - **When**: Before PR, before deploy, after large changes - **Runs**: `mix compile --warnings-as-errors`, `mix format`, `mix credo`, `mix test` - **Output**: Pass/fail report ### `/phx:research <topic>` — Research with parallel workers - **When**: "How to implement X", "Best practices for Y", "What library for Z" - **Flags**: `--library <name>` (evaluate a specific Hex package) - **Output**: Research summary with sources - **Agents used**: 1-3 web-researcher agents in parallel ### `/phx:pr-review` — Address PR review comments - **When**: Got review comments on a PR, need to address them - **Input**: PR number or URL - **Output**: Code changes addressing each comment ### `/phx:intro` — Interactive plugin tutorial - **When**: New to the plugin, want to learn what's available - **Flags**: `--section N` (jump to section 1-6) ### `/phx:init` — Project setup - **When**: Setting up plugin rules for a new project - **Output**: Injects rules into project CLAUDE.md ### `/phx:permissions` — Permission analyzer - **When**: Too many "allow?" prompts, permission fatigue, after 5+ prompts in a session - **Input**: Optional `--days=N` (default: 14), `--dry-run` - **Output**: Scans session JSONL files for uncovered Bash commands, recommends `settings.json` changes - **Triage**: Interactive GREEN/YELLOW/RED triage with AskUserQuestion ### `/phx:challenge` — Rigorous review mode - **When**: "Grill me", "challenge this", want thorough scrutiny before merging - **Input**: Changed files (like review) - **Output**: Aggressive questioning of Ecto changes, LiveView events, PR readiness ### `/phx:document` — Documentation generator - **When**: Need @moduledoc, @doc annotations, or README updates - **Input**: Modules or contexts to document - **Output**: Inline documentation in source files ### `/phx:examples` — Pattern walkthroughs - **When**: "How do I...", "show me an example of...", learning patterns - **Input**: Pattern or topic description - **Output**: Practical examples with working code ### `/ecto:constraint-debug` — Constraint violation debugger - **When**: unique_constraint, foreign_key_constraint, or check_constraint errors - **Input**: Error message or constraint name - **Output**: Traces triggers, checks migrations, finds duplicate data ## Analysis Commands ### `/phx:perf` — Performance analysis - **When**: "App is slow", "queries are slow", "LiveView is laggy" - **Covers**: Ecto queries, LiveView renders, OTP bottlenecks ### `/ecto:n1-check` — N+1 query detection - **When**: Suspect N+1 queries, list pages are slow - **Output**: Found N+1 patterns with fix suggestions ### `/lv:assigns` — LiveView memory audit - **When**: LiveView processes using too much memory, large assigns - **Output**: Assigns size analysis, stream conversion suggestions ### `/phx:audit` — Project health audit - **When**: Want overall project quality assessment - **Agents used**: 5 specialist agents in parallel - **Output**: `.claude/audit/reports/` with findings per area ### `/phx:techdebt` — Technical debt analysis - **When**: Want to identify and track technical debt - **Output**: Categorized debt items with severity ### `/phx:boundaries` — Context boundary violations - **When**: Suspect cross-context coupling, unclear module boundaries - **Output**: Boundary violation report ### `/phx:trace <function>` — Call chain tracing - **When**: Need to understand how a function is called and what it calls - **Agents used**: call-tracer, xref-analyzer ## Decision Helpers ### When to use `/phx:plan` vs `/phx:quick` | Signal | Use | |--------|-----| | 1-2 files, clear change | `/phx:quick` | | 3+ files or unclear scope | `/phx:plan` | | New domain concept | `/phx:plan` | | "Add field to schema" | `/phx:quick` | | "Add notification system" | `/phx:plan` | ### When to use `/phx:investigate` vs just fixing | Signal | Use | |--------|-----| | Know the cause, small fix | Fix directly | | Stack trace, unknown cause | `/phx:investigate` | | Intermittent / race condition | `/phx:investigate` | | Test failing, obvious assertion | Fix directly | ### When to use `/phx:full` vs manual phases | Signal | Use | |--------|-----| | Well-defined feature, clear scope | `/phx:full` | | Exploratory, may pivot | `/phx:plan` then decide | | Want control between phases | Manual: plan → work → review | | Large feature, new domain | `/phx:full` (handles complexity) | ### When to use `/phx:review` vs `/phx:verify` | Signal | Use | |--------|-----| | Want compile/test/format pass | `/phx:verify` | | Want architectural feedback | `/phx:review` | | Pre-PR checklist | Both: `/phx:verify` then `/phx:review` | ## Reference Skills (auto-loaded, not invoked directly) These load automatically when you edit matching files: | Skill | Triggers on | |-------|-------------| | `liveview-patterns` | `*_live.ex`, `*_component.ex`, `*.sface` | | `ecto-patterns` | Migrations, schemas, changesets, `from(` | | `phoenix-contexts` | Context modules, router, controllers | | `security` | Auth files, session, password | | `testing` | `*_test.exs`, factories, fixtures | | `oban` | Workers, `use Oban.Worker` | | `elixir-idioms` | GenServer, mix tasks, general `.ex` | | `deploy` | Dockerfile, fly.toml, runtime.exs | ## Workflow Cheat Sheet ```text New feature: /phx:plan → /phx:work → /phx:review → /phx:compound Quick fix: /phx:quick Bug: /phx:investigate Full auto: /phx:full Pre-PR: /phx:verify → /phx:review Research: /phx:research [topic] Evaluate lib: /phx:research --library [name] Resume work: /phx:work --continue Post-fix lesson: /phx:compound Permissions: /phx:permissions ```
-
-
SKILL.md 4.5 KB
--- name: help description: "Use when the user asks which /phx: command fits a task (review, plan, debug, test) or how two commands differ. Checks plans and git state, then recommends from the routing table. Not for bare /help, a tour, or ambiguous requests (intent-detection)." argument-hint: "[description of what you want to do]" effort: low --- # 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 `${CLAUDE_SKILL_DIR}/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
Comments (0)
Sign in to join the conversation.
Reviews (0)
No reviews yet.
No comments yet.