Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

DAI Studio

Diagram Metadata (dai:workflowMeta)

description, defaultModel, targetLanguage, targetFramework and version attributes on the root process’s dai:workflowMeta element.

The dai:workflowMeta extension element sits inside bpmn:extensionElements on the root bpmn:process. It frames the entire diagram for the AI — read first, before any element, it orients the overall execution strategy.

<bpmn:process id="Process_1" name="Order Validation" isExecutable="false">
  <bpmn:extensionElements>
    <dai:workflowMeta
      description="Validates incoming orders, enriches them with product data, and routes them to fulfilment or rejection."
      defaultModel="gpt-4o"
      targetLanguage="TypeScript"
      targetFramework="React"
      version="1.0" />
  </bpmn:extensionElements>
  <!-- flow elements -->
</bpmn:process>

Attributes

AttributePurpose
descriptionPlain-language explanation of what this diagram achieves. The AI reads this to orient its overall execution strategy.
defaultModelThe AI model to use by default (e.g. gpt-4o, openai/gpt-4.1, claude-opus-4.5). Individual steps may override it — see Prompt and Agent.
targetLanguageTarget programming language, if applicable (e.g. TypeScript, Python).
targetFrameworkTarget framework, if applicable (e.g. React, FastAPI).
versionVersion string for the diagram (e.g. 1.0).

The process name (shown on canvas and in the browser title) is the standard BPMN name attribute on bpmn:process, not part of the extension.

Task Type Entries

dai:workflowMeta can carry a list of dai:taskTypeEntry children — a dictionary describing what each type means in this diagram:

<dai:workflowMeta description="Build a website for DAI Studio" defaultModel="gpt-4o" version="1.0">
  <dai:taskTypeEntry type="dai.types.software.dependency" stepType="dependency"
    description="An external library, package, service, API, or resource the project relies on." />
  <dai:taskTypeEntry type="dai.types.ai.rule" stepType="rule"
    description="A constraint, policy, or business rule the AI must respect and enforce." />
  <dai:taskTypeEntry type="dai.types.ai.context" stepType="context"
    description="Background knowledge, grounding data, or reference material that informs downstream steps." />
  <dai:taskTypeEntry type="dai.types.product.story" stepType="story"
    description="Here story represents blog content" />
</dai:workflowMeta>

Each entry has a type (the dai:type id), a stepType for types that have a legacy one, and a description. Entries written with only stepType by older files still match their type. Because the element types are a vocabulary rather than a fixed mapping, the type glosses in the published Element Types pages are deliberately general — a task type entry lets you say “in this diagram, story means a blog post” and the AI will honour it.

DAI Studio maintains the dictionary automatically as you edit:

  • When a type first appears on canvas, an entry is created with that type’s description from the type catalog.
  • When the last element of a type is deleted, its orphaned entry is removed.
  • Entries for types the editor doesn’t know are kept as long as elements still use them.
  • Descriptions you customise are preserved — the app only fills in and prunes, it never overwrites your text.

In the editor, the Library panel lists every type in use with its description, and editing a description there writes the entry. You can also edit the entries by hand (or have an AI generate them) — the descriptions are plain text read as diagram-level context.