All tutorials
20 minintermediate

Run Product Discovery with Opportunity Solution Trees

Use Teresa Torres' Opportunity Solution Tree framework to go from customer interviews to validated experiments — all inside Claude Code.

Follow along using:

Product discovery shouldn't be a mystery. Teresa Torres' Opportunity Solution Tree (OST) gives you a clear structure: start with an outcome, map customer opportunities, brainstorm solutions, and design assumption tests. The problem? Building and maintaining an OST takes hours of manual synthesis. Claude Code collapses that into minutes. You'll paste raw interview notes and walk away with a structured tree and experiment designs. If you're new to OSTs, read Teresa's original framework at producttalk.org/opportunity-solution-trees.

1

Set up your discovery workspace

Create a CLAUDE.md that gives Claude your product context and discovery goals. This is where you define the outcome you're chasing — the top of your OST.

bash
cat > CLAUDE.md << 'EOF'
# CLAUDE.md

## Role
Product Manager running continuous discovery.
Framework: Opportunity Solution Trees (Teresa Torres).
Reference: https://www.producttalk.org/opportunity-solution-trees/

## Product Context
- B2B SaaS project management tool
- 2,400 active teams, 85% retention
- Target outcome: Increase weekly active usage from 3.2 to 4.5 days/week

## Discovery State
- Conducting weekly customer interviews
- 12 interviews completed this cycle
- Focus: why teams stop using the tool mid-week

## Output Preferences
- Structure everything as Outcome → Opportunities → Solutions → Tests
- Use markdown trees for visual hierarchy
- Be specific — no vague opportunity statements
EOF
C
Claudeclaude.ai
Message Claude…
2

Create a discovery skill

This skill teaches Claude the OST framework — how to extract opportunities from interviews, distinguish opportunities from solutions, and structure everything into a tree. This is the engine.

bash
mkdir -p .claude/skills
cat > .claude/skills/discovery-ost.md << 'EOF'
# Product Discovery — OST Skill

Process customer interview data using Teresa Torres'
Opportunity Solution Tree framework.

## Framework Reference
- Source: https://www.producttalk.org/opportunity-solution-trees/
- Book: "Continuous Discovery Habits" by Teresa Torres

## Key Definitions
- **Outcome**: The measurable business/product result we're driving toward
- **Opportunity**: A customer need, pain point, or desire (NOT a solution)
- **Solution**: An idea that addresses one or more opportunities
- **Assumption Test**: A small experiment to validate a risky assumption

## Process
1. Extract raw quotes and observations from interview notes
2. Identify opportunities (needs, pains, desires) — never solutions
3. Group related opportunities into themes
4. For each opportunity, brainstorm 3+ solutions
5. For each promising solution, identify riskiest assumption
6. Design a small experiment to test that assumption

## Opportunity Rules (Critical)
- Opportunities are CUSTOMER problems, not OUR ideas
- "Users want a dashboard" is a SOLUTION, not an opportunity
- "Users can't see their team's progress at a glance" is an opportunity
- Use the customer's language when possible
- Every opportunity must connect to the target outcome

## Output: Markdown Tree
```
🎯 OUTCOME: [target metric]
├── 🔍 Opportunity: [customer need]
│   ├── 💡 Solution: [idea 1]
│   │   └── 🧪 Test: [experiment]
│   ├── 💡 Solution: [idea 2]
│   │   └── 🧪 Test: [experiment]
│   └── 💡 Solution: [idea 3]
├── 🔍 Opportunity: [customer need]
│   ├── 💡 Solution: [idea 1]
│   └── 💡 Solution: [idea 2]
```
EOF
C
Claudeclaude.ai
Message Claude…
3

Feed it raw interview notes

Here's where the magic happens. Paste your messy, unstructured interview notes. Claude extracts opportunities — the customer needs, pains, and desires hidden in the conversation.

bash
claude "Extract opportunities from these interview notes:

Interview: Sarah, PM at a 50-person startup (Mar 25)
---
'We use the tool Monday and Tuesday for sprint planning, but
by Wednesday everyone's back in Slack. The notifications are
overwhelming so people mute them. Then they miss actual updates.
I wish there was a way to see just the things that changed since
I last looked. Also the mobile app is basically useless — I
can't approve anything on my phone so I have to wait until I'm
at my desk. My team in Berlin is 6 hours ahead so by the time
I approve their PRs it's already their end of day.'

Interview: Jake, Eng Lead at a 200-person company (Mar 27)
---
'The weekly view is fine but I need a daily standup view. I
check the tool first thing in the morning but there's no way to
see just what happened overnight. I end up asking people in
Slack anyway. Also the search is terrible — I can never find
old decisions. We started using a separate wiki just for that.'"
C
Claudeclaude.ai
Message Claude…
4

Build the full Opportunity Solution Tree

Now ask Claude to build the complete tree — connecting your outcome to the opportunities, generating solutions for each, and identifying the riskiest assumptions. This is what takes hours manually.

bash
claude "Build the full OST. For each opportunity, brainstorm 3 solutions and identify the riskiest assumption for the most promising one."
C
Claudeclaude.ai
Message Claude…
5

Generate assumption tests for your top solutions

Pick the solutions you're most excited about and have Claude design lightweight experiments. Teresa Torres calls these "assumption tests" — small, fast experiments that reduce risk before you build anything.

bash
claude "Design assumption tests for these two solutions:
1. Smart notification digest (batched, prioritized)
2. Mobile approval flow (1-tap approve/reject)

For each, give me:
- The riskiest assumption
- A test I can run this week
- What 'success' looks like (with a number)
- Estimated effort"
C
Claudeclaude.ai
Message Claude…
6

Keep your tree alive as a living document

An OST isn't a one-time exercise — it evolves every week as you learn. Save it to a file and update it after every interview. Claude remembers the context and builds on what's there.

bash
# After your next round of interviews:
claude "Update the OST in discovery/ost-2026-03-29.md with these new findings:

Interview: Maria, Designer at a 30-person agency (Apr 1)
---
'I actually love the notifications but they all look the same.
I can't tell if something is urgent or just a comment. Color
coding or priority levels would help. Also, I realized I
only open the app when someone @mentions me — otherwise I
forget it exists.'"
C
Claudeclaude.ai
Message Claude…

Share what you built

Let your network know. Pre-filled post — edit before posting.

Just completed "Run Product Discovery with Opportunity Solution Trees" on Claude Code Guide in 20 min. No coding experience needed. Claude does the work — you do the thinking. 👇 Free tutorial: https://claudecodeguide.dev/tutorials/product-discovery-ost

Stay in the loop

New guides, templates, and tips. No spam. Unsubscribe anytime.