Opportunity Solution Tree (OST)
SkillDev toolsUse when you need to ensure every feature in the backlog connects to a measurable business outcome — applies Teresa Torres' OST framework to map outcomes → opportunities → solutions → experiments.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Opportunity Solution Tree (OST) skill
What this skill tells your AI
The instructions your AI receives, as published by drvoss/everything-copilot-cli in skills/product/opportunity-solution-tree/SKILL.md and read by ahel’s review.
Teresa Torres' Opportunity Solution Tree prevents building features that don't matter. It ensures every solution you build is connected to a real user pain and a business outcome you care about.
The Framework
Desired Outcome
└── Opportunity 1 (user pain / unmet need)
│ ├── Solution A
│ │ ├── Experiment 1
│ │ └── Experiment 2
│ └── Solution B
└── Opportunity 2
└── Solution C
Outcome: A measurable business goal (OKR-level: "Increase trial-to-paid conversion by 15%") Opportunity: A user pain, unmet need, or desire (discovered through research) Solution: A product change that might address the opportunity Experiment: The smallest thing you can build to test if the solution works
Workflow
Step 1: Define the Desired Outcome
> I'm building the OST for: [product/feature area]
>
> Help me define 1 crisp desired outcome. It should be:
> - Measurable (has a metric)
> - Achievable within the quarter
> - Aligned with business goals
>
> Context: Our goal is [business context]. Key metric: [current baseline].
Keep one outcome metric, then decompose it into two to four leading input metrics the team can move weekly. The outcome is usually lagging; for each input, state the causal contribution you expect and how the team can influence it. This preserves one outcome at a time while allowing several diagnostic and actionable inputs beneath it.
Step 2: Map the Opportunity Space
> Now let's map the opportunity space for this outcome.
>
> Based on [user research / support tickets / interview data / NPS feedback]:
> > [paste data here]
>
> Identify the top 5-7 user opportunities (pains, needs, desires) that, if addressed,
> would most directly improve [outcome metric].
>
> Format as a prioritized list with a one-sentence "when I [situation], I struggle to [pain]" statement for each.
Step 3: Generate Solutions
For each top opportunity:
> For the opportunity: "[opportunity statement]"
>
> Generate 5-7 possible solutions. Include:
> - Conventional solutions (what everyone would build)
> - Lateral solutions (unexpected approaches)
> - Low-tech or process solutions (not just feature builds)
>
> For each, estimate: effort (S/M/L), confidence (Low/Med/High), impact potential (Low/Med/High)
Step 4: Design Experiments
For your top-priority solution:
> For solution: "[solution name]"
>
> Design 3 experiments to test the core assumption, ordered from least to most expensive:
> 1. A concierge experiment (manual, no code)
> 2. A fake door / prototype test
> 3. An MVP build
>
> For each experiment, define:
> - The hypothesis: "We believe [solution] will [expected outcome] because [reason]"
> - The success metric
> - The time box
Step 5: Build the Tree Visualization
> Generate a Markdown-formatted OST for:
>
> Outcome: [outcome]
> Opportunities: [list]
> Solutions per opportunity: [list]
> Experiments for priority solution: [list]
>
> Use nested Markdown lists with clear labels for each level.
> Add a "Current Focus" indicator on the solution we're pursuing.
SQL Tracking
Use the session database to track OST items:
CREATE TABLE ost_items (
id TEXT PRIMARY KEY,
type TEXT, -- outcome | opportunity | solution | experiment
parent_id TEXT,
title TEXT,
status TEXT DEFAULT 'active',
metric TEXT,
notes TEXT
);
INSERT INTO ost_items VALUES
('O1', 'outcome', NULL, 'Increase trial-to-paid conversion 15%', 'active', 'trial_conversion_rate', ''),
('OP1', 'opportunity', 'O1', 'Onboarding takes too long to first value', 'active', NULL, ''),
('S1', 'solution', 'OP1', 'Progressive disclosure of features', 'active', NULL, ''),
('E1', 'experiment', 'S1', 'Show only 3 steps to first task', 'in_progress', 'time_to_first_task', '');
Example: SaaS Conversion OST
Outcome: Increase trial-to-paid conversion rate from 12% to 18%
Opportunity 1: Users don't reach the "aha moment" before trial ends
Solution A: Personalized onboarding based on role
Experiment 1: Wizard with role selection (concierge test, 1 week)
Experiment 2: Role-based dashboard (2-week MVP)
Solution B: Proactive success manager outreach at day 3
Opportunity 2: Users don't trust us with their real data during trial
Solution A: Pre-loaded demo data matching user's industry
Solution B: "Import 10 rows free" limited trial import
Opportunity 3: Trial users don't share product with team
Solution A: Collaborative invitation flow mid-trial
Tips
- One outcome at a time: A single team can only optimize one metric at a time. Multiple outcomes = diffused focus.
- Separate opportunity discovery from solution generation: Don't jump to solutions before mapping pains.
- Experiments > builds: The goal is to learn cheaply. Most solutions shouldn't become builds.
- Continuous tree: OST is a living document. Update it weekly as you learn.
- Start with existing data: Support tickets, NPS verbatims, and session recordings are free opportunity maps.
Signals
- GitHub stars
- 46
- Forks
- 11
- Last commit
- Aug 2026
Advanced
- Catalog kind
- skill
- Gateway key
opportunity-solution-tree-drvoss- Source
- github.com/drvoss/everything-copilot-cli