From epicsagas
Problem discovery for individuals, teams, and startups. Reframes vague ideas, solution-first thinking, and systemic complaints into structured problem definitions. Triggers on: 'discover', 'problem discovery', 'define the problem', 'what should we build', 'unclear requirements'.
How this skill is triggered — by the user, by Claude, or both
Slash command
/epicsagas:discoverThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Help the user articulate **the real problem** before jumping to solutions. No spec without a problem statement.
Help the user articulate the real problem before jumping to solutions. No spec without a problem statement.
Auto-trigger: Request lacks clear problem/goal, names a solution without why, lists symptoms without root cause, says "I don't know where to start", or is so broad it could mean 3+ things.
Explicit (/discover): User wants formal problem exploration for a new project/feature, re-exploration of a prior problem, or team alignment on "what are we solving?"
Repeat the request back. Ask: "Is that the core, or is there more?" Categorize:
| Category | Signal | Example |
|---|---|---|
| Solution-first | Names tech/approach first | "Add Redis caching", "Build an app" |
| Feature-no-context | Describes output, not why | "Build a dashboard", "Need a landing page" |
| Systemic complaint | Broad negative without specifics | "Everything is slow", "Customers aren't coming" |
| Vague ambition | Goal with no boundaries | "Make it better", "Want to grow" |
| Clear problem | Observable gap stated | "Mobile payment failure rate is 12%" |
Select technique by category. Max 3 questions per round, max 3 rounds. If user can't answer or says "not sure", proceed to Frame with what you have.
| User signal | Technique | Core question |
|---|---|---|
| Names a solution | 5 Whys | "What's happening that makes you need this?" → repeat, max 5 levels |
| Feature without why | JTBD | "What situation makes you need this? What does 'done' look like?" |
| "Everything is broken" | Fishbone | "Which area: People / Process / Technology / Data / Environment?" |
| Vague or contradictory | Socratic | "What specifically do you mean by 'X'?" |
| Vision, no path | Done looks like | "When this works perfectly, what do you see?" |
| Uncertain assumptions | Assumption map | "What must be true for this to work?" |
Extract from JTBD: "When [situation], I want [motivation], so I can [outcome]."
Skip round 3 if 2 rounds give enough to frame.
Synthesize into a structured problem statement:
[Who] experiences [observable problem] when [trigger condition], resulting in [quantified impact]. The desired state is [measurable outcome].
Include: root cause / job story, constraints (timeline, resources, scale), assumptions (certain/uncertain), out-of-scope boundaries.
Show to user. Ask: "Does this capture the problem accurately?"
mkdir -p discover
Write to discover/PROBLEM-{timestamp}.md. One problem per file — if multiple emerge, address sequentially.
"Problem defined. Next: execution plan, deeper exploration, or uncover more problems."
If user identifies additional problems, loop back to Step 2.
| Excuse | Rebuttal | Do instead |
|---|---|---|
| "Just start building" | Building without a problem is expensive guessing. | 5 minutes of framing saves hours of rework. |
| "The problem is obvious" | Then you'd have a spec, not a vague request. | Write it. If obvious, takes 30 seconds. |
| "No time for questions" | You have less time to build the wrong thing. | 2 focused rounds, not 10 open-ended ones. |
| "I already told you" | You told a solution. The problem is why you need it. | One "why" question. If answer reveals it, proceed. |
| "Figure it out from the code" | Code shows what exists, not what's missing or why it hurts. | Combine code exploration with user context. |
| "Let me show you the bug" | A bug is a symptom. Fixing symptoms is whack-a-mole. | Trace to root cause before jumping to fix. |
3 questions per round (overwhelming)
3 rounds without framing attempt (analysis paralysis)
discover/PROBLEM-{timestamp}.md:
---
status: framed
created: {ISO-8601}
context: {one-line summary}
---
# Problem: {title}
## Problem Statement
{Who} experiences {observable problem} when {trigger condition}, resulting in {quantified impact}. The desired state is {measurable outcome}.
## Root Cause / Job Story
{5 Whys chain or JTBD job story}
## Constraints
- Timeline: {when needed}
- Resources: {stack, team, budget}
- Scale: {expected users, traffic, data}
- Compatibility: {existing system integration}
## Assumptions
- {assumption} — certain / uncertain
## Out of Scope
- {what this does NOT cover}
npx claudepluginhub epicsagas/plugins --plugin epicsagasGuides collaborative design exploration before implementation: explores context, asks clarifying questions, proposes approaches, and writes a design doc for user approval.
Creates structured, bite-sized implementation plans from specs or requirements before writing code. Useful for breaking down multi-step tasks into testable steps with file structure and task boundaries.
Synthesizes the current conversation into a structured spec (PRD) and publishes it to the project issue tracker with a ready-for-agent label, without interviewing the user.