Skip to content

domain-story

The Domain Storytelling extension defines a single document kind: domain-story. A story is a numbered sequence of sentences that describe one narrative flow through the domain.

Top-Level Fields

Field Required Description
apiVersion yes schema.esdm.io/domain-storytelling/v1
kind yes domain-story
name yes The story name.
scope yes scope.domain reference.
sentences yes Non-empty list of sentences.
pointInTime no as-is or to-be.
granularity no coarse-grained or fine-grained.
domainPurity no pure or digitalized.
groups no Non-empty list of declared groups.
actors no Story-global Actor declarations. Required only for Actors that carry an annotation or groups membership; bare Actors can be referenced inline from edges without declaration.
description no Free-form prose.
metadata no Non-semantic labels and annotations.

The DS annotation field that appears on Actors, Work Objects, and edges is distinct from metadata.annotations: it carries in-diagram text, while metadata.annotations is for tooling and provenance.

actors[]

Field Required Description
name yes Actor name.
annotation no In-diagram text attached to the Actor.
groups no Non-empty list of group names this Actor belongs to.

groups[]

Field Required Description
name yes Group name.
description no Description of what the group represents.
annotation no In-diagram text attached to the group.

sentences[]

Field Required Description
sequenceNumber yes Integer ≥ 1. Duplicate values denote parallel sentences at the same position.
edges yes Non-empty list of edges.
workObjects no Per-sentence Work Object declarations. Required only for Work Objects that carry an annotation or groups membership.

sentences[].workObjects[]

Field Required Description
name yes Work Object name.
annotation no In-diagram text attached to this instance.
groups no Non-empty list of group names this Work Object belongs to.

The same name in a different sentence is a new instance with its own annotation, because DS redraws Work Objects per sentence.

sentences[].edges[]

Field Required Description
from yes A node reference – either { actor: <name> } or { workObject: <name> }.
to yes A node reference.
label no The Activity text (verb, preposition, or conjunction).
annotation no In-diagram text attached to the edge.
groups no Non-empty list of group names this edge belongs to.

Example

apiVersion: schema.esdm.io/domain-storytelling/v1
kind: domain-story
name: invite-a-co-administrator
scope:
  domain: golf-club-management
pointInTime: as-is
granularity: coarse-grained
domainPurity: pure
sentences:
  - sequenceNumber: 1
    edges:
      - from: { actor: course-owner }
        to: { workObject: invitation }
        label: drafts
      - from: { actor: course-owner }
        to: { workObject: invitation }
        label: sends
  - sequenceNumber: 2
    edges:
      - from: { workObject: invitation }
        to: { actor: invitee }
        label: arrives at
      - from: { actor: invitee }
        to: { workObject: invitation }
        label: accepts