Dify ワークフローの DSL(YAML ファイル)を生成・編集・検証・参照するスキル。 特に、Dify 固有のノード仕様・必須フィールド・UI 互換要件を外さずに、 制約付きで安全に DSL を扱いたい場面で使用する。
From dify-dsl-generatornpx claudepluginhub azk0305/az-c-marketplace --plugin dify-dsl-generator-pluginThis skill uses the workspace's default tool permissions.
assets/p1-01-minimal-workflow.ymlassets/p1-02-minimal-chatflow.ymlassets/p1-03-basic-llm-chat.ymlassets/p1-04-basic-llm-workflow.ymlassets/p1-05-prompt-variable-expansion.ymlassets/p1-06-system-prompt-with-context.ymlassets/p1-07-vision-api-workflow.ymlassets/p1-08-knowledge-retrieval-basic.ymlassets/p1-09-knowledge-retrieval-multiple.ymlassets/p1-10-speech-to-text-chatflow.ymlassets/p2-11-python-string-concat-split.ymlassets/p2-12-python-json-parse-array.ymlassets/p2-13-javascript-number-calc-format.ymlassets/p2-14-template-transform-basic.ymlassets/p2-15-template-transform-json-payload.ymlassets/p2-16-parameter-extractor-single-string.ymlassets/p2-17-parameter-extractor-multiple-params.ymlassets/p2-18-parameter-extractor-default-values.ymlassets/p2-19-variable-aggregator-string.ymlassets/p2-20-variable-aggregator-array.ymlGuides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Orchestrates subagents to execute phased plans: deploys for implementation, verification, anti-pattern checks, code quality review, and commits only after passing checks.
このスキルは、Dify DSL を自由記述で書くのではなく、references/ のガイドラインと assets/ の検証済みサンプルを使って、制約付きで生成・編集・検証するためのスキルです。
小型モデルや OSS モデルでも破綻しにくいように、知識量ではなく手順・制約・ few-shot の選び方で精度を担保します。
references/)references/dify-dsl-generation-guidelines.md
nodes-*.md)— 対象ノード型に応じてファイルを選ぶ| 参照ファイル | 収録ノード |
|---|---|
references/dify-dsl-guidelines-nodes-start-llm.md | Start, LLM |
references/dify-dsl-guidelines-nodes-output-transform.md | Answer, End, Knowledge Retrieval, Code, Template Transform, Parameter Extractor, Variable Aggregator |
references/dify-dsl-guidelines-nodes-branch-http-data.md | If-Else, HTTP Request, Document Extractor, List Operator, Variable Assigner |
references/dify-dsl-guidelines-nodes-loop-iteration.md | Loop, Iteration |
references/dify-dsl-guidelines-nodes-hitl-trigger-classifier.md | Human-Input, Trigger-Webhook, Trigger-Schedule, Question Classifier |
references/dify-dsl-guidelines-features-tools.md
features と Tool ノードの厳密制約references/dify-dsl-guidelines-errors.md
assets/)assets/samples-index.md
assets/*.yml
workflow / advanced-chat を決めるreferences/dify-dsl-guidelines-errors.md の関連ルールで見直す| モード | トリガー例 | 主目的 | 基本出力 |
|---|---|---|---|
| 生成 | 「〜の DSL を作って」「〜のワークフローを生成して」 | 新規 DSL を組み立てる | インポート可能な完全 YAML |
| 編集 | 「この DSL に〜を追加して」「〜ノードを変更して」 | 既存 DSL を安全に更新する | 変更反映後の完全 YAML |
| 検証 | 「この DSL を確認して」「バリデーションして」 | ルール違反や危険箇所を見つける | 問題一覧 + 最小修正案 |
| 参照 | 「〜ノードの書き方は?」「〜フィールドの意味は?」 | 特定仕様を説明する | 該当仕様の要点 |
どのモードでも、基本の進め方は同じです。
references/dify-dsl-generation-guidelines.md で全体ルールを確認するreferences/ から抽出するassets/samples-index.md から近いサンプルを 1〜2 件選ぶreferences/dify-dsl-guidelines-errors.md の関連ルールで lint するfeatures は references/dify-dsl-guidelines-features-tools.md の該当節だけを見るworkflow か advanced-chat かを決めるreferences/dify-dsl-guidelines-features-tools.md も参照するassets/samples-index.md から最も近いサンプルを 1〜2 件選ぶreferences/ で再確認する検証では、DSL を再発明しない。ルール違反だけを列挙する。
**生成後 lint プロトコル(6 フェーズ)**を全フェーズ実行する。
検証結果は、以下の形式を優先する。
ユーザーが特定ノードやフィールドの説明を求めた場合:
references/dify-dsl-guidelines-features-tools.md も参照するassets/ の近いサンプル名を 1〜2 件だけ示すkind: appversion: 0.6.0app.mode は原則 workflow または advanced-chatworkflow.graph.nodes / edges / viewport を含めるposition と positionAbsolute は同じ値selected: false をノードレベルと data の両方に書くtype: custom、sourcePosition: right、targetPosition: left を維持するheight / width は reference の実測値を優先するsourceHandle: source と決め打ちしない。If-Else は真ルートが case_id の UUID、else ルートが 'false'conditions[] には必ず varType: string または varType: number を入れるcase_id とケース側 id は同じ UUID を使うid も UUID を使うempty / not empty では value を書かない{{#nodeId.variableName#}}query は配列形式provider_type は推測しないparamSchemas、params、tool_node_version は勝手に省略しないdependencies は使用中のプラグインと一致させるfile_upload.number_limits と Start ノード max_length を一致させるprovider_id、plugin_unique_identifier など)は一般化しない生成モードの step 7、編集モードの step 6、検証モードで使う体系的チェックリスト。
存在確認できたら次フェーズへ進む。問題は最小修正案とともに報告する。
kind: app が存在するversion: 0.6.0 が存在するapp.mode が workflow または advanced-chat であるworkflow.graph.nodes / edges / viewport が存在するid が一意であるsource / target が実在するノード id を参照しているsourceType / targetType が実ノード型と一致している全ノードについて確認する:
position と positionAbsolute が同じ値であるselected: false がノードレベルと data の両方に存在するtype: custom、sourcePosition: right、targetPosition: left が維持されているheight / width がガイドラインの実測値と大きく乖離していないDSL に含まれるノード型を特定し、該当するルールだけを確認する。優先順位:
paramSchemas / params / provider_type / dependencies の欠落・誤記body.type と body.data 形式の整合性、Content-Type 手動設定の有無、error_strategy: fail-branch 設定と fail-branch エッジの対応関係(片方だけ存在しないか)variables[].value_type の有無、tojson の使い方outputs が辞書形式か、JavaScript の async function 禁止loop-end 混入の有無、break_conditions 参照先の正確性inputs[].type の正当性、不要な config: {} の有無method の大文字表記、ヘッダー変数名変換varType の有無、case_id / case id / 条件 id の UUID 使用、empty/not empty での value 非存在query が配列形式かadvanced_settings.groups[].variables が list[list[str]] かdependencies に宣言したプラグインが実際に使われている(過不足がない)features の設定が Start ノードの変数定義と矛盾していないfile_upload.number_limits と Start ノードの max_length が一致しているconversation_variables / environment_variables に定義されているreferences/dify-dsl-guidelines-errors.md から DSL 内に存在するノード型の関連ルールだけを抽出し、適用する。
ガイドラインにないフィールドが書かれていたら、その理由を説明するか削除する。
references/dify-dsl-generation-guidelines.md上記ルックアップテーブル(「利用できるリソース / ガイドライン」節)で対象ノードのファイルを特定し、そのファイルだけを読む
references/dify-dsl-guidelines-features-tools.mdreferences/dify-dsl-guidelines-errors.mdassets/samples-index.mdmode が一致するサンプルを選ぶ出力前に必ず以下を確認する。
references/ にない自由解釈を混ぜていないかassets/ からの流用時に node type や mode を取り違えていないかreferences/dify-dsl-guidelines-errors.md の関連ルールに抵触していないかこのスキルは、知識で埋めるより、制約で外さないことを優先する。