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.
ActorA person or system that 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 → ActorAn 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"