From qe-framework
Runs product discovery using OST, assumption mapping, experiment design, and customer interview scripts. Validates customer problems and solutions.
How this skill is triggered — by the user, by Claude, or both
Slash command
/qe-framework:Qpm-discoveryThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
**Distinct from:** Qpm-strategy (frameworks), Qpm-prd (documentation). This skill validates problems and solutions through customer interviews, experiments, and OST-driven prioritization. It does not perform competitive or market analysis (see /Qpm-strategy) or write comprehensive PRD documentation (see /Qpm-prd). Discovery answers *what customers actually need*; strategy answers *how the marke...
Distinct from: Qpm-strategy (frameworks), Qpm-prd (documentation). This skill validates problems and solutions through customer interviews, experiments, and OST-driven prioritization. It does not perform competitive or market analysis (see /Qpm-strategy) or write comprehensive PRD documentation (see /Qpm-prd). Discovery answers what customers actually need; strategy answers how the market is positioned; PRDs answer what we commit to build.
Run continuous product discovery: map opportunities, surface risky assumptions, design cheap experiments, run customer interviews, and triage feature requests. Combines Teresa Torres' OST with Alberto Savoia's pretotyping into a single actionable workflow.
Desired Outcome (metric to move)
-> Opportunity (unmet need / pain point)
-> Solution (idea addressing the opportunity)
-> Experiment (cheapest test of the riskiest assumption)
Opportunity Score = Importance x (1 - Satisfaction)
# OST: [Product / Feature Area]
## Desired Outcome
[Metric]: [Current] -> [Target] by [Date]
## Opportunities (ranked by Opportunity Score)
| # | Opportunity | Importance | Satisfaction | Score |
|---|-------------|-----------|-------------|-------|
| 1 | [unmet need] | 8 | 0.2 | 6.4 |
| 2 | [pain point] | 7 | 0.5 | 3.5 |
## Solutions per Opportunity
### Opportunity 1: [name]
- Solution A: [description]
- Solution B: [description]
- Solution C: [description]
## Experiments per Solution
### Solution A
- Assumption: [riskiest assumption]
- Experiment: [method] -> see Section 3
| Type | Question | Example |
|---|---|---|
| Value | Will users want this? | "Users care enough about X to switch" |
| Usability | Can users figure it out? | "Users can complete checkout in <3 steps" |
| Viability | Does it work for the business? | "CAC stays below $50 at scale" |
| Feasibility | Can we build it? | "API latency stays under 200ms" |
High Impact
|
TEST NOW | DECIDE LATER
(high impact, | (high impact,
high unknown) | low unknown)
|
----------------+----------------
|
SKIP | MONITOR
(low impact, | (low impact,
high unknown) | low unknown)
|
Low Impact
High Uncertainty -----> Low Uncertainty
| # | Assumption | Type | Impact | Uncertainty | Action |
|---|-----------|------|--------|-------------|--------|
| 1 | Users will pay $20/mo | Value | High | High | Test Now |
| 2 | Team can build in 2 sprints | Feasibility | Med | Low | Monitor |
Use XYZ hypothesis format: "We believe that at least [X]% of [Y] will [Z]." Choose from pretotype methods (Landing Page, Wizard of Oz, Concierge, etc.) and always measure behavior, not opinions (Skin-in-the-Game principle).
See references/experiment-and-interview-templates.md for XYZ format details, pretotype methods table, and experiment card template.
Run structured interviews: Setup (2 min) -> Warm-up (3 min) -> Core Questions about past behavior (20-30 min) -> Probes (10 min) -> Wrap-up (5 min). Key rule: ask about past behavior, never pitch your solution, 5 interviews reveal ~80% of themes.
See references/experiment-and-interview-templates.md for full interview structure, rules, and synthesis template.
Incoming Request
-> Extract the PROBLEM (why they want it)
-> Map to existing Opportunity (or create new)
-> Assess frequency + severity
-> Prioritize within OST
## Feature Request: [Title]
**Source:** [Customer / Sales / Internal / Support]
**Verbatim:** "[Exact request as stated]"
### Problem Extraction
- **Stated solution:** [What they asked for]
- **Underlying problem:** [Why they asked — the real pain]
- **Who has this problem:** [Persona / segment]
- **How they solve it today:** [Workaround]
### Opportunity Mapping
- **Maps to Opportunity:** [Existing OST opportunity, or "NEW"]
- **Opportunity Score:** [Importance x (1 - Satisfaction)]
### Assessment
| Dimension | Rating | Notes |
|-----------|--------|-------|
| Frequency | [Daily/Weekly/Monthly/Rare] | |
| Severity | [Blocker/Major/Minor/Nice-to-have] | |
| Revenue impact | [High/Med/Low] | |
| Strategic fit | [Core/Adjacent/Distraction] | |
### Decision
- [ ] Add to OST and prioritize
- [ ] Merge with existing opportunity
- [ ] Defer (reason: )
- [ ] Decline (reason: )
Credits: Frameworks adapted from phuryn/pm-skills (MIT) -- OST based on Teresa Torres, experiments based on Alberto Savoia
npx claudepluginhub inho-team/qe-framework --plugin qe-frameworkCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.