Graph Model
Your product model is a structured map of everything your product is and does — nodes representing things like domains, features, and rules, connected by typed relationships. The model lives inside a branch and is updated via commands.
Node types
Hierarchical nodes (require a parent)
| Type | Description |
|---|---|
Capability | A bounded area of product capability, owned by a Domain. |
Feature | A specific thing the product does, owned by a Capability. |
Flow | A user journey or process flow, owned by a Feature. |
Step | A single step inside a Flow. |
Stand-alone nodes
| Type | Description |
|---|---|
Domain | The top-level grouping — a business domain or product area. |
Actor | A person or system that interacts with the product. |
Need | A user or business need that features are meant to address. |
Rule | A business rule or constraint attached to a feature. |
AcceptanceCriteria | A pass/fail criterion for a feature. |
Metric | A measurable outcome linked to a feature (e.g. conversion rate). |
Decision | A recorded architectural or product decision. |
Node fields
Every node has a title and an optional description. Additional fields depend on the node type and the workspace ontology.
Common typed fields:
- Capability —
maturity(string) - Feature —
status(string, e.g.planned,in_progress,shipped) - Step —
order_index(int),expected_duration_s(int) - Metric —
unit(string),target_value(float),direction(string, e.g.up,down) - Rule / AcceptanceCriteria —
statement(string),enforcement/automated
Relation types
Edges are directional and typed. The most common built-in relation types:
| Relation | From → To | Meaning |
|---|---|---|
has_capability | Domain → Capability | A domain contains this capability |
has_feature | Capability → Feature | A capability exposes this feature |
has_flow | Feature → Flow | A feature is implemented by this flow |
has_step | Flow → Step | A flow contains this step |
next_step | Step → Step | Ordering / transitions between steps |
addresses | Feature → Need | A feature addresses this user need |
governed_by | Feature → Rule | A feature is governed by this rule |
measured_by | Feature → Metric | A feature is measured by this metric |
validated_by | Feature → AcceptanceCriteria | A feature is validated by this criterion |
involves | Flow → Actor | An actor participates in this flow |
Example structure
Domain: "Checkout"└── Capability: "Payment Processing" └── Feature: "One-click Purchase" ├── Need: "Reduce checkout friction" ├── Flow: "Express Checkout" │ ├── Step 1: "Select saved address" │ ├── Step 2: "Confirm payment method" │ └── Step 3: "Place order" ├── Rule: "Order total must not exceed credit limit" ├── Metric: "Checkout completion rate (target ≥ 80%)" └── AcceptanceCriteria: "User completes checkout in ≤ 3 taps"