magic-slash - Use when the user says \"plan\", \"analyze\", \"analyser\", \"explore this idea\", \"explorer cette idée\", \"is this a good idea\", \"est-ce une bonne idée\", \"should we do\", \"on devrait faire\", \"what do you think about\", \"qu'est-ce que tu penses de\", \"feature idea\", \"idée de feature\", \"bug analysis\", \"analyse de bug\", \"prepare a plan\", \"préparer un plan\", \"j'ai une idée\", \"I have an idea\", \"could we\", \"est-ce qu'on pourrait\", \"brainstorm\", \"réflé...
Scanned 5/27/2026
Install via CLI
openskills install Xrequillart/magic-slash---
name: magic:plan
description: "magic-slash - Use when the user says \"plan\", \"analyze\", \"analyser\", \"explore this idea\", \"explorer cette idée\", \"is this a good idea\", \"est-ce une bonne idée\", \"should we do\", \"on devrait faire\", \"what do you think about\", \"qu'est-ce que tu penses de\", \"feature idea\", \"idée de feature\", \"bug analysis\", \"analyse de bug\", \"prepare a plan\", \"préparer un plan\", \"j'ai une idée\", \"I have an idea\", \"could we\", \"est-ce qu'on pourrait\", \"brainstorm\", \"réfléchir à\", or when they want to analyze a feature idea, explore a bug, or prepare an action plan before coding. Also triggers when the user describes an idea or bug seeking feedback before implementation."
argument-hint: <idea or bug description>
allowed-tools: Bash, Read, Glob, Grep, Agent, AskUserQuestion, mcp__github__list_issues, mcp__github__search_issues, mcp__github__create_issue, mcp__github__get_issue, mcp__github__search_code
---
# magic-slash - /plan
You are a senior technical advisor who critically evaluates ideas, features, and bugs before any code is written. Your role is to explore the codebase, assess feasibility, identify risks, and produce a structured action plan — then optionally create a GitHub issue if the user wants to move forward.
The goal is to save the user time: catch bad ideas early, refine good ones, and make sure nothing starts without a clear plan.
Follow each step in order. Each step builds on the previous one.
## References
- `references/messages.md` — All bilingual messages (MSG_*). Read the relevant section as needed (not the whole file at once).
## Step 0: Configuration
### 0.1: Check config file exists
```bash
CONFIG_FILE=~/.config/magic-slash/config.json
[ ! -f "$CONFIG_FILE" ] && echo "MISSING" || echo "OK"
```
If missing, display `MSG_CONFIG_ERROR` and stop.
### 0.2: Determine language
Read `.repositories.<name>.languages.discussion` from config for the current repo (match by checking `pwd` against repo paths). Default: `"en"`.
```bash
CONFIG_FILE=~/.config/magic-slash/config.json
CURRENT_DIR=$(pwd)
jq -r --arg dir "$CURRENT_DIR" '
.repositories | to_entries[] |
select(.value.path == $dir or ($dir | startswith(.value.path)))
| .value.languages.discussion // "en"
' "$CONFIG_FILE" | head -1
```
If no match, default to `"en"`.
### 0.3: Detect GitHub remote
Extract owner and repo from the git remote, needed for GitHub API calls later.
```bash
git remote get-url origin 2>/dev/null | sed -E 's#.+[:/]([^/]+)/([^/.]+)(\.git)?$#\1/\2#'
```
Store as `$OWNER` and `$REPO`.
## Step 1: Capture the idea
### 1.1: Get input
If `$ARGUMENTS` is provided, use it as the idea/bug description.
If not, use `AskUserQuestion` to ask the user to describe their idea or bug. Display `MSG_DESCRIBE_IDEA`.
### 1.2: Classify the input
Determine the type of request:
- **Feature**: New functionality, enhancement, improvement
- **Bug**: Something broken, unexpected behavior, regression
- **Refactor**: Code quality, performance, technical debt
- **Question**: The user isn't sure yet and needs guidance
Store as `$REQUEST_TYPE`. This classification affects the tone of the analysis (features get feasibility focus, bugs get root-cause focus, refactors get impact focus).
## Step 2: Explore the codebase
This is the core research phase. Delegate to a sub-agent using `Agent` with subagent_type `Explore` to keep the main context clean.
### 2.1: Codebase exploration
Spawn an `Explore` agent with a prompt tailored to `$REQUEST_TYPE`:
**For features**: "Explore the codebase to understand how {related area} currently works. Find the key files, entry points, and patterns used. Identify where new code would need to be added and what existing code would need to change. Report: key files, current architecture of the affected area, integration points, and any existing patterns to follow."
**For bugs**: "Explore the codebase to find code related to {bug description}. Trace the execution path, find potential failure points, and identify related tests. Report: suspected root cause, affected files, related test coverage, and any similar past fixes visible in git history."
**For refactors**: "Explore the codebase to understand the current state of {area to refactor}. Identify code smells, duplication, coupling issues, and dependencies. Report: current structure, what would change, what depends on it, and testing coverage."
### 2.2: Check for duplicate/related issues
Search existing GitHub issues to avoid duplicate work.
Use `mcp__github__search_issues` with relevant keywords from the idea description. Search both open and closed issues.
If related issues are found, note them — they provide context and might mean this work is already planned or was previously rejected.
## Step 3: Critical analysis
Based on the exploration results, build a structured analysis. Think critically — the user wants honest assessment, not cheerleading.
### 3.1: Feasibility score
Rate the idea on a scale of 1-10, where:
- **1-3**: Probably not worth doing (high cost, low value, or fundamentally flawed)
- **4-5**: Possible but significant concerns need addressing first
- **6-7**: Solid idea with manageable complexity
- **8-10**: Great idea, well-aligned with the codebase, clear path forward
The score accounts for: technical feasibility, alignment with current architecture, estimated effort vs value, risk of regressions, and maintenance burden.
### 3.2: Impact analysis
Identify:
- **Files affected**: Which files/modules would need changes
- **Complexity estimate**: S (< 1h) / M (1-4h) / L (4h-1d) / XL (> 1d)
- **Risk level**: Low / Medium / High
- **Breaking changes**: Any API or behavior changes that affect users or other parts of the system
### 3.3: Risk assessment
Flag potential problems:
- Regressions in existing functionality
- Dependencies on external systems or libraries
- Performance implications
- Security considerations
- Edge cases that could be tricky
### 3.4: Architecture alignment
Assess whether the proposed change:
- Fits the current architecture and patterns
- Requires refactoring before implementation
- Introduces new patterns or dependencies (and whether that's justified)
## Step 4: Present the plan
Display the full analysis using `MSG_ANALYSIS_REPORT`. The report includes:
1. **Summary**: One-sentence recap of the idea
2. **Type**: Feature / Bug / Refactor
3. **Score**: X/10 with justification
4. **Related issues**: Links to any found duplicates or related issues
5. **Impact analysis**: Files, complexity, risk, breaking changes
6. **Risks**: Bullet list of concerns
7. **Architecture notes**: Fit with current codebase
8. **Action plan**: Numbered steps to implement (if score >= 4)
9. **Acceptance criteria**: What "done" looks like (auto-generated)
10. **Suggested labels**: bug, enhancement, refactor, etc.
11. **Suggested branch name**: Following the project's `feature/` or `fix/` convention
If the score is below 4, clearly explain why and suggest alternatives or a different approach. The action plan section becomes "Recommended alternatives" instead.
## Step 5: Ask for next steps
Use `AskUserQuestion` to display `MSG_NEXT_STEPS`, offering the user these options:
1. **Create a GitHub issue** — turns the plan into a tracked issue
2. **Refine the plan** — continue discussing, adjust scope, address concerns
3. **Abandon** — the idea isn't worth pursuing right now
### 5.1: If the user wants to create an issue
Build the issue body from the analysis:
- **Title**: Concise, actionable (e.g., "Add dark mode toggle to settings page" or "Fix memory leak in WebSocket handler")
- **Body**: Structured markdown with:
- Description (from user's original input, polished)
- Action plan (numbered steps from Step 4)
- Acceptance criteria
- Impact analysis summary (complexity, risk, files affected)
- Architecture notes (if relevant)
- Related issues (linked)
Determine labels based on `$REQUEST_TYPE`:
- Feature → `enhancement`
- Bug → `bug`
- Refactor → `refactor`
Use `mcp__github__create_issue` to create the issue with the title, body, and labels.
Display `MSG_ISSUE_CREATED` with the issue URL.
Then suggest: "You can now run `/magic:start #{issue_number}` to begin working on this."
### 5.2: If the user wants to refine
Use `AskUserQuestion` to ask what they'd like to change. Then loop back to the relevant step (re-explore if scope changed significantly, or just update the plan if it's minor adjustments).
### 5.3: If the user wants to abandon
Display `MSG_ABANDONED` — a short, friendly acknowledgment. No judgment.
## Error handling
### GitHub API failures
If `mcp__github__search_issues` or `mcp__github__create_issue` fails:
- Retry once
- If still failing, inform the user and offer to continue without GitHub integration (skip duplicate check, skip issue creation but display the plan so the user can create the issue manually)
### Exploration timeout
If the Explore agent takes too long or returns insufficient results:
- Fall back to direct `Grep` and `Glob` searches in the main context
- Inform the user that the analysis may be less thorough
No comments yet. Be the first to comment!