Agent skill

Opportunity Solution Tree

by borghei in borghei/Claude-Skills

Opportunity Solution Tree (Teresa Torres) mapping outcomes → opportunities → solutions → assumption tests.

MITAuto-check passedProduct & Project Management

Install Opportunity Solution Tree

skills CLI
$ npx skills add borghei/Claude-Skills --skill opportunity-solution-tree -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install borghei/Claude-Skills opportunity-solution-tree --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/borghei/Claude-Skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/project-management/discovery/opportunity-solution-tree .claude/skills/opportunity-solution-tree && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
opportunity-solution-tree
GitHub stars
881
Token cost
~2.4k tokens
SKILL.md length
1,094 words
Files
5 (incl. scripts, references, assets)
Skills in repo
349
Repo updated
First seen
Licence
MIT

At a glance

Opportunity Solution Tree (Teresa Torres) mapping outcomes → opportunities → solutions → assumption tests.

  • Works in 7 steps: Pick ONE outcome → Generate opportunities (from research) → Cluster + dedupe opportunities → …
  • Prioritizing discovery work
  • SKILL.md covers When to use this skill, The tree structure, Clarify First and Workflow, plus 5 more sections
  • Runs Python scripts from its folder; calls python3

What it does

Opportunity Solution Tree is an agent skill from borghei/Claude-Skills. Opportunity Solution Tree (Teresa Torres) mapping outcomes → opportunities → solutions → assumption tests. Use when prioritizing discovery work, mapping solutions to a problem, or checking whether a roadmap moves outcomes.

Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including scripts, reference files and assets (for example `assets/ost_template.md`, `references/ost-anti-patterns.md` and `references/ost-fundamentals.md`).

It sits in Product & Project Management. The repository describes itself as: 385 AI skills, 77 expert agents, and 900 stdlib Python tools for every team: engineering, PM, marketing, C-level, compliance, business ops, research, and a LinkedIn toolkit… The licence is MIT.

When your agent uses it

  • Prioritizing discovery work
  • Mapping solutions to a problem
  • Checking whether a roadmap moves outcomes

Example prompts

  • “/opportunity-solution-tree”

Requirements

  • Python 3

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Pick ONE outcome
  2. Generate opportunities (from research)
  3. Cluster + dedupe opportunities
  4. Generate multiple solutions per opportunity
  5. Identify assumptions + tests
  6. Run ost_validator.py
  7. Iterate weekly

What it can do on your machine

Read from SKILL.md and the folder at commit 4a698e8. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • python3

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Opportunity Solution Tree loads about 2.4k tokens when it runs, and up to ~5.2k if it reads all its reference files. Until then it costs about 62 tokens; SKILL.md has 1,094 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~62
When it runs · the whole SKILL.md, loaded when a task matches
~2.4k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~5.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from borghei/Claude-Skills at commit 4a698e8, republished under its MIT licence (© borghei). 1,094 words, ~2,398 tokens.

Download SKILL.mdSave it as .claude/skills/opportunity-solution-tree/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.
name
opportunity-solution-tree
description
Opportunity Solution Tree (Teresa Torres) mapping outcomes → opportunities → solutions → assumption tests. Use when prioritizing discovery work, mapping solutions to a problem, or checking whether a roadmap moves outcomes.
license
MIT + Commons Clause
metadata.version
1.0.0
metadata.author
borghei
metadata.category
project-management
metadata.domain
product-discovery
metadata.updated
2026-05-27
metadata.python-tools
ost_validator.py
metadata.tech-stack
opportunity-solution-tree, continuous-discovery, teresa-torres

Opportunity Solution Tree (OST)

Teresa Torres' framework from Continuous Discovery Habits. An OST visualizes the path from a desired outcome to the assumption tests that will validate or invalidate candidate solutions.

When to use this skill

  • Prioritizing discovery work for a quarter
  • Structuring weekly customer touchpoints
  • Mapping multiple solutions to one problem (vs jumping to solution)
  • Auditing whether roadmap actually moves outcomes
  • Coaching a team into continuous discovery rhythm
  • Pivoting discovery away from a dead-end branch

The tree structure

                  [Outcome]
                      |
        +-------------+-------------+
        |             |             |
   Opportunity   Opportunity   Opportunity
        |             |             |
     +--+--+      +--+--+      +--+--+
     |     |      |     |      |     |
   Solution Solution ...
        |
   +----+----+
   |         |
 Assumption  Assumption
   Test        Test
Levels
  1. Outcome — a single, specific, measurable business / product outcome
  2. Opportunities — customer needs/pains/desires that, if addressed, drive the outcome
  3. Solutions — candidate ways to address each opportunity
  4. Assumption tests — experiments validating that the solution will deliver

Clarify First

Before building the tree, confirm these inputs. If any is unknown or vague, ASK — do not assume:

  • The one outcome — a single, measurable, bounded outcome (the tree root; "ship X" or "make users happy" produces an invalid tree)
  • Customer evidence source — interviews / tickets / analytics that populate the opportunity layer (opportunities must come from research, not the team's imagination)
  • Engagement type — net-new tree vs auditing an existing roadmap (net-new builds top-down; an audit maps current solutions back onto outcomes)

Stop rule: ask only the 2-3 that most change the output. If the user says "just draft it," proceed and list your assumptions at the top of the artifact.

Workflow

Step 1 — Pick ONE outcome

A good outcome is:

  • Behavioral (something users do) or business (revenue, retention)
  • Measurable (specific metric, baseline, target)
  • Bounded (this quarter / half)
  • Within team's influence

Examples:

  • "Increase week-1 activation rate from 28% to 40% by end of Q3"
  • "Reduce admin-panel time-on-task by 30%"
  • "Lift NRR from 105% to 115% by end of year"

NOT outcomes:

  • "Build [feature]" (output, not outcome)
  • "Improve user experience" (vague)
  • "Hit revenue target" (too high; needs to decompose)
Step 2 — Generate opportunities (from research)

Opportunities come from customer evidence, not the team's imagination:

  • Interview transcripts
  • Support ticket themes
  • Sales objection patterns
  • Behavioral analytics
  • Survey free-text

Opportunities are customer problems/needs, not solutions:

  • ✓ "Users abandon during email-verification step"
  • ✓ "Admins want to bulk-invite from CSV"
  • ✗ "Add a CSV import feature" (that's a solution)
Step 3 — Cluster + dedupe opportunities

Group similar opportunities. Aim for 3-7 distinct opportunity clusters per outcome.

Step 4 — Generate multiple solutions per opportunity

For each opportunity, brainstorm 3-5 solutions. Resist jumping to one.

Multiple solutions matter because:

  • It surfaces underlying assumption: which solution best solves this?
  • Allows comparison of cost/effort
  • Reveals the team has bias toward a specific approach
Step 5 — Identify assumptions + tests

For each candidate solution, list:

  • Value assumption — will users want this?
  • Usability assumption — can users use it?
  • Feasibility assumption — can we build it?
  • Viability assumption — is it good for the business?

For each top assumption, design a cheap test (interview, prototype, A/B, landing page, prefab Wizard-of-Oz).

Step 6 — Run ost_validator.py

Audit for: missing outcome, opportunities written as solutions, single-solution branches, no assumption tests, tree without recent updates.

bash
python3 project-management/discovery/opportunity-solution-tree/scripts/ost_validator.py \
  --input ost.json --format markdown
Step 7 — Iterate weekly

OST is a living artifact. Each week:

  • Add opportunities from new interviews
  • Move opportunities up/down based on evidence
  • Add solutions
  • Track assumption test results
  • Kill solutions that failed tests
  • Promote validated solutions to roadmap

Decision frameworks

Choosing the outcome

Wrong: "Build the new dashboard" (output) Wrong: "Make customers happy" (vague) Wrong: "Hit $20M ARR" (too high; many teams)

Right: One number a team can move. Decompose company OKRs to team-level outcome. See project-management/execution/north-star-metric.

Opportunity vs solution test

If the statement is a thing to build → solution. If the statement is a customer pain / desire / need → opportunity.

StatementType
"Add bulk CSV import"Solution
"Admins want to invite many users at once"Opportunity
"Build SAML SSO"Solution
"Enterprise IT requires SSO to approve purchase"Opportunity
"Replace the onboarding video"Solution
"New users can't find the start button"Opportunity
Sizing opportunities

For each opportunity:

  • How many customers experience it (% of base)?
  • How severe (workaround cost in time/$)?
  • How often (frequency per user)?
  • Strategic fit with outcome?

Score = impact × frequency × strategic fit. Prioritize accordingly.

Show full SKILL.md (433 more words)Show less
Multiple solutions discipline

Don't allow single-solution branches. If only one solution comes up:

  • Ask: "What if we couldn't build that?"
  • Borrow from analogous problems
  • Get team brainstorm input
  • Look at how competitors solve it

Goal: at least 3 candidate solutions per opportunity worth pursuing.

Assumption test ladder

For each solution, the cheapest test first:

  1. Customer interview / desirability test (~$0)
  2. Landing page / smoke test (~hours)
  3. Wizard-of-Oz / concierge MVP (~days)
  4. Low-fidelity prototype (~1 week)
  5. High-fidelity prototype (~2 weeks)
  6. A/B test in production (~weeks-months)

Spend the minimum to learn the most.

AI-generated prototypes compress rungs 4-5. With AI app builders, AI design tools, and AI coding assistants, a clickable or working prototype can take hours rather than weeks. That makes it tempting to skip rungs 1-3 — don't: a polished prototype of the wrong opportunity is still waste. Use a generated prototype when the assumption under test is usability or desirability, generate 2-3 variants (one per candidate solution) rather than one, and test with real target users against a pre-set threshold. Record the result on the tree node; the winning solution then goes to execution/create-prd/ (see its Prototype-First Path) for the problem, metrics, constraints, non-goals, and risks the prototype cannot carry.

Common engagements

"Help me set up an OST for our team this quarter"
  1. Confirm the outcome (1 number).
  2. Pull existing discovery evidence; cluster into opportunities.
  3. Brainstorm 3-5 solutions per top opportunity.
  4. Identify top 3 assumption tests for the quarter.
  5. Schedule weekly OST update rhythm.
"Our roadmap is full of features but outcomes aren't moving"
  1. Map current roadmap to OST.
  2. Identify orphan solutions (no opportunity → no outcome).
  3. Identify gaps (opportunities without solutions in roadmap).
  4. Reshape roadmap around outcome-supporting solutions.
"Audit our discovery practice"
  1. Look at the OST: when last updated?
  2. How many interviews per week feed it?
  3. Are opportunities written as needs (not solutions)?
  4. How many solutions per opportunity (1 = under-divergent)?
  5. How many assumption tests in progress?

Anti-patterns to avoid

  • Outcome = output. "Ship X" is not an outcome.
  • Opportunities = solutions. Strip solutions out of the opportunity layer.
  • Single solution per opportunity. Force 3+ alternatives.
  • No assumption tests. Tree without tests = wishful thinking.
  • Static tree. Update weekly or it dies.
  • Tree built without customer input. Designed in vacuum; full of bias.
  • One huge outcome. Decompose to team-level.
  • All opportunities equally important. Prioritize explicitly.

References

  • references/ost-fundamentals.md — Teresa Torres framework deep
  • references/ost-anti-patterns.md — common failures + fixes
  • project-management/discovery/identify-assumptions — assumption surfacing
  • project-management/discovery/brainstorm-experiments — test design
  • project-management/discovery/customer-interview-script — interview prep
  • project-management/discovery/interview-synthesis — turn interviews into opportunities
  • project-management/execution/north-star-metric — outcome definition
  • project-management/strategy-frameworks/lean-canvas — strategic context
  • product-team/research-summarizer — interview synthesis

© borghei, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 4 other files (scripts, references, assets) in project-management/discovery/opportunity-solution-tree of borghei/Claude-Skills.

  • SKILL.md
  • assets/ost_template.md
  • references/ost-anti-patterns.md
  • references/ost-fundamentals.md
  • scripts/ost_validator.py

Open the folder on GitHubat commit 4a698e8

Compare with similar skills

Opportunity Solution Tree next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Opportunity Solution Tree compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Opportunity Solution Tree this skillborghei/Claude-Skills881—~2.4kAutomated safety check: PassMIT
User Story Writerdeanpeters/Product-Manager-Skills7.2k2 repos~2.9kAutomated safety check: PassCustom licence
Game Changing FeaturesopenstatusHQ/data-table-filters2.3k3 repos~2.1kAutomated safety check: PassMIT
CCPM Project Managementautomazeio/ccpm8.4k—~1.1kAutomated safety check: PassMIT
Convex Create Componentspokvulcan/poker-planning1148 repos~2.6kAutomated safety check: PassMIT
Self Improving Agentfarm-fe/farm5.6k2 repos~3.3kAutomated safety check: NotesMIT

Similar skills

  • User Story Writer

    deanpeters/Product-Manager-Skills

    Writes user stories in Mike Cohn's format with Gherkin acceptance criteria, turning user needs into development-ready work with testable conditions.

    7.2k GitHub starsUsed in 2 repos~2.9k tokens
    Product & Project ManagementAuto-check passed
  • Game Changing Features

    openstatusHQ/data-table-filters

    Find 10x product opportunities and high-leverage improvements.

    2.3k GitHub starsUsed in 3 repos~2.1k tokens
    Product & Project ManagementAuto-check passed
  • Runs a spec-driven workflow from PRD to epic to GitHub issues to parallel agents, with status, standup and blocked-work reports from bundled scripts.

    8.4k GitHub stars~1.1k tokensUpdated 6 mo ago
    Product & Project ManagementAuto-check passed
  • Convex Create Component

    spokvulcan/poker-planning

    Builds reusable Convex components with isolated tables and app-facing APIs.

    114 GitHub starsUsed in 8 repos~2.6k tokens
    Product & Project ManagementAuto-check passed
  • A universal self-improving agent that learns from ALL skill experiences.

    5.6k GitHub starsUsed in 2 repos~3.3k tokens
    Product & Project ManagementAuto-check: notes
  • Builds a weekly engineering retrospective from git history: commit counts, per-person contributions, work patterns and code quality numbers over a chosen window.

    136k GitHub stars~2.4k tokensUpdated today
    Product & Project ManagementAuto-check passed

More from borghei/Claude-Skills

All 349 skills in this repo
  • Agents In The Team

    borghei/Claude-Skills

    Run delivery when AI coding and ops agents take tickets. An agent skill from borghei/Claude-Skills.

    881 GitHub stars~4.2k tokensUpdated today
    Auto-check passed
  • AI Content Disclosure

    borghei/Claude-Skills

    Check AI-generated marketing content and reviews for required disclosures under the EU AI Act, FTC rules and platform AI-label policies.

    881 GitHub stars~3.4k tokensUpdated today
    Auto-check passed
  • AI Prototyping

    borghei/Claude-Skills

    Idea to AI-generated prototype to customer validation to engineering handoff.

    881 GitHub stars~3.6k tokensUpdated today
    Auto-check passed
  • Analytics Engineer

    borghei/Claude-Skills

    Analytics engineering across data modeling, dbt, transformation, and semantic layers.

    881 GitHub stars~3.4k tokensUpdated today
    Auto-check passed
  • Ansoff Matrix

    borghei/Claude-Skills

    Ansoff Matrix — 4-quadrant framework for growth options: market penetration, market/product development, and diversification.

    881 GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Brainstorm Okrs

    borghei/Claude-Skills

    OKR brainstorming and validation using the Radical Focus framework — outcome objectives, measurable key results, counter-metrics.

    881 GitHub stars~1.4k tokensUpdated today
    Auto-check passed

Questions about Opportunity Solution Tree

What does Opportunity Solution Tree do?

Opportunity Solution Tree (Teresa Torres) mapping outcomes → opportunities → solutions → assumption tests. Opportunity Solution Tree is an agent skill from borghei/Claude-Skills. Opportunity Solution Tree (Teresa Torres) mapping outcomes → opportunities → solutions → assumption tests.

When should I use Opportunity Solution Tree?

Opportunity Solution Tree fits situations like: prioritizing discovery work; mapping solutions to a problem; checking whether a roadmap moves outcomes.

How do I install Opportunity Solution Tree in Claude Code?

Run `npx skills add borghei/Claude-Skills --skill opportunity-solution-tree -a claude-code`. Or copy the skill folder (project-management/discovery/opportunity-solution-tree in borghei/Claude-Skills) into .claude/skills/opportunity-solution-tree in your project. Claude Code loads it when a task matches its description.

How do I install Opportunity Solution Tree in Codex?

Run `npx skills add borghei/Claude-Skills --skill opportunity-solution-tree -a codex`. Or copy the skill folder (project-management/discovery/opportunity-solution-tree in borghei/Claude-Skills) into .agents/skills/opportunity-solution-tree in your project. Codex loads it when a task matches its description.

Can I use Opportunity Solution Tree in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add borghei/Claude-Skills --skill opportunity-solution-tree -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/opportunity-solution-tree, .gemini/skills/opportunity-solution-tree, .github/skills/opportunity-solution-tree and .opencode/skills/opportunity-solution-tree in your project.

What does Opportunity Solution Tree need to run?

Going by SKILL.md and its folder, Opportunity Solution Tree needs Python for the scripts in its folder and the command-line tools its instructions call (python3). Our summary lists: Python 3.

Does Opportunity Solution Tree access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Opportunity Solution Tree safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Opportunity Solution Tree use?

Opportunity Solution Tree is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Opportunity Solution Tree use?

About 2.4k tokens (SKILL.md is roughly 9.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.8k tokens, read only when the agent opens those files.

What are the alternatives to Opportunity Solution Tree?

Skills that share tags, products or a category with Opportunity Solution Tree: User Story Writer (deanpeters/Product-Manager-Skills, 7.2k stars), Game Changing Features (openstatusHQ/data-table-filters, 2.3k stars), CCPM Project Management (automazeio/ccpm, 8.4k stars) and Convex Create Component (spokvulcan/poker-planning, 114 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Opportunity Solution Tree?

borghei (a GitHub user) maintains it in borghei/Claude-Skills, which has 881 GitHub stars. The repository holds 349 skills in this directory. The repository was last updated on October 7, 2026.

Source: borghei/Claude-Skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.