| workflow |
vercel/workflow |
9 |
|
https://vercel.com/sitemap/docs.xml |
| lib/workflow/** |
| src/lib/workflow/** |
| workflows/** |
| lib/workflow.* |
| src/lib/workflow.* |
| workflow.* |
| *workflow* |
| *workflow*/** |
| **/chain-engine* |
| **/chain_engine* |
| **/chainEngine* |
| **/pipeline-engine* |
| **/pipeline_engine* |
| **/pipelineEngine* |
| **/state-machine* |
| **/state_machine* |
| **/stateMachine* |
| **/orchestrat* |
| **/escalation* |
|
| \bnpm\s+(install|i|add)\s+[^\n]*@vercel/workflow\b |
| \bpnpm\s+(install|i|add)\s+[^\n]*@vercel/workflow\b |
| \bbun\s+(install|i|add)\s+[^\n]*@vercel/workflow\b |
| \byarn\s+add\s+[^\n]*@vercel/workflow\b |
| \bnpm\s+(install|i|add)\s+[^\n]*\bworkflow\b |
| \bpnpm\s+(install|i|add)\s+[^\n]*\bworkflow\b |
| \bbun\s+(install|i|add)\s+[^\n]*\bworkflow\b |
| \byarn\s+add\s+[^\n]*\bworkflow\b |
| \bnpm\s+(install|i|add)\s+[^\n]*@workflow/ |
| \bpnpm\s+(install|i|add)\s+[^\n]*@workflow/ |
| \bbun\s+(install|i|add)\s+[^\n]*@workflow/ |
| \byarn\s+add\s+[^\n]*@workflow/ |
| \bnpx\s+workflow(?:@latest)?\b |
| \bbunx\s+workflow(?:@latest)?\b |
|
| @vercel/workflow |
| workflow |
| @workflow/* |
| *workflow* |
|
| phrases |
allOf |
anyOf |
noneOf |
minScore |
| vercel workflow |
| workflow devkit |
| durable workflow |
| durable execution |
| durable function |
| durable pipeline |
| durable process |
| durable agent |
| durable chat |
| step function |
| step functions |
| use workflow |
| use step |
| multi-step pipeline |
| multi step pipeline |
| multi-step process |
| multi step process |
| multi-step creation |
| multi-step generation |
| processing pipeline |
| creation pipeline |
| generation pipeline |
| content pipeline |
| production pipeline |
| approval pipeline |
| ingestion pipeline |
| streams progress |
| stream progress |
| streams each phase |
| streams each step |
| streams each |
| stream each |
| survive page reload |
| survive page reloads |
| survive a crash |
| survive crashes |
| survive network |
| fault-tolerant |
| fault tolerant |
| crash-safe |
| crash safe |
| automatically retry |
| auto retry |
| retry on failure |
| retry on error |
| reliable and retry |
| reliable processing |
| individually reliable |
| each step reliable |
| each step should be reliable |
| steps should be reliable |
| reliable with automatic retry |
| reliable with retry |
| retry on transient |
| transient failures |
| session persistence |
| session should persist |
| session survives |
| reconnect automatically |
| auto reconnect |
| reconnect if the network |
| reconnect on disconnect |
| resume after failure |
| resume after crash |
| resume on reconnect |
| human-in-the-loop |
| human in the loop |
| wait for approval |
| approval step |
| approval before |
| editorial approval |
| manual approval |
| wait for user |
| pause until |
| wait for response |
| callback url |
| webhook callback |
| chat should survive |
| chat survives |
| conversation should persist |
| conversation persists |
| conversation should survive |
| sequential chain |
| email chain |
| chain of emails |
| chain of steps |
| chain engine |
| chain with triggers |
| trigger chain |
| triggered chain |
| webhook chain |
| webhook pipeline |
| webhook orchestration |
| multi-service trigger |
| cross-service trigger |
| various triggers |
| different triggers |
| triggers from different |
| triggers from various |
| sequential steps |
| sequential pipeline |
| sequential process |
| sequential emails |
| escalation chain |
| escalation pipeline |
| state machine |
| step-based |
| step based |
| delay between steps |
| delay between emails |
| delayed steps |
| conditional steps |
| skip steps |
| branch based on |
| wait for webhook |
| wait for trigger |
| wait for event |
| orchestrate emails |
| orchestrate webhooks |
| orchestrate services |
| chain across services |
| workflow stuck |
| workflow hung |
| workflow hanging |
| workflow waiting |
| workflow failing |
| workflow timeout |
| workflow not running |
| workflow error |
| check workflow |
| workflow logs |
| workflow run status |
| debug workflow |
| workflow not finishing |
| workflow not responding |
| workflow stalled |
| workflow pending |
| step is stuck |
| step is hanging |
| why is my workflow |
| workflow run |
| step failed |
| run status |
| run failed |
| run logs |
| workflow run failed |
| workflow step failed |
|
|
| long-running |
| long running |
| multi-step |
| multi step |
| pipeline |
| orchestration |
| step-by-step |
| step by step |
| each piece |
| each step |
| each phase |
| each stage |
| phase |
| phases |
| stage |
| stages |
| durable |
| reliable |
| fault-tolerant |
| retry |
| reconnect |
| survive |
| persist |
| approval |
| chain |
| sequential |
| trigger |
| webhook |
| escalation |
| state machine |
| orchestrate |
| orchestration |
|
| github actions |
| .github/workflows |
| ci workflow |
| aws step functions |
|
4 |
|
| pattern |
message |
severity |
upgradeToSkill |
upgradeWhy |
| experimental_createWorkflow |
experimental_createWorkflow is now stable — use createWorkflow from @vercel/workflow. Run npx @ai-sdk/codemod v6 for automated migration. |
error |
workflow |
Guides migration from experimental_createWorkflow to the stable createWorkflow API and then to the "use workflow" directive. |
|
| pattern |
message |
severity |
| from\s+['"]@vercel/workflow['"] |
Workflow DevKit requires AI Gateway OIDC setup — ensure vercel link + vercel env pull for VERCEL_OIDC_TOKEN |
recommended |
|
| pattern |
message |
severity |
skipIfFileContains |
| setTimeout|setInterval |
setTimeout/setInterval are not available in workflow sandbox scope — use sleep() from "workflow" for delays |
error |
use step |
|
| pattern |
message |
severity |
upgradeToSkill |
upgradeWhy |
| context.run\s*( |
context.run() is not a WDK pattern — use "use step" directive for retryable, observable steps |
error |
workflow |
Guides migration from context.run() to the "use step" directive for durable, retryable workflow steps. |
|
| pattern |
message |
severity |
skipIfFileContains |
| \brequire\s*( |
require() is not available in workflow sandbox scope — use ESM imports and move Node.js logic into "use step" functions |
error |
use step |
|
| pattern |
message |
severity |
skipIfFileContains |
| getWritable() |
getWritable() must only be called inside "use step" functions — workflow sandbox scope does not support it |
recommended |
use step |
|
| pattern |
message |
severity |
skipIfFileContains |
upgradeToSkill |
upgradeWhy |
| createWorkflow\s*( |
createWorkflow() is the legacy API — use the "use workflow" directive on an async function instead |
error |
experimental_createWorkflow |
workflow |
Guides migration from createWorkflow() function API to the "use workflow" directive pattern. |
|
| pattern |
message |
severity |
upgradeToSkill |
upgradeWhy |
| streamObject\s*( |
streamObject() was removed in AI SDK v6 — use streamText() with output: Output.object() instead |
error |
ai-sdk |
Guides migration from streamObject to streamText + Output.object() with correct v6 streaming patterns. |
|
| pattern |
message |
severity |
skipIfFileContains |
| await\s+\w+Workflow\s*( |
Do not call workflow functions directly — use start() from "workflow/api" to register the run and get a runId |
recommended |
use workflow |
|
| pattern |
message |
severity |
skipIfFileContains |
| \bfetch\s*( |
Native fetch() is not available in workflow sandbox scope — import fetch from "workflow" or move the call into a "use step" function |
recommended |
use step |
|
| pattern |
message |
severity |
skipIfFileContains |
| "use step" |
Workflow steps should include console.log or structured logging for observability — add logging at step entry/exit to debug hangs |
warn |
console\.(log|warn|error|info) |
|
| pattern |
message |
severity |
skipIfFileContains |
| "use workflow" |
Workflow files should import and use logging — add console.log or a logger at key execution points for debugging |
warn |
console\.(log|warn|error|info) |
|
| pattern |
targetSkill |
message |
| DurableAgent|@workflow/ai |
ai-sdk |
DurableAgent detected without AI SDK context — loading AI SDK guidance for tool calling, Agent class, and model configuration. |
|
| pattern |
targetSkill |
message |
| useChat|DefaultChatTransport |
ai-elements |
Workflow with chat UI detected — loading AI Elements for streaming-aware MessageResponse and Conversation rendering. |
|
| pattern |
targetSkill |
message |
| process.env.(OPENAI_API_KEY|ANTHROPIC_API_KEY)|from\s+[''"]@ai-sdk/(anthropic|openai)[''""] |
ai-gateway |
Direct provider API key in workflow — loading AI Gateway guidance for OIDC auth (required for WDK AI steps). |
|
| pattern |
targetSkill |
message |
| setTimeout\s*(|setInterval\s*( |
vercel-functions |
Timer-based delay in workflow code — use sleep() from "workflow" instead of setTimeout/setInterval. Loading Vercel Functions guidance. |
|
|
| aliases |
intents |
entities |
| durable workflow |
| long running task |
| step function |
| orchestration |
|
| build workflow |
| add retry logic |
| create durable task |
| implement step function |
|
| Workflow DevKit |
| WDK |
| step |
| pause/resume |
| durable |
|
|
| pattern |
targetSkill |
message |
skipIfFileContains |
| DurableAgent|@workflow/ai |
ai-sdk |
DurableAgent detected without AI SDK context — loading AI SDK guidance for tool calling, Agent class, and model configuration. |
from\s+[''"]ai[''"]|@ai-sdk/|streamText|generateText |
|
| pattern |
targetSkill |
message |
skipIfFileContains |
| useChat|DefaultChatTransport |
ai-elements |
Workflow with chat UI detected — loading AI Elements for streaming-aware MessageResponse and Conversation rendering. |
ai-elements|MessageResponse|<Message\b |
|
| pattern |
targetSkill |
message |
skipIfFileContains |
| process.env.(OPENAI_API_KEY|ANTHROPIC_API_KEY)|from\s+[''"]@ai-sdk/(anthropic|openai)[''""] |
ai-gateway |
Direct provider API key in workflow — loading AI Gateway guidance for OIDC auth (required for WDK AI steps). |
gateway(|@ai-sdk/gateway|VERCEL_OIDC |
|
| pattern |
targetSkill |
message |
skipIfFileContains |
| setTimeout\s*(|setInterval\s*( |
vercel-functions |
Timer-based delay in workflow code — use sleep() from "workflow" instead of setTimeout/setInterval. Loading Vercel Functions guidance. |
from\s+[''"]workflow[''"].*sleep|sleep\s*( |
|
|