Skip to content

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)

TypeDescription
CapabilityA bounded area of product capability, owned by a Domain.
FeatureA specific thing the product does, owned by a Capability.
FlowA user journey or process flow, owned by a Feature.
StepA single step inside a Flow.

Stand-alone nodes

TypeDescription
DomainThe top-level grouping — a business domain or product area.
PersonaA person who interacts with the product.
NeedA user or business need that features are meant to address.
RuleA business rule or constraint attached to a feature.
AcceptanceCriteriaA pass/fail criterion for a feature.
MetricA measurable outcome linked to a feature (e.g. conversion rate).
DecisionA 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:

  • Capabilitymaturity (string)
  • Featurestatus (string, e.g. planned, in_progress, shipped)
  • Steporder_index (int), expected_duration_s (int)
  • Metricunit (string), target_value (float), direction (string, e.g. up, down)
  • Rule / AcceptanceCriteriastatement (string), enforcement / automated

Relation types

Edges are directional and typed. The most common built-in relation types:

RelationFrom → ToMeaning
has_capabilityDomain → CapabilityA domain contains this capability
has_featureCapability → FeatureA capability exposes this feature
has_flowFeature → FlowA feature is implemented by this flow
has_stepFlow → StepA flow contains this step
next_stepStep → StepOrdering / transitions between steps
addressesFeature → NeedA feature addresses this user need
governed_byFeature → RuleA feature is governed by this rule
measured_byFeature → MetricA feature is measured by this metric
validated_byFeature → AcceptanceCriteriaA feature is validated by this criterion
involvesFlow → PersonaA persona 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"