/run-workflow
Use the run-workflow MCP to discover, compose, execute, publish, and save Adobe Firefly workflows. TRIGGER when: user asks what actions are available, what the MCP can do, how to process images/video/3D via workflow, wants to build/run/save/publish a workflow, OR pastes any
$ npx -y skills add adobe/skills --skill run-workflow --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/run-workflow
Context preview
The summary Claude sees to decide when to auto-load this skill.
Use the run-workflow MCP to discover, compose, execute, publish, and save Adobe Firefly workflows. TRIGGER when: user asks what actions are available, what the MCP can do, how to process images/video/3D via workflow, wants to build/run/save/publish a workflow, OR pastes any
SKILL.md
run-workflow.SKILL.mdname: run-workflow
description: >-
Use the run-workflow MCP to discover, compose, execute, publish, and save
Adobe Firefly workflows. TRIGGER when: user asks what actions are available,
what the MCP can do, how to process images/video/3D via workflow, wants to
build/run/save/publish a workflow, OR pastes any workflow/batch/execution ID.
BARE ID (UUID/workflowId/batchId) = INSPECT ONLY — call inspect_run, NEVER
run_workflow_submit. ALWAYS call list_actions first for capability/discovery questions.
DO NOT TRIGGER for direct Firefly API calls without MCP (use firefly-api-specs).
license: Apache-2.0
metadata:
version: 1.0.0
visibility: public
run-workflow MCP
Discover, compose, run, publish, and save Adobe Firefly workflows through the run-workflow MCP server. Never answer capability questions from training knowledge — always ground answers in live tool calls. `list_actions` is ALWAYS the first call for any capability/discovery question.
This file is the always-loaded core. Deeper procedures live in `references/` and should be read **only when the current turn needs them**:
| Read this reference when… | File | | --- | --- | | User names a featured workflow, or supplies a custom `.indd` template to rewire | [`references/featured-and-templates.md`](references/featured-and-templates.md) | | Composing a non-trivial graph, wants multi-variant outputs, or a required input is missing | [`references/compose.md`](references/compose.md) | | Inspecting a run, listing history, or a workflow failed (error tables, `inspect_run` routing) | [`references/diagnostics.md`](references/diagnostics.md) | | Uploading files, resolving inline pastes, macOS permission error, saving outputs | [`references/asset-input.md`](references/asset-input.md) | | User asks for alert triage / RCA (dev-only: `login --dev`, Splunk + Slack) | [`references/alert-rca.md`](references/alert-rca.md) |
BARE ID RULE — read this before anything else
**When the skill argument is just an ID (UUID, workflowId, batchId, executionId) with no other context, the intent is ALWAYS to inspect — NEVER to execute.**
1. Call `inspect_run(id)` immediately. 2. Present the results (executions, outputs, diagnostics). 3. **STOP.** Do not call `run_workflow_submit` as a follow-up.
**"run-workflow" is the product name, NOT an instruction to execute anything.** Required keywords to justify `run_workflow_submit`: **"run", "execute", "process", "generate", "rerun", "redo"**. If NONE appear in the user's message, call `inspect_run`.
**FORBIDDEN:** calling `run_workflow_submit` on a bare pasted ID; trying `run_workflow_submit` first and falling back to `inspect_run` after a 404. For rerun-after-inspect handling by `canRerun`, see [`references/diagnostics.md`](references/diagnostics.md).
When to use
**TRIGGER when the user:** asks what actions/capabilities exist; wants to process images/video/3D through a Firefly workflow; wants to build/compose/execute a workflow; asks about past runs or history; pastes any run-workflow ID (→ `inspect_run`); asks "why did my workflow fail"; wants to publish a workflow as an API; wants to save a workflow to Workflow Builder.
**DO NOT TRIGGER when:** the user wants to call the Firefly REST API directly without MCP (use `firefly-api-specs`); the user is building/debugging the run-workflow server itself.
Tool routing
| User intent | Tool | | --- | --- | | "What actions are available?" / "What can this MCP do?" / "Show me the catalog" | `list_actions` | | "What parameters does action X accept?" | `get_action_schema` | | "Build / compose / create a workflow for…" | `compose_workflow` | | Upload a local file to get a URL | `upload_asset` | | Execute a workflow — only with explicit run/execute keywords. Returns a `batchId` immediately (async); safe for any size | `run_workflow_submit` | | Check whether a running execution is done — **always pass `includeOutputs: true`** on every poll | `run_workflow_get_status` | | Abort a running batch by batchId | `cancel_workflow` | | "List my workflows" / "Show my recent runs" (multiple) | `list_workflow_history` | | "Last workflow I ran" / "Most recent run" (single, by recency) | `list_workflow_history` (limit=1) → `inspect_run` | | Per-action outputs/logs/errors for a run; "why did it fail?"; any pasted ID | `inspect_run` | | Look up known-good examples to debug a failed compose | `get_workflow_examples` | | Reload examples after editing JSON files on disk | `reload_examples` | | Publish workflow as a reusable API endpoint with curl | `publish_workflow` | | Save workflow to user's ACP cloud / Workflow Builder UI | `save_workflow_to_acp` | | Generate a curl command for a published workflowId | `generate_curl` | | Display output images inline in chat | `display_asset` | | See newly registered actions (catalog stale) | `refresh_catalog` | | Run a named/featured workflow (retargeting, banners, localization, packaging…) | `get_featured_workflow` → see [`references/featured-and-templates.md`](references/featured-and-templates.md) |
**Single vs. multiple:** one ID / "the last one" / "that workflow" → `inspect_run` (full details). A list/history request with no named target → `list_workflow_history` (summaries only). See [`references/diagnostics.md`](references/diagnostics.md).
Workflow pattern
1. upload_asset — upload local files; get back URLs for use as inputs
1b. get_action_schema — if you can identify 1–3 target action types, fetch schemas BEFORE
composing and inject them into the compose message (see references/compose.md).
Skip for simple/obvious single-action workflows.
2. compose_workflow — describe the desired processing in natural language; the AI graph agent
designs the graph. DO NOT manually specify actions or connections.
3. run_workflow_submit — execute with inputs; pass session_id from step 2. Pass ALL images in ONE
call. RRead more
name: run-workflow description: >- Use the run-workflow MCP to discover, compose, execute, publish, and save Adobe Firefly workflows. TRIGGER when: user asks what actions are available, what the MCP can do, how to process images/video/3D via workflow, wants to build/run/save/publish a workflow, OR pastes any workflow/batch/execution ID. BARE ID (UUID/workflowId/batchId) = INSPECT ONLY — call inspect_run, NEVER run_workflow_submit. ALWAYS call list_actions first for capability/discovery questions. DO NOT TRIGGER for direct Firefly API calls without MCP (use firefly-api-specs). license: Apache-2.0 metadata: version: 1.0.0 visibility: public
run-workflow MCP
Discover, compose, run, publish, and save Adobe Firefly workflows through the run-workflow MCP server. Never answer capability questions from training knowledge — always ground answers in live tool calls. `list_actions` is ALWAYS the first call for any capability/discovery question.
This file is the always-loaded core. Deeper procedures live in `references/` and should be read **only when the current turn needs them**:
| Read this reference when… | File | | --- | --- | | User names a featured workflow, or supplies a custom `.indd` template to rewire | [`references/featured-and-templates.md`](references/featured-and-templates.md) | | Composing a non-trivial graph, wants multi-variant outputs, or a required input is missing | [`references/compose.md`](references/compose.md) | | Inspecting a run, listing history, or a workflow failed (error tables, `inspect_run` routing) | [`references/diagnostics.md`](references/diagnostics.md) | | Uploading files, resolving inline pastes, macOS permission error, saving outputs | [`references/asset-input.md`](references/asset-input.md) | | User asks for alert triage / RCA (dev-only: `login --dev`, Splunk + Slack) | [`references/alert-rca.md`](references/alert-rca.md) |
BARE ID RULE — read this before anything else
**When the skill argument is just an ID (UUID, workflowId, batchId, executionId) with no other context, the intent is ALWAYS to inspect — NEVER to execute.**
1. Call `inspect_run(id)` immediately. 2. Present the results (executions, outputs, diagnostics). 3. **STOP.** Do not call `run_workflow_submit` as a follow-up.
**"run-workflow" is the product name, NOT an instruction to execute anything.** Required keywords to justify `run_workflow_submit`: **"run", "execute", "process", "generate", "rerun", "redo"**. If NONE appear in the user's message, call `inspect_run`.
**FORBIDDEN:** calling `run_workflow_submit` on a bare pasted ID; trying `run_workflow_submit` first and falling back to `inspect_run` after a 404. For rerun-after-inspect handling by `canRerun`, see [`references/diagnostics.md`](references/diagnostics.md).
When to use
**TRIGGER when the user:** asks what actions/capabilities exist; wants to process images/video/3D through a Firefly workflow; wants to build/compose/execute a workflow; asks about past runs or history; pastes any run-workflow ID (→ `inspect_run`); asks "why did my workflow fail"; wants to publish a workflow as an API; wants to save a workflow to Workflow Builder.
**DO NOT TRIGGER when:** the user wants to call the Firefly REST API directly without MCP (use `firefly-api-specs`); the user is building/debugging the run-workflow server itself.
Tool routing
| User intent | Tool | | --- | --- | | "What actions are available?" / "What can this MCP do?" / "Show me the catalog" | `list_actions` | | "What parameters does action X accept?" | `get_action_schema` | | "Build / compose / create a workflow for…" | `compose_workflow` | | Upload a local file to get a URL | `upload_asset` | | Execute a workflow — only with explicit run/execute keywords. Returns a `batchId` immediately (async); safe for any size | `run_workflow_submit` | | Check whether a running execution is done — **always pass `includeOutputs: true`** on every poll | `run_workflow_get_status` | | Abort a running batch by batchId | `cancel_workflow` | | "List my workflows" / "Show my recent runs" (multiple) | `list_workflow_history` | | "Last workflow I ran" / "Most recent run" (single, by recency) | `list_workflow_history` (limit=1) → `inspect_run` | | Per-action outputs/logs/errors for a run; "why did it fail?"; any pasted ID | `inspect_run` | | Look up known-good examples to debug a failed compose | `get_workflow_examples` | | Reload examples after editing JSON files on disk | `reload_examples` | | Publish workflow as a reusable API endpoint with curl | `publish_workflow` | | Save workflow to user's ACP cloud / Workflow Builder UI | `save_workflow_to_acp` | | Generate a curl command for a published workflowId | `generate_curl` | | Display output images inline in chat | `display_asset` | | See newly registered actions (catalog stale) | `refresh_catalog` | | Run a named/featured workflow (retargeting, banners, localization, packaging…) | `get_featured_workflow` → see [`references/featured-and-templates.md`](references/featured-and-templates.md) |
**Single vs. multiple:** one ID / "the last one" / "that workflow" → `inspect_run` (full details). A list/history request with no named target → `list_workflow_history` (summaries only). See [`references/diagnostics.md`](references/diagnostics.md).
Workflow pattern
1. upload_asset — upload local files; get back URLs for use as inputs
1b. get_action_schema — if you can identify 1–3 target action types, fetch schemas BEFORE
composing and inject them into the compose message (see references/compose.md).
Skip for simple/obvious single-action workflows.
2. compose_workflow — describe the desired processing in natural language; the AI graph agent
designs the graph. DO NOT manually specify actions or connections.
3. run_workflow_submit — execute with inputs; pass session_id from step 2. Pass ALL images in ONE
call. RRepo: adobe/skills
Other skills on adobe-skills.
- /aa-conversion-funnel-analysis
Analyzes a multi-step conversion funnel to find where visitors drop off and which steps have the worst leakage. Use this skill when someone describes a journey and asks about conversion rates, drop-off, fallout, or step completion. Trigger for "analyze our checkout funnel,"
Open skill - /aa-executive-briefing
Generates a concise, executive-ready performance summary covering key metrics, trends, and what's driving movement. Use this skill when someone needs to produce a briefing, executive summary, performance narrative, or stakeholder readout — for example, "write an exec summary of
Open skill - /aa-kpi-pulse
Produces a compact KPI digest showing how key metrics changed over a period and what's driving the movement. Use this skill when someone asks for a performance summary, a weekly recap, a morning briefing, a KPI update, or any variation of "how did we do this week/month." Also
Open skill - /aa-segment-performance-comparator
Compares the performance of two or more audience segments across key metrics side by side. Use this skill when someone wants to compare audiences or visitor groups — for example, "how do mobile visitors compare to desktop on conversion," "compare new vs. returning visitors,"
Open skill - /aa-top-movers-watchlist
Identifies which items (pages, campaigns, products, channels, regions) had the biggest increases or decreases for a key metric between two time periods. Use this skill when someone asks "what's up and what's down," "which campaigns moved the most," "top gainers and losers,"
Open skill - /cja-dimension-analysis
Comprehensive dimension analysis and reporting for CJA. Use this skill whenever the user wants to analyze one or more dimensions — including cardinality, distribution/skew, trends, anomalies, data quality errors, comparisons, and forecasting. Also trigger when someone asks "what
Open skill

