Claude-elixir-phoenix phx:plan

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.

install
source · Clone the upstream repo
git clone https://github.com/oliver-kriska/claude-elixir-phoenix
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/oliver-kriska/claude-elixir-phoenix "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/elixir-phoenix/skills/plan" ~/.claude/skills/oliver-kriska-claude-elixir-phoenix-phx-plan && rm -rf "$T"
manifest: plugins/elixir-phoenix/skills/plan/SKILL.md
source content

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

  1. Spawns Elixir specialist agents for research
  2. Plans with
    [ecto]
    ,
    [liveview]
    ,
    [oban]
    task routing
  3. Checks for Iron Law compliance in the plan
  4. Includes
    mix compile/format/credo/test
    verification
  5. 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

  1. Gather context — File path (skip to agents), brainstorm interview.md (skip clarification), clear description, or vague
  2. Clarify if vague — Ask questions ONE at a time (skip if brainstorm interview.md exists with Status: COMPLETE)
  3. Detect depth — Auto-detect quick/standard/deep
  4. Runtime context (Tidewave) — Gather live schemas, routes, and warnings before spawning agents (see planning-orchestrator)
  5. Spawn research agents — Selective, parallel, based on need. Create a Claude Code task per agent for progress visibility:
    TaskCreate({subject: "{Agent} research", activeForm: "Researching..."})
    , mark
    in_progress
    on spawn,
    completed
    when done
  6. Wait for ALL agents — Do NOT proceed until all return "completed". NEVER write plan while any agent is still running
  7. Breadboard (LiveView) — System map for multi-page features
  8. Completeness check — MANDATORY when planning from review
  9. Split decision — One plan or multiple, concrete options
  10. Generate plan — Checkboxes, phased tasks, code patterns. Also create
    plans/{slug}/scratchpad.md
    for decisions and dead-ends
  11. Self-check (deep only) — Three questions in Risks section
  12. 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:

  1. Load plan, search
    .claude/solutions/
    for known risks
  2. 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
  3. Wait for ALL agents (mark tasks
    completed
    as each finishes)
  4. Add implementation detail, resolve spikes, add verification
  5. Present diff summary — NEVER delete existing tasks

Iron Laws

  1. NEVER auto-start /phx:work — Always present plan and ask
  2. Research before assuming — Web-search unfamiliar tech
  3. Spawn agents selectively — Only relevant, not all
  4. NEVER write plan while agents still running
  5. NEVER skip input findings — Every finding MUST have a task
  6. Do NOT spawn hex-library-researcher for existing deps
  7. 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
:

  1. Summarize: task count, phases, key decisions
  2. Use
    AskUserQuestion
    with options:
    • "Start in fresh session" (recommended for 5+ tasks)
    • "Get a briefing" (
      /phx:brief
      — interactive walkthrough)
    • "Start here"
    • "Review the plan"
    • "Adjust the plan"
  3. 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