ost
npx machina-cli add skill kasperjunge/agent-resources/ost --openclawOST
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.
Source
git clone https://github.com/kasperjunge/agent-resources/blob/main/skills/product-development/ost/SKILL.mdView on GitHub Overview
Run or maintain an Opportunity Solution Tree workflow using a lightweight graph database and a CLI. It provides a single entry skill that routes to outcomes, opportunities, solutions, and assumptions/experiments through progressive disclosure to keep work organized across multiple workspaces.
How This Skill Works
Start a session and select a workspace and outcome. If the graph DB at .agr/ost.db does not exist, initialize it via the OST CLI (uv run python scripts/ost.py init --path .agr/ost.db). After choosing the workspace and outcome, the skill routes you to the relevant phase reference file (outcomes.md, opportunities.md, solutions.md, or assumptions.md) for guided work.
When to Use It
- Starting a new OST session: initialize the DB, pick a workspace, and choose an outcome
- Managing workspaces and outcomes without editing the database files manually
- Adding opportunities, solutions, or assumptions to an existing OST
- Loading the correct phase reference file to work on a specific phase
- Maintaining OST across multiple workspaces with non destructive, CLI driven actions
Quick Start
- Step 1: uv run python scripts/ost.py init --path .agr/ost.db
- Step 2: uv run python scripts/ost.py workspace list
- Step 3: uv run python scripts/ost.py outcome add --workspace <name> "<title>"
Best Practices
- Initialize and verify the DB exists before performing any OST actions
- Use the CLI to list and select workspaces and outcomes to avoid guessing IDs
- Operate strictly through the provided OST CLI commands rather than editing DB files
- Route to the correct phase by loading the appropriate references file
- Do not perform destructive commands without explicit user intent
Example Use Cases
- A product team starts a new OST session for a SaaS feature and creates a workspace and initial outcome
- An initiative manager adds a new opportunity and links it to the existing outcome
- A designer adds a corresponding solution under an opportunity and captures it in the OST
- A researcher adds an assumption to test for a solution and records the experiment plan
- The team switches between outcomes and phases to review progress using the references files