How to Use the Opportunity Solution Tree Skill in PM Skills

The Opportunity Solution Tree skill automatically structures product discovery into a four-level hierarchy—Desired Outcome, Opportunities, Solutions, and Experiments—by loading the pm-product-discovery plugin and parsing your research data into prioritized markdown output.

The Opportunity Solution Tree skill encodes Teresa Torres' continuous discovery framework into an automated workflow within the phuryn/pm-skills repository. Located in the pm-product-discovery plugin, this skill transforms raw customer research into a prioritized tree structure that guides product teams from metric definition to experiment validation.

Understanding the Opportunity Solution Tree Framework

The skill implements a strict four-level hierarchy defined in pm-product-discovery/skills/opportunity-solution-tree/SKILL.md. Each level builds upon the previous to ensure product teams solve the right problems before building solutions.

Desired Outcome represents a single, measurable metric that defines success for the discovery cycle. The skill enforces the "one outcome at a time" principle, requiring inputs like "increase 7-day retention to 40%" rather than vague goals.

Opportunities are customer problems framed from the user's perspective. The skill calculates an Opportunity Score using the formula Importance × (1 − Satisfaction) to prioritize which problems warrant investigation. High-importance, low-satisfaction opportunities generate the highest scores.

Solutions require generating multiple ideas per opportunity. The skill prompts the product trio (PM + Designer + Engineer) to create at least three solutions for each opportunity, enforcing the "compare and contrast" principle before committing to a single approach.

Experiments define cheap, fast tests that validate whether a solution actually addresses the opportunity. Each experiment includes a hypothesis, method, metric, and success threshold to ensure clear pass/fail criteria.

How the Skill is Structured in the Repository

The Opportunity Solution Tree skill follows the universal skill format used across the phuryn/pm-skills marketplace.

File Location: The complete skill definition resides at pm-product-discovery/skills/opportunity-solution-tree/SKILL.md. This file contains the full description, step-by-step process, and output formatting rules.

Plugin Registration: The skill is registered in the root README.md under the Available Plugins section, listed as opportunity-solution-tree within the pm-product-discovery plugin manifest. This registration enables automatic discovery by the AI runtime.

Validation Logic: The skill validates three required inputs before processing: a single desired outcome metric, provided research data, and optional pre-defined opportunities or solutions. If the outcome contains multiple metrics or lacks research backing, the skill prompts for clarification.

Invoking the Opportunity Solution Tree Skill

The skill supports two invocation methods depending on your workflow needs.

Automatic Loading: When your query mentions "Opportunity Solution Tree," the AI automatically loads the skill from the marketplace. This triggers the full discovery workflow without requiring specific command syntax.

Explicit Invocation: Force the skill using the prefix notation:

/pm-product-discovery:opportunity-solution-tree

Explicit invocation is useful when chaining multiple skills or when the query context might trigger different plugins.

Building Your Tree Step-by-Step

Define the Desired Outcome

Start with a specific, time-bound metric. The skill validates that your outcome contains exactly one measurable target. Valid examples include "reduce churn by 15% in Q3" or "increase activation rate to 60% by December 2025."

Identify and Score Opportunities

Input your research data—typically customer interviews, support tickets, or survey results. The skill parses this data to extract customer problems and calculates Opportunity Scores automatically.

For each opportunity, the skill outputs:

  • Importance rating (0.0 to 1.0)
  • Current Satisfaction rating (0.0 to 1.0)
  • Calculated Score using the formula Importance × (1 − Satisfaction)

Generate Multiple Solutions

For each high-scoring opportunity, the skill prompts generation of at least three distinct solutions. This prevents premature convergence on a single idea and ensures the product trio considers alternative approaches before building.

Design Experiments

The final level creates specific experiments to test solution-opportunity fit. Each experiment includes:

  • Clear hypothesis stating the expected outcome
  • Method (e.g., A/B test, usability study, prototype interview)
  • Success metric and threshold (e.g., "activation rate improves by 10%")

Example Usage

Basic Invocation:

Help me build an Opportunity Solution Tree for improving user activation.

Generated Output:


# Opportunity Solution Tree – User Activation

## Desired Outcome

- Increase 7-day retention to 40% (Quarter 1 2026)

## Opportunities

1. **I struggle to find the core value quickly** – Importance 0.9, Satisfaction 0.3 → Score 0.63
2. **I get confused by the onboarding flow** – Importance 0.8, Satisfaction 0.4 → Score 0.48

## Solutions

### Opportunity 1

- Simplify the onboarding tutorial
- Add an in-app "quick tour" modal
- Introduce contextual tooltips

### Opportunity 2

- Redesign the signup wizard into three steps
- Provide progressive disclosure of features

## Experiments

- **Experiment 1 (Opportunity 1, Solution A)**: A/B test tutorial vs. no tutorial, measure activation rate after 3 days.
- **Experiment 2 (Opportunity 2, Solution B)**: Usability test of the three-step wizard, track completion time and drop-off.

Providing Research Data:

Desired outcome: Reduce churn by 15% in Q3.
Research: Interviews with 12 users indicate two pain points – "hard to locate settings" and "notifications are overwhelming".

The skill processes these inputs to generate opportunities, calculates their scores, proposes three solutions for each, and suggests validation experiments.

Summary

  • The Opportunity Solution Tree skill lives in pm-product-discovery/skills/opportunity-solution-tree/SKILL.md and implements Teresa Torres' continuous discovery framework.
  • The skill validates three inputs: a single desired outcome, research data, and optional pre-defined items.
  • Opportunity Scores are calculated as Importance × (1 − Satisfaction) to prioritize customer problems.
  • The skill enforces best practices: one outcome at a time, opportunities over features, and minimum three solutions per opportunity.
  • Access the skill by mentioning "Opportunity Solution Tree" or using the explicit prefix /pm-product-discovery:opportunity-solution-tree.

Frequently Asked Questions

What inputs does the Opportunity Solution Tree skill require?

The skill requires three inputs: a desired outcome (single measurable metric), research data (customer interviews, surveys, or support tickets), and optionally pre-defined opportunities or solutions. The skill validates that the outcome contains exactly one metric and that research data is provided before generating the tree.

How does the skill prioritize opportunities?

The skill calculates an Opportunity Score for each customer problem using the formula Importance × (1 − Satisfaction). Problems with high importance and low current satisfaction receive the highest scores, indicating the greatest potential impact for the product team to address first.

Can I use the skill without predefined research data?

No. The skill validates that research data is provided because the framework requires evidence-based opportunities rather than assumed problems. If you attempt to invoke the skill without research, it will prompt you to provide customer interviews, survey results, or other qualitative data before proceeding.

Where is the Opportunity Solution Tree skill defined in the repository?

The skill definition is located at pm-product-discovery/skills/opportunity-solution-tree/SKILL.md. It is registered in the marketplace through the root README.md file under the Available Plugins section, which enables automatic loading when users mention the skill name.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →