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

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), the skill forces a hierarchical structure that progresses from desired outcomeopportunitiessolutionsexperiments.

The header in 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 (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:

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:


# 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 Contains the prompt template (line 34) and references to the Extended Opportunity Solution Tree
README.md (lines 155–172) Skill catalog entry listing OST among discovery tools
pm-product-discovery/skills/summarize-interview/SKILL.md Related skill that feeds user research into the OST workflow

The prompt in 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.
  • 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, 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 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.

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 →