Dify Workflow DSL Skill

A skill that creates, repairs and validates Dify 1.18 app DSL YAML with 1.15 and 1.16 profiles, so imports pass cleanly.

  • 106 ★ on the repository
  • Last commit
Skill

Extended access

Why this level

  • The installer copies files into the skills directory and the validator creates a virtual environment and installs Python packages.
All reasons and checks

yzmw123/dify-workflow-dsl-skill

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add skills/dify-workflow-dsl-skill

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Extended accessThe tool runs code or makes network calls and only reads external data.

  • The installer copies files into the skills directory and the validator creates a virtual environment and installs Python packages.

This is third-party code. Review the repository files before installing.

What it does

The skill teaches an agent to write import-ready Dify App DSL files: Workflow, Chatflow, Agent App and Agent v2 nodes. The agent picks a version (Dify 1.18 with DSL 0.7.0 by default, Dify 1.15 needs DSL 0.6.0), builds the node graph, wires the edges and adds plugin dependencies. Then it runs `scripts/run_validator.py --strict --dify-version <version>`: the validator creates its own virtual environment and reports errors with stable codes and JSON. The repository holds 14 verified examples. In existing files the skill repairs branches, selectors and outdated structures.

Who it is for. Builders of Dify apps and workflows who need an agent to produce files that import without manual fixes.

Good fit when

  • A new Dify workflow with branching, a loop and a human-approval node is built from a task description.
  • A file exported from Dify 1.16 is moved to 1.18.
  • Import fails with a DSL version error and the cause is unclear.
  • Before release CI runs `run_validator.py --strict` over a folder of YAML files.

Not a fit when

  • You must verify model execution and node results: the validator is static.
  • The app is edited directly in the Dify UI without exporting YAML.
  • The workspace is older than Dify 1.15: no profile exists for it.

Example request

Use $dify-workflow-dsl: create a workflow for Dify 1.15.0 on DSL 0.6.0 that summarizes text, and check it with the validator.

Limitations

Validation is static: installed plugin versions, tool schemas, knowledge bases and secrets stay in your workspace and are rebound after import. Model execution and a UI export round trip are checked in Dify itself. The validator needs Python 3.10 or newer, installs PyYAML into a cached environment on first run, and offline use requires local wheels. The repository has no license file, which matters for company projects.

How to disable. Delete the installed skill folder from your agent skills directory and the repository clone.

FAQ

Which Dify version does the skill target by default?

Dify 1.18 with DSL `0.7.0`. Dify 1.15 needs DSL `0.6.0`, and the version is set with `--dify-version`.

Which agents have an installer?

`install.sh` accepts the platforms claude, codex, openclaw, hermes, opencode and all. `--target-dir` sets a custom skills directory.

When should I choose advanced-chat?

When you need conversation memory, `sys.query`, chat file upload or `answer` nodes. Other tasks default to `workflow`.

Which nodes does the skill cover?

Start, End, Answer, LLM, Code, IF/ELSE, question classifier, Human Input, Iteration, Loop, Assigner v2, tools, triggers and knowledge retrieval.

How do I check a file before import?

Run `python3 scripts/run_validator.py --strict --dify-version 1.18 workflow.yml`. The validator prints errors with stable codes, and its JSON output suits CI.

Discussion

No questions or reviews yet.

Skills

A skill that helps an agent author other skills to the agentskills.io spec: structure, metadata, progressive disclosure and validation

SkillMinimal access2.3KRepository stars

A skill for creating skills that proves them by behavior: before-and-after runs, regression evals and ecosystem audit

SkillExtended access918Repository stars

A meta-skill that folds rules scattered across AGENTS.md, CLAUDE.md and Cursor files into one project skill with task routes.

PluginExtended access622Repository stars

A skill that designs, tests, evaluates and packages other agent skills, starting from architecture

SkillExtended access212Repository stars

A CLI skill manager for AI agents: install from repositories, translate between agent formats and deploy into their configs

CLIExtended access1.6KRepository stars

A skill that creates and reviews other skills, weighing usefulness, trigger boundaries, setup and stability before release.

SkillMinimal access102Repository stars

README in short

The README describes a skill for creating, repairing, reviewing and migrating Dify app DSL. The 2026-10-30 release added Dify 1.18 profiles and current Agent and knowledge schemas. 54 regression tests back the checks, and all 14 examples passed import into a real Dify database.

README badge

Original SKILL.md

---
name: dify-workflow-dsl
description: >
  Create, modify, review, migrate, and debug import-ready Dify App DSL YAML for
  Dify 1.18 and legacy 1.15/1.16 targets (DSL 0.6.0 and 0.7.0). Use for
  Workflow, Chatflow, Agent App, Agent v2 workflow
  nodes, Human Input, graph wiring, variables, plugin dependencies, tools,
  database operations, and import/export compatibility.
---

# Dify Workflow DSL

Produce import-ready Dify App DSL YAML. Treat official Dify source as schema
authority and exported files from the target workspace as authority for dynamic
plugin/tool fields.

## Core Workflow

1. Identify the target Dify/DSL version before authoring. For a new file, default
   to Dify `1.18` with DSL `0.7.0`. Use `1.16` / `0.7.0` or `1.15` / `0.6.0`
   for older workspaces. The DSL version alone does not distinguish 1.16 from 1.18.
   Preserve an existing supported version unless the user asks to migrate it.
   Always quote `version`.
2. Choose the app mode:
   - `workflow` for one-shot, batch, triggered, integration, and structured-output
     automations.
   - `advanced-chat` for multi-turn chat, memory, `sys.query`, `sys.files`, and
     `answer` nodes.
   - `agent` only for a top-level portable Agent App in DSL `0.7.0`.
3. Clarify only import-blocking facts: inputs, outputs, model/provider, installed
   plugins, knowledge bases, secrets, trigger source, or required Agent package.
4. Sketch the graph or Agent package before writing YAML. A graph needs an entry,
   connected processing nodes, and a reachable `end`/`answer` unless a triggered
   side-effect workflow intentionally returns nothing.
5. Add a top-level dependency for every referenced marketplace/package/GitHub
   plugin. Preserve exact exported identifiers.
6. Write stable string IDs and connect edges with existing endpoints, matching
   `sourceType`/`targetType`, and valid branch `sourceHandle` values.
7. Run `python3 scripts/run_validator.py --strict --dify-version <1.15|1.16|1.18> <file.yml>`.
   The runner creates a cached virtual environment and installs `requirements.txt`
   on first use. Python 3.10+ is required; see `references/runtime.md` for offline setup.
   Fix all errors and warnings unless a warning is an intentional, documented
   behavior risk.
8. When a matching Dify source environment is available, run
   `scripts/validate_with_dify_source.py` before claiming source compatibility.

Report a problem