# dify-auto-import > HTTP API経由でDify CloudにYMLを自動インポート/エクスポートします(Playwrightは認証Cookie取得のみに使用)。インポート:初回は新規作成、2回目以降は自動で上書きインポート。app_idは flow_log/.{ファイル名}.app_id に自動保存され、次回から同じフローを更新します。--newで強制新規作成、--app-idで手動指定も可能。エクスポート:app_id指定でDifyからYMLをダウンロード、--include-secretで機密情報込みエクスポート可能。 - Author: ryuseisuda - Repository: ryuseisuda/clawd2 - Version: 20260123002259 - Stars: 0 - Forks: 0 - Last Updated: 2026-02-06 - Source: https://github.com/ryuseisuda/clawd2 - Web: https://mule.run/skillshub/@@ryuseisuda/clawd2~dify-auto-import:20260123002259 --- --- name: dify-auto-import description: "HTTP API経由でDify CloudにYMLを自動インポート/エクスポートします(Playwrightは認証Cookie取得のみに使用)。インポート:初回は新規作成、2回目以降は自動で上書きインポート。app_idは flow_log/.{ファイル名}.app_id に自動保存され、次回から同じフローを更新します。--newで強制新規作成、--app-idで手動指定も可能。エクスポート:app_id指定でDifyからYMLをダウンロード、--include-secretで機密情報込みエクスポート可能。" --- # Dify自動インポート Workflow ## Instructions 1. Preflight: - `./questions/import_questions.md` で対象YAMLファイル・インポートモードを確認する - flow_log/.{ファイル名}.app_id の存在を確認(上書き/新規の自動判定) - インポート前にYAML検証を実施 - テスト実行の要否を確認する 2. 生成: - **インポート処理** - 基本コマンド: `source .venv/bin/activate && python scripts/dify_import_api.py -f ` - 初回: 新規作成 → app_idを自動保存 - 2回目以降: 保存済みapp_idで上書きインポート - `--new`: 強制新規作成 - `--app-id`: 手動で上書き対象を指定 - `--refresh`: Cookie再取得 - `--preserve-remote-env {auto|on|off}`: 環境変数保持モード - **テスト実行** - コマンド: `source .venv/bin/activate && python scripts/dify_test_runner.py -f ` - テスト結果は logs/mcp_import/workflow_test_.md に保存 - エラー発生時は docs/errorlog/error_knowledge.jsonl にナレッジとして蓄積 - **エクスポート処理** - コマンド: `source .venv/bin/activate && python scripts/dify_export_api.py --app-id -o <出力先>` - `--include-secret`: 機密情報込みエクスポート - `--list`: Dify上のアプリ一覧を表示 - ブラッシュアップ時は --new オプション使用禁止(上書きインポート必須) - **直接編集が必要な場合** → `dify-api-edit` Skillを使用 - Playwrightは認証Cookie取得のみに使用(高速化) 3. QC(必須): - 共通QC Subagent(`qa-skill-qc`)に評価・チェックを委譲する - Subagentは最初に `./evaluation/evaluation_criteria.md` をReadし、評価指標に基づいてQCを実施する - チェック観点: - インポート成功の確認 - app_idの保存確認 - テスト結果の確認(実行した場合) - エラー発生時はエラーナレッジを参照し、既知の解決策を適用 - 指摘に対し「修正した/しない」と理由を成果物に残す 4. バックログ反映: - インポート完了後、テスト・ブラッシュアップのタスクを抽出する - 反映先・編集制約・差分提示は CLAUDE.md の全体ルールに従う subagent_policy: - 品質ループ(QC/チェック/フィードバック)は必要に応じてサブエージェントへ委譲する - サブエージェントの指摘を反映し、反映結果(修正有無/理由)を成果物に残す - エラーナレッジ蓄積・参照はSubagentで並列実行可能 recommended_subagents: - qa-skill-qc: 共通QC。対象Skillの ./evaluation/evaluation_criteria.md を先にReadしてからQCを開始 ## Resources - questions: ./questions/import_questions.md - evaluation: ./evaluation/evaluation_criteria.md - triggers: ./triggers/next_action_triggers.md - scripts: - ./scripts/dify_validation.py - ./scripts/dify_import_api.py - ./scripts/dify_export_api.py - ./scripts/dify_test_runner.py ## Next Action - triggers: ./triggers/next_action_triggers.md 起動条件に従い、条件を満たすSkillを自動実行する。 ## Error Handling - auth_cookie_expired: --refresh オプションを追加して再実行、Chromeでログイン画面が表示されたらログイン - app_id_not_found: flow_log/.{ファイル名}.app_id の存在を確認、--app-id で手動指定または --new で新規作成 - import_api_error: YAMLの構文を dify_validation.py で検証、Dify側の制限(サイズ等)を確認 - test_execution_error: エラーナレッジ(docs/errorlog/error_knowledge.jsonl)を確認、ノード設定・入力パラメータを見直し ## インポート/エクスポートコマンド ```bash # 基本インポート(app_idファイルがあれば自動で上書き) source .venv/bin/activate && python scripts/dify_import_api.py -f # 強制新規作成 source .venv/bin/activate && python scripts/dify_import_api.py -f --new # 手動で上書き対象を指定 source .venv/bin/activate && python scripts/dify_import_api.py -f --app-id # Cookie再取得 source .venv/bin/activate && python scripts/dify_import_api.py -f --refresh # ワークフローテスト source .venv/bin/activate && python scripts/dify_test_runner.py -f # エクスポート source .venv/bin/activate && python scripts/dify_export_api.py --app-id -o <出力先> # 機密情報込みエクスポート source .venv/bin/activate && python scripts/dify_export_api.py --app-id -o <出力先> --include-secret # アプリ一覧表示 source .venv/bin/activate && python scripts/dify_export_api.py --list ``` ## 上書きインポート動作 - **自動検出**: flow_log/.{ファイル名}.app_id ファイルが存在すれば自動で上書きモード - **保存情報**: app_id, app_name, updated_at - **ワークフロー**: 1. 初回インポート → 新規作成 → app_idを自動保存 2. YML修正 → 再インポート → 同じアプリを上書き更新 3. 必要に応じて --new で別アプリとして新規作成 ## パフォーマンス - 従来のPlaywright UIオートメーション: 10-15秒 - 新HTTP API方式: 2-3秒(約5倍高速) ## credential_id について - ツールノード右上の「Difyインテグレーション(接続先/credential)」を毎回固定したい場合は、YMLの該当ノード(type: tool)の data 直下に credential_id(UUID)を明示してからインポートする - credential_idの取得方法: 既に正しい接続先が設定されているフローをエクスポートし、同じprovider_idのノードにある credential_id をコピーする - credential_id はDifyワークスペース内で一意(別ワークスペースへ移行する場合は差し替え必要)