Plan Elixir/Phoenix Feature
Plan a feature by researching the relevant Elixir/Phoenix concerns, then
output a structured plan with checkboxes.
What Makes phx-plan Different from /plan
- Covers relevant concerns through resumable research tracks
- 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
- Text after the skill name = 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 research), 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
- Create research state — Before research, create
.claude/plans/{slug}/scratchpad.md with a concern-track checklist
- Gather optional runtime context — Only when Tidewave tools are independently
configured and exposed; otherwise inspect source, routes, schemas, and tests
- Research selectively — Cover only relevant concerns. Native generic
subagents may run independent tracks in parallel, but they are optional.
Without them, run every selected track sequentially in this session and
save evidence under
.claude/plans/{slug}/research/
- Finish ALL research tracks — Maintain the scratchpad checklist,
marking each selected track
[x] only after its evidence is captured.
NEVER write the plan while any selected track remains unchecked
- Breadboard (LiveView) — Produce the system map from collected evidence
- Completeness check — MANDATORY when planning from review
- Split decision — One plan or multiple, concrete options
- Generate plan — Checkboxes, phased tasks, code patterns.
Reuse
.claude/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 references/planning-workflow.md for detailed step-by-step.
--existing Mode (Deepening)
Enhance an existing plan without relying on named agents:
- Load the plan and create or update
.claude/plans/{slug}/scratchpad.md
- Identify thin sections and add a checklist of relevant concern tracks
- Complete every track in this session, sequentially by default; generic workers
are optional only for independent tracks and must write evidence under
.claude/plans/{slug}/research/
- Produce breadboarding and infrastructure notes directly from the gathered
evidence, independent of whether workers were used
- Add implementation detail, resolve spikes, and strengthen verification
- Present a diff summary; never delete or silently rewrite existing tasks
Iron Laws
- NEVER auto-start phx-work — Always present plan and ask
- Research before assuming — Web-search unfamiliar tech
- Select research tracks narrowly — Only relevant concerns, not all
- NEVER write the plan while selected research tracks remain incomplete
- NEVER skip input findings — Every finding MUST have a task
- Do NOT run a library-selection track for existing dependencies
- 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
- Ask the user a normal conversational question with these 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)
references/planning-workflow.md — Detailed step-by-step
references/plan-template.md
references/complexity-detail.md
references/example-plan.md
references/agent-selection.md
references/breadboarding.md
1---2name: phx-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.4---56# Plan Elixir/Phoenix Feature78Plan a feature by researching the relevant Elixir/Phoenix concerns, then9output a structured plan with checkboxes.1011## What Makes phx-plan Different from /plan12131. Covers relevant concerns through resumable research tracks142. Plans with `[ecto]`, `[liveview]`, `[oban]` task routing153. Checks for Iron Law compliance in the plan164. Includes `mix compile/format/credo/test` verification175. Understands Phoenix context boundaries1819## Usage2021```22phx-plan Add user avatars with S3 upload23phx-plan .claude/plans/notifications/reviews/notifications-review.md24phx-plan Implement notifications --depth deep25phx-plan .claude/plans/auth/plan.md --existing26```2728## Arguments2930- Text after the skill name = feature description, review file, or existing plan31- `--depth quick|standard|deep` = Planning depth (auto-detected)32- `--existing` = Enhance an existing plan with deeper research3334## Workflow35361. **Gather context** — File path (skip to research), brainstorm37 interview.md (skip clarification), clear description, or vague382. **Clarify if vague** — Ask questions ONE at a time (skip if39 brainstorm interview.md exists with Status: COMPLETE)403. **Detect depth** — Auto-detect quick/standard/deep414. **Create research state** — Before research, create42 `.claude/plans/{slug}/scratchpad.md` with a concern-track checklist435. **Gather optional runtime context** — Only when Tidewave tools are independently44 configured and exposed; otherwise inspect source, routes, schemas, and tests456. **Research selectively** — Cover only relevant concerns. Native generic46 subagents may run independent tracks in parallel, but they are optional.47 Without them, run every selected track sequentially in this session and48 save evidence under `.claude/plans/{slug}/research/`497. **Finish ALL research tracks** — Maintain the scratchpad checklist,50 marking each selected track `[x]` only after its evidence is captured.51 NEVER write the plan while any selected track remains unchecked528. **Breadboard** (LiveView) — Produce the system map from collected evidence539. **Completeness check** — MANDATORY when planning from review5410. **Split decision** — One plan or multiple, concrete options5511. **Generate plan** — Checkboxes, phased tasks, code patterns.56 Reuse `.claude/plans/{slug}/scratchpad.md` for decisions and dead-ends5712. **Self-check** (deep only) — Three questions in Risks section5813. **Present and ask** — STOP, show summary, let user decide5960**When planning from review**: Every finding must appear in the61plan — either as a task OR explicitly deferred by the user.6263See `references/planning-workflow.md` for detailed step-by-step.6465### --existing Mode (Deepening)6667Enhance an existing plan without relying on named agents:68691. Load the plan and create or update `.claude/plans/{slug}/scratchpad.md`702. Identify thin sections and add a checklist of relevant concern tracks713. Complete every track in this session, sequentially by default; generic workers72 are optional only for independent tracks and must write evidence under73 `.claude/plans/{slug}/research/`744. Produce breadboarding and infrastructure notes directly from the gathered75 evidence, independent of whether workers were used765. Add implementation detail, resolve spikes, and strengthen verification776. Present a diff summary; never delete or silently rewrite existing tasks7879## Iron Laws80811. **NEVER auto-start phx-work** — Always present plan and ask822. **Research before assuming** — Web-search unfamiliar tech833. **Select research tracks narrowly** — Only relevant concerns, not all844. **NEVER write the plan while selected research tracks remain incomplete**855. **NEVER skip input findings** — Every finding MUST have a task866. **Do NOT run a library-selection track for existing dependencies**877. **Skip research when planning from review/investigation** — When88 input is a review file or `phx-investigate` output, the findings89 ARE the research. Do NOT spawn agents to re-discover what the90 review already found. Convert findings directly to plan tasks.91 (Confirmed: 56-session analysis showed same findings discovered92 3-4x across review→investigate→plan phases, wasting ~96K tokens)9394## Integration with Workflow9596```text97phx-plan {feature} <-- YOU ARE HERE98 |99 phx-plan --existing (optional enhancement)100 |101 ASK USER -> phx-work .claude/plans/{feature}/plan.md102 |103phx-review → phx-compound104```105106## Notes107108- Plans saved to `.claude/plans/{slug}/plan.md`109- Research reports in `.claude/plans/{slug}/research/` can be deleted after110111## CRITICAL: After Writing the Plan112113**STOP. Do NOT proceed to implementation.**114115After writing `.claude/plans/{slug}/plan.md`:1161171. Summarize: task count, phases, key decisions1182. Ask the user a normal conversational question with these options:119 - "Start in fresh session" (recommended for 5+ tasks)120 - "Get a briefing" (`phx-brief` — interactive walkthrough)121 - "Start here"122 - "Review or adjust the plan"1233. Wait for user response. Never auto-start work.124125**When user selects "Start in fresh session"**, print:126127```1281. Run `/new` to start a fresh session1292. Then run one of:130 phx-work .claude/plans/{slug}/plan.md131 phx-full .claude/plans/{slug}/plan.md (includes review + compound)132```133134This is Iron Law #1. Violating it wastes user context.135136## References (DO NOT read — for human reference only)137138- `references/planning-workflow.md` — Detailed step-by-step139- `references/plan-template.md`140- `references/complexity-detail.md`141- `references/example-plan.md`142- `references/agent-selection.md`143- `references/breadboarding.md`