# How to Use the Opportunity-Solution-Tree Skill for Continuous Discovery in PM-Skills

> Master continuous discovery with the Opportunity-Solution-Tree skill in phuryn/pm-skills. Automate Teresa Torres's method to link outcomes, opportunities, solutions, and experiments effectively.

- Repository: [Pawel Huryn/pm-skills](https://github.com/phuryn/pm-skills)
- Tags: how-to-guide
- Published: 2026-06-24

---

**The opportunity-solution-tree skill in the `phuryn/pm-skills` repository provides a structured LLM prompt that maps desired outcomes to opportunities, solutions, and experiments, enabling product teams to automate Teresa Torres's Opportunity Solution Tree method for continuous discovery.**

The opportunity-solution-tree skill for continuous discovery is implemented in the open-source `phuryn/pm-skills` repository as a markdown-based prompt template. This skill translates natural language requests into structured discovery trees, helping teams avoid premature-solution bias by systematically exploring the opportunity space before committing to specific features.

## What Is the Opportunity Solution Tree Skill?

The **Opportunity Solution Tree (OST)** skill implements Teresa Torres's *Continuous Discovery Habits* methodology as a reusable LLM prompt. Defined in [[`pm-product-discovery/skills/opportunity-solution-tree/SKILL.md`](https://github.com/phuryn/pm-skills/blob/main/pm-product-discovery/skills/opportunity-solution-tree/SKILL.md)](https://github.com/phuryn/pm-skills/blob/main/pm-product-discovery/skills/opportunity-solution-tree/SKILL.md), the skill forces a hierarchical structure that progresses from **desired outcome** → **opportunities** → **solutions** → **experiments**.

The header in [`SKILL.md`](https://github.com/phuryn/pm-skills/blob/main/SKILL.md) explicitly states its purpose:

> "Build an Opportunity Solution Tree (OST) to structure product discovery — map a desired outcome to opportunities, solutions, and experiments. Based on Teresa Torres' *Continuous Discovery Habits*."

At line 34 of the file, the prompt template instructs the LLM to act as a **coach** for building an OST, using the arguments supplied by the user to generate a markdown-formatted tree that can be pasted directly into product documentation or roadmap tools.

## How the OST Skill Fits Into the Architecture

### Skill Catalog and Discovery

The OST skill is listed in the repository's top-level [`README.md`](https://github.com/phuryn/pm-skills/blob/main/README.md) (lines 155–172) as part of the broader product-discovery skill catalog. This catalog organizes skills by workflow stage, allowing teams to chain discovery activities together.

### Command-Driven Interface

The skill is invoked via the **pm-toolkit CLI** using natural language requests. The CLI parses the input, loads the corresponding markdown file, and substitutes the `$ARGUMENTS` placeholder with the user's specific problem statement before sending the prompt to the configured LLM.

### LLM-Driven Generation and Iteration

Because the output is standard markdown, teams can feed OST results into downstream skills such as `summarize-interview` or `prioritize-features`. This creates a **continuous discovery loop** where experiment results from one cycle inform opportunity identification in the next.

## Using the Opportunity-Solution-Tree Skill: Step-by-Step

The skill automates the core OST methodology through five distinct phases:

1. **Define the outcome** – Start with a measurable business goal (e.g., "increase weekly active users by 15%").
2. **Identify opportunities** – Brainstorm user problems, market gaps, or pain points that could influence the outcome.
3. **Generate solutions** – For each opportunity, propose one or more solution ideas (features, experiments, or changes).
4. **Plan experiments** – Attach a validation step to each solution (e.g., "run a 2-week A/B test").
5. **Iterate** – Use feedback from experiments to prune or expand opportunities, returning to step 2 as needed.

The LLM handles steps 2–4 by generating a structured tree that maintains the logical hierarchy between each level.

## Practical Code Examples

### CLI Invocation

Invoke the skill from your terminal using the pm-toolkit CLI:

```bash
pm-toolkit "Help me build an Opportunity Solution Tree for improving user activation"

```

The CLI forwards this request to the OST prompt template, substitutes `$ARGUMENTS` with "improving user activation", and returns the generated tree.

### Sample LLM Output

The skill produces a markdown-formatted hierarchy suitable for Confluence, Notion, or GitHub:

```markdown

# Opportunity Solution Tree – Improve User Activation

## Desired Outcome

Increase the 7‑day activation rate from 35 % to 50 % within Q3.

### Opportunities

1. **Onboarding friction**
   - **Solution:** Simplify the sign‑up flow (single‑page form)
   - **Experiment:** A/B test the new flow with 5 % of new users for 2 weeks

2. **Feature discoverability**
   - **Solution:** Add an in‑app guided tour for core features
   - **Experiment:** Run a pilot tour with 10 % of users; measure time‑to‑first‑action

3. **Value communication**
   - **Solution:** Introduce a “quick‑win” badge on the dashboard
   - **Experiment:** Randomly assign badge to half of new users; monitor activation

### Next Steps

- Prioritize experiments by effort vs. impact
- Schedule weekly review of experiment results
- Iterate on opportunities based on findings

```

## Key Files and Implementation Details

| File | Role |
|------|------|
| [`pm-product-discovery/skills/opportunity-solution-tree/SKILL.md`](https://github.com/phuryn/pm-skills/blob/main/pm-product-discovery/skills/opportunity-solution-tree/SKILL.md) | Contains the prompt template (line 34) and references to the Extended Opportunity Solution Tree |
| [`README.md`](https://github.com/phuryn/pm-skills/blob/main/README.md) (lines 155–172) | Skill catalog entry listing OST among discovery tools |
| [`pm-product-discovery/skills/summarize-interview/SKILL.md`](https://github.com/phuryn/pm-skills/blob/main/pm-product-discovery/skills/summarize-interview/SKILL.md) | Related skill that feeds user research into the OST workflow |

The prompt in [`SKILL.md`](https://github.com/phuryn/pm-skills/blob/main/SKILL.md) also references the Extended Opportunity Solution Tree for advanced use cases, linking to external documentation while maintaining the core four-level structure internally.

## Summary

- The opportunity-solution-tree skill in `phuryn/pm-skills` implements Teresa Torres's OST method as an LLM prompt template in [`pm-product-discovery/skills/opportunity-solution-tree/SKILL.md`](https://github.com/phuryn/pm-skills/blob/main/pm-product-discovery/skills/opportunity-solution-tree/SKILL.md).
- It structures discovery into four levels: **outcome → opportunities → solutions → experiments**, preventing teams from jumping to solutions before validating the problem space.
- The skill is invoked via the pm-toolkit CLI, which substitutes `$ARGUMENTS` into the prompt template at line 34.
- Output is markdown-formatted and ready for integration into product documentation or further processing by other repository skills like `summarize-interview`.

## Frequently Asked Questions

### How do I invoke the opportunity-solution-tree skill from the command line?

Use the pm-toolkit CLI with a natural language request describing your desired outcome. The CLI loads [`SKILL.md`](https://github.com/phuryn/pm-skills/blob/main/SKILL.md), substitutes the `$ARGUMENTS` placeholder with your input, and sends the prompt to the configured LLM. For example: `pm-toolkit "Build an OST for reducing churn"`.

### What is the difference between the standard and extended Opportunity Solution Tree?

The standard OST in [`SKILL.md`](https://github.com/phuryn/pm-skills/blob/main/SKILL.md) follows Teresa Torres's four-level structure (outcome, opportunities, solutions, experiments). The file references an Extended Opportunity Solution Tree for advanced scenarios requiring additional layers of detail or specific visual mapping formats.

### How does the OST skill prevent premature-solution bias?

By forcing the LLM to generate **opportunities** (user problems) before **solutions** (features), the prompt template enforces a hierarchical validation chain. The skill explicitly separates opportunity identification from solution generation, ensuring teams validate that a problem exists and is valuable before designing experiments.

### Can I integrate the OST skill with other discovery skills in the repository?

Yes. The markdown output format allows seamless integration with skills like `summarize-interview` (which feeds research into opportunity identification) and `prioritize-features` (which ranks solutions generated by the OST). This creates a continuous discovery pipeline where experiment results inform subsequent OST iterations.