> ost
Use when running or maintaining an Opportunity Solution Tree (OST) workflow with a lightweight graph store and CLI. Provides a single entry skill that routes to outcome, opportunity, solution, and assumption/experiment phases via progressive disclosure.
curl "https://skillshub.wtf/kasperjunge/agent-resources/ost?format=md"OST
Run a full Opportunity Solution Tree workflow from a single skill, backed by a lightweight graph database and CLI.
Entry Flow (Minimize File Loading)
Goal: Start a session, pick a workspace, and select or create an outcome.
- Ensure DB exists
- If
.agr/ost.dbis missing, initialize it:uv run python scripts/ost.py init --path .agr/ost.db
- Select workspace
- List workspaces:
uv run python scripts/ost.py workspace list
- If needed, create one:
uv run python scripts/ost.py workspace create \"<name>\"
- Select outcome
- List outcomes:
uv run python scripts/ost.py outcome list --workspace <name>
- If needed, create one:
uv run python scripts/ost.py outcome add --workspace <name> \"<title>\"
- Route to phase (load only the relevant file)
- Outcomes:
references/outcomes.md - Opportunities:
references/opportunities.md - Solutions:
references/solutions.md - Assumptions/Experiments:
references/assumptions.md
Data Model + Storage
Use a lightweight graph DB at .agr/ost.db with multi-workspace support.
The CLI manages nodes and edges; do not edit DB files manually.
CLI
Use the CLI to read/write the OST graph. The CLI is expected to live in this skill’s scripts/ directory and be run via uv run.
Commands (intended):
uv run python scripts/ost.py init --path .agr/ost.dbuv run python scripts/ost.py workspace listuv run python scripts/ost.py workspace create "<name>"uv run python scripts/ost.py outcome list --workspace <name>uv run python scripts/ost.py outcome add --workspace <name> "<title>"uv run python scripts/ost.py opportunity add --outcome <id> "<title>"uv run python scripts/ost.py solution add --opportunity <id> "<title>"uv run python scripts/ost.py assumption add --solution <id> "<title>"uv run python scripts/ost.py show --outcome <id>
If the CLI is not yet implemented, document the intended command and proceed with non-destructive guidance only.
Output Format
## OST Session
### Selected Workspace
- Name: ...
### Selected Outcome
- ID: ...
- Title: ...
### Next Action
- [What the user wants to do next]
### Next Step
- Load the relevant phase reference file
What NOT to Do
- Do NOT edit
.agr/ost.dbdirectly. - Do NOT invent node IDs.
- Do NOT run destructive commands without explicit user intent.
> related_skills --same-repo
> skriv-som-kasper
Skriv, omskriv eller redigér tekst i Kaspers personlige skrivestil. Brug når brugeren beder om at skrive "som Kasper" eller ønsker stil-efterligning/tilpasning baseret på konkrete skriveeksempler.
> refactor-for-determinism
Design or refactor skills by separating deterministic and non-deterministic steps. Use when creating or improving skills, especially to move repeatable workflows into scripts/ and update SKILL.md to call them.
> ideate-solutions
Use after opportunities are defined to generate and evaluate multiple product solution concepts before validating assumptions. Triggers when you need a set of distinct solution options tied to outcomes and opportunities.
> discover-outcomes
Use at the start of product strategy to define or refine desired outcomes and success metrics (e.g., for Opportunity Solution Trees or continuous discovery) before selecting opportunities or solutions.