Workflow validation and versions
Validates workflow graph soundness and configuration while separating editable drafts from immutable published versions.
workflow-validation-versioning
See how it helpsWhen is it useful?
Use when broken branches or edits could affect active executions.
What does it help you do?
- Checks entry, exits, reachable steps and bounded loops.
- Validates required configuration and references to available upstream data.
- Uses safe expression evaluation and pins runs to published versions.
Try asking this
Reject an unreachable approval branch and publish a corrected draft without changing runs using the previous version. Publish the corrected graph and resume an existing waiting run. New runs use the new version; the old run retains its original reachable steps and data contract.
Detailed documentation
Read the skill’s original instructions, examples and checks in their authored language.
Show less
Workflow Validation & Versioning
Use this skill when implementing structural graph validation, expression safety checks, save-vs-publish lifecycles, and immutable workflow versioning.
Shared Client & Server Graph Soundness Validation (Van der Aalst)
A visually connected graph is not automatically executable. Enforce the exact same structural and semantic validation rules in the editor UI and on the server before publishing or starting a run:
- Entry, Exit & Reachability (Workflow Net Soundness):
- Verify at least one valid trigger/start node exists and has no required incoming control edges.
- Traverse forward from start nodes to detect unreachable/isolated islands and verify that every active path can reach a valid terminal node without dead-ending on an unconfigured port.
- Cycle Detection & Bounded Loops:
- Run topological sort / DFS cycle detection (Kahn's or Tarjan's algorithm).
- Reject arbitrary directed cycles in DAG workflows; if structured looping (
ForEach/RepeatUntil) is supported, require an explicitmaxIterationscap and timeout ceiling.
- Complete Step Configuration & Upstream Scope:
- Validate every node's configuration against its
StepTypeschema. - Verify that every variable reference (
{{steps.stepA.output.id}}) points to a node that is guaranteed to execute upstream on all paths leading to the referencing node (not a sibling parallel branch or an unmerged conditional branch).
- Validate every node's configuration against its
- Safe, Sandboxed Condition & Expression Evaluation:
- Never evaluate user-authored conditions or mappings with
eval(),new Function(), or unrestricted server code execution. - Parse and validate expressions using a restricted, deterministic AST evaluator (e.g., JSONLogic, CEL, JMESPath, or a typed AST whitelist) with strict time and memory bounds.
- Never evaluate user-authored conditions or mappings with
Drafts vs. Immutable Published Versions
- Separate Editable Drafts from Published Versions:
- Users may save an incomplete
draftwhile editing, but publishing/activating a workflow requires passing full structural and schema validation and creates an immutableWorkflowVersion(versionNumber, content hash,publishedAt,publishedBy).
- Users may save an incomplete
- Pin Triggers and Runs to Explicit Versions:
- Subsequent edits create a new draft without mutating the published
WorkflowVersion. Active runs always finish against the version they started on (unless an explicit, audited version-migration operation is invoked).
- Subsequent edits create a new draft without mutating the published
Checklist
- Does server-side validation enforce reachability, cycle detection, port wiring, and step config schemas before publish/run?
- Are variable references checked to ensure the referenced node is strictly upstream on all incoming paths?
- Are user conditions and data mappings evaluated in a safe, deterministic sandbox rather than
eval? - Does publishing create an immutable
WorkflowVersionwhile preserving in-flight runs on their original version?
Included files 1
SKILL.md
About this skill package
workflow-validation-versioning
workflow-validation-versioning: Build workflow editors and execution models that handle branching, approvals, waits, retries and versioned changes coherently.
Show less
workflow-validation-versioning
workflow-validation-versioning: Build workflow editors and execution models that handle branching, approvals, waits, retries and versioned changes coherently.
Includes the complete skill and its supporting files (1 files). The exact authored scope is preserved below.
Original skill description (source language)
Use when validating workflow graph soundness, reachability, cycle bounds, split/join balance, and step configurations on both client and server, with immutable published versions.
Install the skill, review its source and trust settings, then enable it for the relevant project or agent.
Requirements
- Orqestria installed on your computer.
