dify-dsl-engineer is a Codex skill for engineering Dify workflow and chatflow DSL files. It helps inspect, create, repair, migrate, and validate exported Dify YAML without treating a single release's node schema as universal.
- Import and runtime failures in Dify DSL files.
- Workflow graph changes: nodes, edges, branches, loops, iterations, aggregators, HTTP requests, tools, and knowledge retrieval.
- Dify DSL version compatibility and target-version validation.
- Provider, model, plugin, credential, environment-variable, and dataset portability checks.
- Branch-safe variable aggregation and common HTTP node validation.
The target Dify instance is the source of truth. Before editing a workflow, export a small working application from the target workspace and use its DSL version and node shapes as the baseline. The bundled local validator catches common structural mistakes, while the optional runtime validator uses the target Dify API container's real node schemas.
- Python 3.10 or later.
PyYAMLand Pydantic v2 for local validation.- Docker plus Dify source access for runtime-schema validation.
Validate a DSL file locally:
python .\scripts\validate_dify_dsl.py .\workflow.ymlValidate nodes in the target Dify API container:
docker compose cp .\workflow.yml api:/tmp/workflow.yml
docker compose cp .\scripts\dify_runtime_validate_inner.py api:/tmp/dify_runtime_validate_inner.py
docker compose exec api python /tmp/dify_runtime_validate_inner.py /tmp/workflow.ymlThe local validator is a preflight check, not a full Dify importer or executor. A portable DSL still needs matching plugins, configured model credentials, environment variables, and destination workspace resources. Import the result into the target Dify workspace and test every changed path.
python .\tests\check_skill.pySee the Chinese README for the same documentation in Chinese.