plugins/elixir-phoenix/skills/plan/SKILL.md
Plan features spanning multiple domains: billing (Stripe), auth (RBAC), real-time (Presence), webhooks, jobs (Oban). Use when designing interconnected systems or converting review findings into tasks.
npx skillsauth add oliver-kriska/claude-elixir-phoenix planInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Plan a feature by spawning Elixir specialist agents, then output structured plan with checkboxes.
[ecto], [liveview], [oban] task routingmix compile/format/credo/test verification/phx:plan Add user avatars with S3 upload
/phx:plan .claude/plans/notifications/reviews/notifications-review.md
/phx:plan Implement notifications --depth deep
/phx:plan .claude/plans/auth/plan.md --existing
$ARGUMENTS = Feature description, review file, or existing plan--depth quick|standard|deep = Planning depth (auto-detected)--existing = Enhance an existing plan with deeper researchCLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH value first; when it is unset, inspect
claude --version (the default is 1 in 2.1.217–2.1.218 and 3 in 2.1.219+).
If the version is unavailable, conservatively use 1. At depth 3+, spawn ONE
planning-orchestrator to run and compress the fan-out. At depth 1 or 2,
keep orchestration in this
main session: spawn the selected specialist agents directly, wait for them, then spawn
phx:context-supervisor directly if compression is needed. Never spawn an
orchestrator that cannot delegate. Read only the resulting digest and
summaries/consolidated.md. Create a Claude Code task per spawn:
TaskCreate({subject: "{Agent} research", activeForm: "Researching..."}),
mark in_progress on spawn, completed when doneplans/{slug}/scratchpad.md for decisions and dead-endsWhen planning from review: Every finding must appear in the plan — either as a task OR explicitly deferred by the user.
See ${CLAUDE_SKILL_DIR}/references/planning-workflow.md for detailed step-by-step.
Enhances an existing plan instead of creating a new one:
.claude/solutions/ for known risks.claude/plans/{slug}/research/ and
returns only a 500-word summary. Same agent selection rulescompleted as each finishes)/phx:investigate output, the findings
ARE the research. Do NOT spawn agents to re-discover what the
review already found. Convert findings directly to plan tasks.
(Confirmed: 56-session analysis showed same findings discovered
3-4x across review→investigate→plan phases, wasting ~96K tokens)/phx:plan {feature} <-- YOU ARE HERE
|
/phx:plan --existing (optional enhancement)
|
ASK USER -> /phx:work .claude/plans/{feature}/plan.md
|
/phx:review → /phx:compound
.claude/plans/{slug}/plan.md.claude/plans/{slug}/research/ can be deleted afterSTOP. Do NOT proceed to implementation.
After writing .claude/plans/{slug}/plan.md:
AskUserQuestion with options:
/phx:brief — interactive walkthrough)When user selects "Start in fresh session", print:
1. Run `/new` to start a fresh session
2. Then run one of:
/phx:work .claude/plans/{slug}/plan.md
/phx:full .claude/plans/{slug}/plan.md (includes review + compound)
This is Iron Law #1. Violating it wastes user context.
${CLAUDE_SKILL_DIR}/references/planning-workflow.md — Detailed step-by-step${CLAUDE_SKILL_DIR}/references/plan-template.md${CLAUDE_SKILL_DIR}/references/complexity-detail.md${CLAUDE_SKILL_DIR}/references/example-plan.md${CLAUDE_SKILL_DIR}/references/agent-selection.md${CLAUDE_SKILL_DIR}/references/breadboarding.mdtools
Compatibility alias for the Elixir/Phoenix plugin's LiveView assigns audit. Invoke explicitly with /lv:assigns.
development
Trace Elixir call trees from entry points via mix xref. Use when debugging data flow, planning signature changes, or understanding how a bug reaches code.
tools
Compatibility alias for the Elixir/Phoenix plugin's N+1 query checker. Invoke explicitly with /ecto:n1-check.
tools
Compatibility alias for the Elixir/Phoenix plugin's Ecto constraint debugger. Invoke explicitly with /ecto:constraint-debug.