| name | ujg-ed-graph-modeling |
| description | Generate, review, correct, and reason about Graph Modeling in User Journey Graph JSON-LD for the Editor's Draft. Use when the task is scoped to Graph module topology, journeys, states, transitions, exits, outgoing navigation, and indexes or when whole-document modeling crosses this module boundary. |
UJG ED Graph Modeling
Skill tree context
Target: Editor's Draft
Public spec URL: https://ujg.specs.openuji.org/ed
Scope: Graph module topology, journeys, states, transitions, exits, outgoing navigation, and indexes
Module scope: graph
Related generated skills:
- ujg-ed-modeling: whole UJG document modeling across Core, Graph, Surface and Experience, Runtime, Mapping, Metrics, Localization, Observability, Experience Annotation, and optional modules
- ujg-ed-core-modeling: Core module document containers, imports, top-level nodes, and extensions
- ujg-ed-design-system-modeling: Design System module semantics and its relationship to Graph and Surface
- ujg-ed-l10n-modeling: Localization module semantics for MessageBundle copy metadata and locale-switch metadata
- ujg-ed-observability-modeling: Observability module semantics for ObservationBinding, ObservationEvent input modality requirements, accessible-object locators, surface recognition contracts, and SurfaceInstanceResolver
When the task crosses module boundaries, read references/related-skills.md and references/skill-tree.json before continuing.
UJG ED Graph Modeling Skill
Use this skill when the task is specifically about Graph vocabulary for the active UJG Editor's Draft.
Source of truth
Use the active Editor's Draft Graph module:
https://ujg.specs.openuji.org/ed/graph
Treat /ed as moving. Do not silently mix dated snapshots with current ED.
Scope
Focus on intended topology:
JourneyEntryIndex
Journey
JourneyEntry
LocalVertex
State
CompositeState
Transition
JourneyExit
OutgoingTransition
OutgoingTransitionGroup
Keep runtime observations, selectors, typed values, timestamps, payloads, and analytics outside Graph.
Modeling rules
Prefer the shallowest valid graph.
Use JourneyEntryIndex for catalogues, route maps, product-surface indexes, documentation indexes, or collections of known entry states. Do not use it as a traversable journey.
Use Journey only for local traversable topology. A journey must have an IRI @id, exactly one defaultEntryRef, at least one entryRefs value, and at least one stateRefs value. Its local vertices are stateRefs union exitRefs.
Use JourneyEntry for explicit journey entry contracts. Each entry must have exactly one stateRef that points to a State or CompositeState in the same journey's stateRefs. A JourneyEntry is not a transition endpoint.
Use ordinary State and local Transition for stable conditions on the same page, route, surface, modal, panel, or screen.
Use CompositeState only when a parent journey contains or exposes a nested journey with subjourneyId.
Use toEntryRef only when a parent transition into a CompositeState must select a specific child JourneyEntry; otherwise the child journey starts at its defaultEntryRef.
Use JourneyExit and fromExitRef only for exported child outcomes that a parent genuinely reacts to. Model the child outcome as a direct terminal JourneyExit, not as a pseudo-state.
Use Transition between local vertices. from must be in the enclosing journey's stateRefs; to must be in the enclosing journey's stateRefs or exitRefs. Never use JourneyExit as from.
Use OutgoingTransition for ordinary navigation affordances. Use toCurrentState: true only when the effective graph state is preserved and only a non-topological dimension changes.
Cross-skill awareness
When Graph modeling touches surface structure, design-system binding, localization metadata, runtime observations, or implementation extensions, consult the generated related-skills reference before continuing.