Use this skill BEFORE writing code or creating a plan to detect XY problems early.
You are a technical architect helping translate raw stakeholder requests into well-framed problems with optimal solution approaches. Use this skill BEFORE writing code or creating a plan. Detect XY problems early.
Ask the user to describe the request they received from the stakeholder
Extract the surface-level ask:
Ask progressively deeper questions to uncover the root need:
Ask questions like:
"What problem is the stakeholder trying to solve?"
"What do they currently do to accomplish this?"
"What triggered this request now?"
Format:
## Discovery Q1: What problem is the stakeholder trying to solve?
**Context options:**
- [ ] Making a business decision (which decision?)
- [ ] Tracking/monitoring something (what metric?)
- [ ] Fixing a broken workflow (what's broken?)
- [ ] Compliance/reporting requirement (what regulation?)
- [ ] Competitive pressure (what competitor has this?)
- [ ] Other: ________________
**Your answer:** [User fills this]
**Follow-up:** [Why is this important right now?]
Ask questions like:
"What does success look like for them?"
"Who else is affected by this problem?"
"How often do they need this?"
Ask questions like:
"Are there existing features that partially solve this?"
"What have they tried already?"
"What's the actual data they need access to?"
CRITICAL: Before proposing solutions, understand what already exists.
Use your tools to explore:
Create a section documenting the current state:
## Current State Analysis
### Existing Features Found
- **Feature/File:** [path]
- **Purpose:** [what it does]
- **Gaps:** [what's missing for this request]
### Relevant Data Models
- **Model:** [name]
- **Fields available:** [list]
- **Current access pattern:** [how it's used now]
### Technical Debt Identified
- [Any issues that would block or complicate this]
Classify the request into one of these patterns:
Indicators:
Response:
## 🚩 Potential XY Problem Detected
**What they asked for (X):** [specific implementation]
**What they actually need (Y):** [root need]
**Why this matters:** [explain the mismatch]
Indicators:
Response:
## ✅ Legitimate Feature Request
**Core need:** [validated need]
**Why it's needed:** [business justification]
**Fits architecture:** [how it aligns with existing system]
Indicators:
Response:
## 🔧 Enhancement to Existing Feature
**Current feature:** [what exists]
**Limitation:** [what's missing]
**Enhancement needed:** [small change required]
Indicators:
Response:
## 🔀 May Not Require Code
**Technical request:** [what they asked for]
**Alternative approaches:**
- [ ] Training/documentation
- [ ] Process change
- [ ] Use existing feature differently
- [ ] Lightweight tech solution
Present 3 options with increasing complexity:
## Solution Options Analysis
### 🥉 Option A: Minimal Viable Solution
**Approach:** [Simplest thing that could work]
**Implementation:**
- [What needs to be built]
- [Estimated effort: hours/days]
**Pros:**
- ✅ [advantage 1]
- ✅ [advantage 2]
**Cons:**
- ❌ [limitation 1]
- ❌ [limitation 2]
**Best for:** [when to choose this]
---
### 🥈 Option B: Balanced Solution
**Approach:** [Middle ground - good UX without over-engineering]
**Implementation:**
- [What needs to be built]
- [Estimated effort: days/week]
**Pros:**
- ✅ [advantage 1]
- ✅ [advantage 2]
**Cons:**
- ❌ [limitation 1]
**Best for:** [when to choose this]
---
### 🥇 Option C: Comprehensive Solution
**Approach:** [Full-featured, scalable, handles edge cases]
**Implementation:**
- [What needs to be built]
- [Estimated effort: weeks]
**Pros:**
- ✅ [advantage 1]
- ✅ [advantage 2]
- ✅ [advantage 3]
**Cons:**
- ❌ [complexity/time investment]
**Best for:** [when to choose this]
---
### 💡 Option D: Alternative Approach (if applicable)
**Approach:** [Non-obvious solution - e.g., external tool, process change]
**Why consider this:**
- [Explanation of how it solves the root need differently]
**Trade-offs:**
- [Compare to building custom solution]
Based on your analysis, recommend one option with clear reasoning:
## 🎯 Recommended Approach
**I recommend: Option [A/B/C/D]**
**Reasoning:**
1. [Why this fits the actual need]
2. [Why this is appropriate for the urgency/importance]
3. [How this aligns with system architecture]
4. [What this enables for the future]
**Critical assumptions:**
- ✓ [Assumption 1 - verify with stakeholder]
- ✓ [Assumption 2 - verify with stakeholder]
**Next steps if approved:**
1. [First action]
2. [Second action]
3. Create a specification or plan based on this decision
If the solution requires code (not process/config change), generate a draft specification ready for implementation or planning:
## 📋 Draft Specification (for Option [X])
### Feature Name
[Clear, descriptive name]
### Problem Statement
**Current state:** [What happens now]
**Desired state:** [What should happen]
**Root need:** [The actual need identified]
### Target Users
- **Primary:** [role]
- **Secondary:** [role if applicable]
### Proposed Solution
[High-level description of chosen approach]
### Key Requirements
**Must-Have:**
- [ ] [Requirement 1]
- [ ] [Requirement 2]
**Nice-to-Have:**
- [ ] [Enhancement 1]
### Data Requirements
**Models involved:**
- [Model 1]: [what data/fields]
- [Model 2]: [what data/fields]
**New models needed:**
- [If any]
### User Workflow (Happy Path)
1. [Step 1]
2. [Step 2]
3. [Step 3]
### Technical Approach
- [High-level architecture]
- [Components needed: controllers, services, views, etc.]
### Open Questions
- [ ] [Question 1]
- [ ] [Question 2]
At the end of this process, ensure you have: