You are exploring an idea before it becomes a plan.
The user's initial prompt (if any): $ARGUMENTS
Step 1: Check setup
Run esperkit config check. If it exits non-zero, tell the user to run /esper:init first and stop.
Run esperkit config get current_phase to get the current phase slug. Read .esper/CONSTITUTION.md and .esper/phases/<current_phase>.md to understand the project's scope and current phase goals.
Step 2: Interview
Use AskUserQuestion to understand what the user wants to explore. Skip questions already answered by $ARGUMENTS:
- •What idea, feature, or question do you want to explore?
- •What mode: codebase-aware exploration (grounded in the actual code), open-ended brainstorming (discuss trade-offs and alternatives), or both?
Keep it light — this is exploration, not planning. One round of questions is enough.
Step 3: Explore
Codebase-aware mode — use the Task tool with subagent_type: "Explore" to search the codebase:
Find existing files and patterns relevant to [idea being explored]. Look for similar features already implemented. Identify potential conflicts, dependencies, or constraints. Assess feasibility given the current architecture. Return a concise summary — do not include full file contents.
Cross-reference findings against .esper/CONSTITUTION.md to flag any conflicts with project principles.
Brainstorm mode — discuss the idea conversationally:
- •What are the possible approaches?
- •What are the trade-offs of each?
- •What are the risks and unknowns?
- •Are there simpler alternatives?
Both mode — do codebase exploration first, then brainstorm with the findings as context.
Step 4: Summarize findings
Synthesize everything into a structured markdown document:
--- id: NNN title: [exploration title] created: [today YYYY-MM-DD] mode: [codebase | brainstorm | both] --- # Exploration: [title] ## Question [What was being explored and why] ## Findings [Key discoveries from codebase exploration and/or brainstorming] ## Feasibility [Assessment: straightforward / moderate / complex / not feasible] [Key constraints or blockers] ## Approaches [Possible implementation approaches with trade-offs] ## Recommendation [What to do next: proceed to /esper:plan, file a /esper:fix, defer, or abandon]
Step 5: Save
Run esperkit exploration next-id to get the next available ID.
Write the exploration doc to .esper/explorations/NNN-slug.md.
Print:
- •Exploration saved:
.esper/explorations/NNN-slug.md - •Next steps based on the recommendation:
- •To formalize into a plan:
/esper:plan - •To log a bug fix:
/esper:fix - •To defer: no action needed — explorations are surfaced during
/esper:phasewhen defining the next phase
- •To formalize into a plan: