Plan Elixir/Phoenix Feature
Plan a feature by spawning Elixir specialist agents, then output
structured plan with checkboxes.
What Makes /phx:plan Different from /plan
- Spawns Elixir specialist agents for research
- Plans with
[ecto], [liveview], [oban] task routing
- Checks for Iron Law compliance in the plan
- Includes
mix compile/format/credo/test verification
- Understands Phoenix context boundaries
Usage
/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
$ARGUMENTS = Feature description, review file, or existing plan
--depth quick|standard|deep = Planning depth (auto-detected)
--existing = Enhance an existing plan with deeper research
Workflow
- Gather context — File path (skip to agents), brainstorm
interview.md (skip clarification), clear description, or vague
- Clarify if vague — Ask questions ONE at a time (skip if
brainstorm interview.md exists with Status: COMPLETE)
- Detect depth — Auto-detect quick/standard/deep
- Runtime context (Tidewave) — Gather live schemas, routes,
and warnings before spawning agents (direct path only — the
research orchestrator gathers its own)
- Spawn research — Selective, based on need. 0–2 agents:
spawn directly in parallel. 3+ agents (broad multi-context feature):
determine the effective maximum nesting depth. Use an explicit positive-integer
CLAUDE_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 done
- Wait for ALL agents — Do NOT proceed until all return
"completed". NEVER write plan while any agent is still running
- Breadboard (LiveView) — System map for multi-page features
- Completeness check — MANDATORY when planning from review
- Split decision — One plan or multiple, concrete options
- Generate plan — Checkboxes, phased tasks, code patterns.
Also create
plans/{slug}/scratchpad.md for decisions and dead-ends
- Self-check (deep only) — Three questions in Risks section
- Present and ask — STOP, show summary, let user decide
When 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.
--existing Mode (Deepening)
Enhances an existing plan instead of creating a new one:
- Load plan, search
.claude/solutions/ for known risks
- Spawn SPECIALIST agents (not Explore) for thin sections.
Each agent writes to
.claude/plans/{slug}/research/ and
returns only a 500-word summary. Same agent selection rules
- Wait for ALL agents (mark tasks
completed as each finishes)
- Add implementation detail, resolve spikes, add verification
- Present diff summary — NEVER delete existing tasks
Iron Laws
- NEVER auto-start /phx:work — Always present plan and ask
- Research before assuming — Web-search unfamiliar tech
- Spawn agents selectively — Only relevant, not all
- NEVER write plan while agents still running
- NEVER skip input findings — Every finding MUST have a task
- Do NOT spawn hex-library-researcher for existing deps
- Skip research when planning from review/investigation — When
input is a review file or
/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)
Integration with Workflow
/phx:plan {feature} <-- YOU ARE HERE
|
/phx:plan --existing (optional enhancement)
|
ASK USER -> /phx:work .claude/plans/{feature}/plan.md
|
/phx:review → /phx:compound
Notes
- Plans saved to
.claude/plans/{slug}/plan.md
- Research reports in
.claude/plans/{slug}/research/ can be deleted after
CRITICAL: After Writing the Plan
STOP. Do NOT proceed to implementation.
After writing .claude/plans/{slug}/plan.md:
- Summarize: task count, phases, key decisions
- Use
AskUserQuestion with options:
- "Start in fresh session" (recommended for 5+ tasks)
- "Get a briefing" (
/phx:brief — interactive walkthrough)
- "Start here"
- "Review or adjust the plan"
- Wait for user response. Never auto-start work.
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.
References (DO NOT read — for human reference only)
${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.md
1---2name: plan3description: "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."4effort: high5argument-hint: <feature description OR path to review/plan file>6---78# Plan Elixir/Phoenix Feature910Plan a feature by spawning Elixir specialist agents, then output11structured plan with checkboxes.1213## What Makes /phx:plan Different from /plan14151. Spawns Elixir specialist agents for research162. Plans with `[ecto]`, `[liveview]`, `[oban]` task routing173. Checks for Iron Law compliance in the plan184. Includes `mix compile/format/credo/test` verification195. Understands Phoenix context boundaries2021## Usage2223```24/phx:plan Add user avatars with S3 upload25/phx:plan .claude/plans/notifications/reviews/notifications-review.md26/phx:plan Implement notifications --depth deep27/phx:plan .claude/plans/auth/plan.md --existing28```2930## Arguments3132- `$ARGUMENTS` = Feature description, review file, or existing plan33- `--depth quick|standard|deep` = Planning depth (auto-detected)34- `--existing` = Enhance an existing plan with deeper research3536## Workflow37381. **Gather context** — File path (skip to agents), brainstorm39 interview.md (skip clarification), clear description, or vague402. **Clarify if vague** — Ask questions ONE at a time (skip if41 brainstorm interview.md exists with Status: COMPLETE)423. **Detect depth** — Auto-detect quick/standard/deep434. **Runtime context** (Tidewave) — Gather live schemas, routes,44 and warnings before spawning agents (direct path only — the45 research orchestrator gathers its own)465. **Spawn research** — Selective, based on need. **0–2 agents**:47 spawn directly in parallel. **3+ agents** (broad multi-context feature):48 determine the effective maximum nesting depth. Use an explicit positive-integer49 `CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH` value first; when it is unset, inspect50 `claude --version` (the default is 1 in 2.1.217–2.1.218 and 3 in 2.1.219+).51 If the version is unavailable, conservatively use 1. At depth 3+, spawn ONE52 `planning-orchestrator` to run and compress the fan-out. At depth 1 or 2,53 keep orchestration in this54 main session: spawn the selected specialist agents directly, wait for them, then spawn55 `phx:context-supervisor` directly if compression is needed. Never spawn an56 orchestrator that cannot delegate. Read only the resulting digest and57 `summaries/consolidated.md`. Create a Claude Code task per spawn:58 `TaskCreate({subject: "{Agent} research", activeForm: "Researching..."})`,59 mark `in_progress` on spawn, `completed` when done606. **Wait for ALL agents** — Do NOT proceed until all return61 "completed". NEVER write plan while any agent is still running627. **Breadboard** (LiveView) — System map for multi-page features638. **Completeness check** — MANDATORY when planning from review649. **Split decision** — One plan or multiple, concrete options6510. **Generate plan** — Checkboxes, phased tasks, code patterns.66 Also create `plans/{slug}/scratchpad.md` for decisions and dead-ends6711. **Self-check** (deep only) — Three questions in Risks section6812. **Present and ask** — STOP, show summary, let user decide6970**When planning from review**: Every finding must appear in the71plan — either as a task OR explicitly deferred by the user.7273See `${CLAUDE_SKILL_DIR}/references/planning-workflow.md` for detailed step-by-step.7475### --existing Mode (Deepening)7677Enhances an existing plan instead of creating a new one:78791. Load plan, search `.claude/solutions/` for known risks802. Spawn SPECIALIST agents (not Explore) for thin sections.81 Each agent writes to `.claude/plans/{slug}/research/` and82 returns only a 500-word summary. Same agent selection rules833. Wait for ALL agents (mark tasks `completed` as each finishes)844. Add implementation detail, resolve spikes, add verification855. Present diff summary — **NEVER delete existing tasks**8687## Iron Laws88891. **NEVER auto-start /phx:work** — Always present plan and ask902. **Research before assuming** — Web-search unfamiliar tech913. **Spawn agents selectively** — Only relevant, not all924. **NEVER write plan while agents still running**935. **NEVER skip input findings** — Every finding MUST have a task946. **Do NOT spawn hex-library-researcher for existing deps**957. **Skip research when planning from review/investigation** — When96 input is a review file or `/phx:investigate` output, the findings97 ARE the research. Do NOT spawn agents to re-discover what the98 review already found. Convert findings directly to plan tasks.99 (Confirmed: 56-session analysis showed same findings discovered100 3-4x across review→investigate→plan phases, wasting ~96K tokens)101102## Integration with Workflow103104```text105/phx:plan {feature} <-- YOU ARE HERE106 |107 /phx:plan --existing (optional enhancement)108 |109 ASK USER -> /phx:work .claude/plans/{feature}/plan.md110 |111/phx:review → /phx:compound112```113114## Notes115116- Plans saved to `.claude/plans/{slug}/plan.md`117- Research reports in `.claude/plans/{slug}/research/` can be deleted after118119## CRITICAL: After Writing the Plan120121**STOP. Do NOT proceed to implementation.**122123After writing `.claude/plans/{slug}/plan.md`:1241251. Summarize: task count, phases, key decisions1262. Use `AskUserQuestion` with options:127 - "Start in fresh session" (recommended for 5+ tasks)128 - "Get a briefing" (`/phx:brief` — interactive walkthrough)129 - "Start here"130 - "Review or adjust the plan"1313. Wait for user response. Never auto-start work.132133**When user selects "Start in fresh session"**, print:134135```1361. Run `/new` to start a fresh session1372. Then run one of:138 /phx:work .claude/plans/{slug}/plan.md139 /phx:full .claude/plans/{slug}/plan.md (includes review + compound)140```141142This is Iron Law #1. Violating it wastes user context.143144## References (DO NOT read — for human reference only)145146- `${CLAUDE_SKILL_DIR}/references/planning-workflow.md` — Detailed step-by-step147- `${CLAUDE_SKILL_DIR}/references/plan-template.md`148- `${CLAUDE_SKILL_DIR}/references/complexity-detail.md`149- `${CLAUDE_SKILL_DIR}/references/example-plan.md`150- `${CLAUDE_SKILL_DIR}/references/agent-selection.md`151- `${CLAUDE_SKILL_DIR}/references/breadboarding.md`