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
Extended access
Why this level
- The installer copies files into the skills directory and the validator creates a virtual environment and installs Python packages.
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add skills/dify-workflow-dsl-skillDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewExtended 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.
Related
SkillsA skill that helps an agent author other skills to the agentskills.io spec: structure, metadata, progressive disclosure and validation
A skill for creating skills that proves them by behavior: before-and-after runs, regression evals and ecosystem audit
A meta-skill that folds rules scattered across AGENTS.md, CLAUDE.md and Cursor files into one project skill with task routes.
A skill that designs, tests, evaluates and packages other agent skills, starting from architecture
A CLI skill manager for AI agents: install from repositories, translate between agent formats and deploy into their configs
A skill that creates and reviews other skills, weighing usefulness, trigger boundaries, setup and stability before release.
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.