Skip to content

Scenario Relationships

Scenarios relate to each other along three independent axes. All three can apply to the same Scenario at once — they are not mutually exclusive.

The same behavioral fact, described at a finer boundary. A nested child’s place must be the same vantage as its parent or one step deeper — Product → Client → Service — never shallower; a Product-vantage Scenario is never a nested child, since there’s nothing shallower than it. In the editor, this is the Parent picker — search for and select the broader Scenario this one narrows; a Scenario with a parent renders indented under it in Explore. Clearing the Parent picker removes the relationship.

A different Scenario consumes one of this Scenario’s Results as an input parameter. A chained Condition is a direct link to another Scenario’s Result step — not a text reference — so it stays correct even as either Scenario is edited or its path reordered. In the editor, a Condition’s Grounding switches from Own evidence to Chain from result: pick the producing Scenario, then one of its Results. The step’s evidence then comes from the linked Result instead of its own. Use chaining when one Scenario’s Result is literally the parameter another consumes — not just a similar fact, which is what Parent is for.

Chaining is also how a fork is written. Because a Scenario encodes exactly one execution path, each alternative outcome is its own Scenario whose first Condition chains from the Result before the paths diverge — so several Scenarios chaining off one Result are the branch, each published and checked on its own. See The path.

A shared utility Scenario — audit logging is the canonical example — that applies wherever it’s declared, without duplicating its signature into every Scenario that uses it. A cross-cutting Scenario renders inline on every Scenario that declares it. In the editor, this is the Uses feature picker: attach one or more shared Features this Scenario relies on: they show as removable chips, and their Scenario renders inline wherever declared.

Because these three axes are independent, a single Scenario can be nested under a broader one, have a Condition chained from another Scenario’s Result, and declare a cross-cutting concern like audit logging — all describing one coherent piece of behavior without duplicating anything.

For the practical steps of setting each one, see Relating Scenarios.