Mycelium ost-builder
Use to build or update an Opportunity Solution Tree from research data. Never from brainstorming.
git clone https://github.com/haabe/mycelium
T=$(mktemp -d) && git clone --depth=1 https://github.com/haabe/mycelium "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.claude/skills/ost-builder" ~/.claude/skills/haabe-mycelium-ost-builder && rm -rf "$T"
.claude/skills/ost-builder/SKILL.mdOST Builder Skill
Build and maintain Opportunity Solution Trees from research evidence.
Workflow
Building a New OST
-
Define the desired outcome at the top of the tree. This comes from the north star metric or current strategic goal.
-
Review all research data: Interview transcripts, behavioral data, analytics, observation notes.
-
Extract opportunities (unmet needs, pain points, desires):
- Each opportunity must cite at least 2 evidence sources.
- Phrase as user needs, not solutions: "Users need to know their payment succeeded" not "Users need a confirmation email."
- Look for frequency across interviews, not just intensity in one.
-
Structure hierarchically: Group related opportunities. Identify parent-child relationships.
- Before structuring, ensure each opportunity has been examined from all three trio perspectives (product, design, engineering). Product lens sees user value; design lens sees experience gaps; engineering lens sees technical constraints or enablers.
- Classify each opportunity's Cynefin domain (clear/complicated/complex). Complex-domain opportunities must produce probes (experiments), not fully-designed solutions. See
.engine/cynefin-routing.md
-
For each leaf opportunity, check scenario coverage:
- Does
have at least one scenario illustrating this opportunity?canvas/scenarios.yml - If not: extract one from the research evidence. Use Hoskins' four elements: Persona (who), Means (how they interact), Motive (why — link to JTBD), Simulation (the full narrative).
- Scenarios should emerge from interview stories, not be invented. If no interview data exists for this opportunity, flag it as an evidence gap.
- Does
-
For each leaf opportunity, generate solution ideas:
- Multiple solutions per opportunity.
- Solutions can be simple experiments, not just features.
- Include "do nothing" as an option when appropriate.
- Each solution should reference which scenarios it addresses.
-
For each solution leaf, assess the Four Risks (Torres Product Trio):
- Value (product lens): Is there evidence users want/need this?
- Usability (design lens): Can users figure out how to use it?
- Feasibility (engineering lens): Can we build it within constraints?
- Viability (cross-cutting): Does it align with business/legal/ethical?
Each risk must have its own evidence — a combined statement fails.
Write
per solution infour_risks
.canvas/opportunities.yml
-
For each solution, identify riskiest assumptions from the Four Risks:
- Which risk dimension has the least evidence?
- What is the cheapest way to test that assumption?
- Tag each assumption with its
(value|usability|feasibility|viability).risk_dimension
Updating an Existing OST
- Review new research data since last update.
- Add new opportunities with evidence citations.
- Refine or remove opportunities that evidence no longer supports.
- Add new solutions for validated opportunities.
- Update confidence scores based on new evidence.
- Prune solutions that have been invalidated.
Rules
- Never add opportunities without evidence citations.
- Never brainstorm opportunities. Discover them.
- Every opportunity must link to at least 2 research data points.
- Solutions come after opportunities are understood, not before.
- The OST is a living document. Update weekly with new research.
Canvas Output
Always update
with the OST contents after building or updating. This is the single source of truth for the opportunity space.canvas/opportunities.yml
Also update:
if scenarios were created or refined (step 5)canvas/scenarios.yml
if new needs were identifiedcanvas/user-needs.yml
if JTBD dimensions surfaced during mappingcanvas/jobs-to-be-done.yml
Lean UX Connection
When generating solution ideas for leaf opportunities, frame each as a Lean UX hypothesis: "We believe [outcome] for [users] if [change]." This makes the solution testable via
/assumption-test.
Flow: Opportunity (research) -> Solution hypothesis (Lean UX) -> Assumption test (smallest viable test).
Theory Citations
- Torres: Continuous Discovery Habits (OST methodology)
- Christensen: Competing Against Luck (JTBD informing opportunities)
- Ellis: ICE scoring. Gilad: Evidence-Guided (Confidence Meter for solutions)
- Gothelf: Lean UX (hypothesis-driven solution framing)
- Hoskins: Scenarios as connective primitive (persona + means + motive + simulation). Source: "Attention to Users Is All You Need" (SAP talk, April 2026)