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.
Opportunity Solution Tree (Teresa Torres) mapping outcomes → opportunities → solutions → assumption tests.
$ npx skills add borghei/Claude-Skills --skill opportunity-solution-tree -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install borghei/Claude-Skills opportunity-solution-tree --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-srcUse ~/.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/
Install the "opportunity-solution-tree" agent skill from https://github.com/borghei/Claude-Skills/tree/main/project-management/discovery/opportunity-solution-tree into .claude/skills/opportunity-solution-tree/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "opportunity-solution-tree", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/borghei/Claude-Skills/tree/main/project-management/discovery/opportunity-solution-treeType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add borghei/Claude-Skills --skill opportunity-solution-tree -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install borghei/Claude-Skills opportunity-solution-tree --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/borghei/Claude-Skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/project-management/discovery/opportunity-solution-tree .agents/skills/opportunity-solution-tree && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "opportunity-solution-tree" agent skill from https://github.com/borghei/Claude-Skills/tree/main/project-management/discovery/opportunity-solution-tree into .agents/skills/opportunity-solution-tree/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "opportunity-solution-tree", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add borghei/Claude-Skills --skill opportunity-solution-tree -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install borghei/Claude-Skills opportunity-solution-tree --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/borghei/Claude-Skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/project-management/discovery/opportunity-solution-tree .cursor/skills/opportunity-solution-tree && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "opportunity-solution-tree" agent skill from https://github.com/borghei/Claude-Skills/tree/main/project-management/discovery/opportunity-solution-tree into .cursor/skills/opportunity-solution-tree/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "opportunity-solution-tree", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/borghei/Claude-Skills.git --path project-management/discovery/opportunity-solution-tree--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add borghei/Claude-Skills --skill opportunity-solution-tree -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install borghei/Claude-Skills opportunity-solution-tree --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/borghei/Claude-Skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/project-management/discovery/opportunity-solution-tree .gemini/skills/opportunity-solution-tree && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "opportunity-solution-tree" agent skill from https://github.com/borghei/Claude-Skills/tree/main/project-management/discovery/opportunity-solution-tree into .gemini/skills/opportunity-solution-tree/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "opportunity-solution-tree", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install borghei/Claude-Skills opportunity-solution-treeInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add borghei/Claude-Skills --skill opportunity-solution-tree -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/borghei/Claude-Skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/project-management/discovery/opportunity-solution-tree .github/skills/opportunity-solution-tree && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "opportunity-solution-tree" agent skill from https://github.com/borghei/Claude-Skills/tree/main/project-management/discovery/opportunity-solution-tree into .github/skills/opportunity-solution-tree/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "opportunity-solution-tree", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add borghei/Claude-Skills --skill opportunity-solution-tree -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install borghei/Claude-Skills opportunity-solution-tree --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/borghei/Claude-Skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/project-management/discovery/opportunity-solution-tree .opencode/skills/opportunity-solution-tree && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "opportunity-solution-tree" agent skill from https://github.com/borghei/Claude-Skills/tree/main/project-management/discovery/opportunity-solution-tree into .opencode/skills/opportunity-solution-tree/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "opportunity-solution-tree", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
opportunity-solution-treeOpportunity 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. 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.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 4a698e8. It shows what the files ask for, not the result of running them.
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.
Ships 1 file in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
python3From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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.
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.
The full file from borghei/Claude-Skills at commit 4a698e8, republished under its MIT licence (© borghei). 1,094 words, ~2,398 tokens.
.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.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.
[Outcome]
|
+-------------+-------------+
| | |
Opportunity Opportunity Opportunity
| | |
+--+--+ +--+--+ +--+--+
| | | | | |
Solution Solution ...
|
+----+----+
| |
Assumption Assumption
Test TestBefore building the tree, confirm these inputs. If any is unknown or vague, ASK — do not assume:
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.
A good outcome is:
Examples:
NOT outcomes:
Opportunities come from customer evidence, not the team's imagination:
Opportunities are customer problems/needs, not solutions:
Group similar opportunities. Aim for 3-7 distinct opportunity clusters per outcome.
For each opportunity, brainstorm 3-5 solutions. Resist jumping to one.
Multiple solutions matter because:
For each candidate solution, list:
For each top assumption, design a cheap test (interview, prototype, A/B, landing page, prefab Wizard-of-Oz).
ost_validator.pyAudit for: missing outcome, opportunities written as solutions, single-solution branches, no assumption tests, tree without recent updates.
python3 project-management/discovery/opportunity-solution-tree/scripts/ost_validator.py \
--input ost.json --format markdownOST is a living artifact. Each week:
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.
If the statement is a thing to build → solution. If the statement is a customer pain / desire / need → opportunity.
| Statement | Type |
|---|---|
| "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 |
For each opportunity:
Score = impact × frequency × strategic fit. Prioritize accordingly.
Don't allow single-solution branches. If only one solution comes up:
Goal: at least 3 candidate solutions per opportunity worth pursuing.
For each solution, the cheapest test first:
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.
references/ost-fundamentals.md — Teresa Torres framework deepreferences/ost-anti-patterns.md — common failures + fixesproject-management/discovery/identify-assumptions — assumption surfacingproject-management/discovery/brainstorm-experiments — test designproject-management/discovery/customer-interview-script — interview prepproject-management/discovery/interview-synthesis — turn interviews into opportunitiesproject-management/execution/north-star-metric — outcome definitionproject-management/strategy-frameworks/lean-canvas — strategic contextproduct-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
SKILL.md and 4 other files (scripts, references, assets) in project-management/discovery/opportunity-solution-tree of borghei/Claude-Skills.
Open the folder on GitHubat commit 4a698e8
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Opportunity Solution Tree this skillborghei/Claude-Skills | 881 | — | ~2.4k | Automated safety check: Pass | MIT | |
| User Story Writerdeanpeters/Product-Manager-Skills | 7.2k | 2 repos | ~2.9k | Automated safety check: Pass | Custom licence | |
| Game Changing FeaturesopenstatusHQ/data-table-filters | 2.3k | 3 repos | ~2.1k | Automated safety check: Pass | MIT | |
| CCPM Project Managementautomazeio/ccpm | 8.4k | — | ~1.1k | Automated safety check: Pass | MIT | |
| Convex Create Componentspokvulcan/poker-planning | 114 | 8 repos | ~2.6k | Automated safety check: Pass | MIT | |
| Self Improving Agentfarm-fe/farm | 5.6k | 2 repos | ~3.3k | Automated safety check: Notes | MIT |
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.
openstatusHQ/data-table-filters
Find 10x product opportunities and high-leverage improvements.
automazeio/ccpm
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.
spokvulcan/poker-planning
Builds reusable Convex components with isolated tables and app-facing APIs.
farm-fe/farm
A universal self-improving agent that learns from ALL skill experiences.
garrytan/gstack
Builds a weekly engineering retrospective from git history: commit counts, per-person contributions, work patterns and code quality numbers over a chosen window.
borghei/Claude-Skills
Run delivery when AI coding and ops agents take tickets. An agent skill from borghei/Claude-Skills.
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.
borghei/Claude-Skills
Idea to AI-generated prototype to customer validation to engineering handoff.
borghei/Claude-Skills
Analytics engineering across data modeling, dbt, transformation, and semantic layers.
borghei/Claude-Skills
Ansoff Matrix — 4-quadrant framework for growth options: market penetration, market/product development, and diversification.
borghei/Claude-Skills
OKR brainstorming and validation using the Radical Focus framework — outcome objectives, measurable key results, counter-metrics.
Categories
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.
Opportunity Solution Tree fits situations like: prioritizing discovery work; mapping solutions to a problem; checking whether a roadmap moves outcomes.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.