targets/codex/skills/phx-brainstorm/SKILL.md
Brainstorm Elixir/Phoenix features — explore ideas, compare approaches, gather requirements. Use when vague idea, not sure how to approach, or want to discuss before plan.
npx skillsauth add oliver-kriska/claude-elixir-phoenix phx-brainstormInstall 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.
Interactive interview → research → synthesis loop. Produces structured
interview.md that $phx-plan detects and consumes (skipping clarification).
$phx-brainstorm Add some kind of notification system
$phx-brainstorm Improve authentication security
$phx-brainstorm # starts with open question
$phx-brainstorm {topic}
|
v
[INTERVIEW] ←──────────────────┐
| |
v (sufficient OR user exit) |
[DECISION POINT] |
├─ Research ──→ [RESEARCH] ─┘
├─ Continue interview ──────┘
├─ Make a plan ──→ STOP (suggest $phx-plan {slug})
├─ Store & exit ──→ STOP (artifacts saved)
└─ Discuss ──→ freeform ──→ [DECISION POINT]
Create .claude/plans/{slug}/ directory. Start asking ONE question at a time.
Track coverage across 6 dimensions (0=uncovered, 1=partial, 2=sufficient). Ask Scope early — for "optimize X" topics, ask about boundaries (upstream OK? Local-only? CI vs dev?) before research, not during.
| Dim | Target | Sufficient signal | |-----|--------|-------------------| | What | Specific behavior/features | Concrete verbs, not "some kind of" | | Why | Problem solved, user need | Clear benefit stated | | Scope | In/out boundaries | Explicit exclusions stated | | Where | Modules, contexts, pages | File paths or context names mentioned | | How | Approach, constraints | At least one concrete constraint | | Edge | Error states, scale, auth | 2+ edge cases identified |
Interview is "sufficient" when total score >= 8 out of 12.
Before each question, run a brief codebase scan on topics the user mentioned:
MANDATORY: Write interview.md FIRST, then use AskUserQuestion. Never let the conversation flow past this point without a formal choice.
Write current state to .claude/plans/{slug}/interview.md
Show coverage summary: "Coverage: What 2/2 | Why 2/2 | Scope 1/2 | ..."
Use AskUserQuestion with EXACTLY these options (4 max — the tool's hard limit; the auto-added "Other" covers freeform discussion):
$phx-plan .claude/plans/{slug}/interview.mdWait for user response. Do NOT proceed without explicit choice
AskUserQuestion discipline: decisions only, never narration or rhetorical check-ins. Every option states concrete impact (what happens, what it costs) so the user can pick without follow-up questions.
First cycle: MAX 2 agents — keep it fast (~2-3 min). Spawn in ONE
Tool Use block with run_in_background: true:
phoenix-patterns-analyst: "How does this codebase handle {topics}?"
Write to .claude/plans/{slug}/research/codebase-scan.mdweb-researcher: "Elixir/Phoenix approaches to {topics}"
Return 500-word summaryDo NOT spawn additional specialist agents in the first cycle. If user wants deeper investigation, they pick "More research" at the next Decision Point — then spawn focused agents for specific questions.
Evaluate — for each approach found:
Converge — present 2-3 approaches with honest trade-offs. Do NOT recommend one. Return to Decision Point (AskUserQuestion).
See references/research-integration.md for details.
$phx-plan — always present as option, let user chooseinterview.md is the contract with $phx-plan$phx-brainstorm ──→ interview.md ──→ $phx-plan (skips clarification)
──→ $phx-plan --existing (deepens)
──→ stored for later session
Position: optional upstream of $phx-plan in workflow cycle.
references/interview-techniques.md — coverage scoring,
question templates, scan patterns, signal detection, interview.md formatreferences/research-integration.md — diverge-evaluate-converge,
agent spawn templates, approach presentation formattools
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.