# Ost

> Runs an Opportunity Solution Tree workflow with a lightweight graph database and CLI, routing through outcome, opportunity, solution, and assumption phases.

- Skill: `tools-only/ost` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add tools-only/ost`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tools-only/ost/raw
- Safety review: CAUTION (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Product & Planning, Prioritization & Backlog
- Tags: Assumption, Cli, Graph Database, Opportunity, Opportunity Solution Tree, Outcome, Product Discovery, Solution
- Author: tools-only (https://skillmd.com/u/tools-only)
- Updated: 2026-08-22
- Page: https://skillmd.com/skills/tools-only/ost

---


# 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.

1) Ensure DB exists
- If `.agr/ost.db` is missing, initialize it:
  - `uv run python scripts/ost.py init --path .agr/ost.db`

2) 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>\"`

3) 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>\"`

4) 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.db`
- `uv run python scripts/ost.py workspace list`
- `uv 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.db` directly.
- Do NOT invent node IDs.
- Do NOT run destructive commands without explicit user intent.

