# Workflow Port > A port of one orchestration file - an Inngest function, a Trigger.dev task, a Temporal workflow or activities > module, or an AWS Step Functions state machine - to the Workflow SDK, following the migration rules of the skill > from vercel/workflow. Paste the file (or drop it); the browser masks comments, strings, template literals and regex > literals and ports the mechanical layer in its own copy: createFunction and task() to "use workflow" functions, each > step.run closure to a named "use step" function whose free variables become parameters, step.sleep, wait.for and > Temporal sleep to sleep(), proxyActivities away with "use step" on the activities, NonRetriableError, > AbortTaskRunError and ApplicationFailure.nonRetryable to FatalError, retries to stepFn.maxRetries, and the imports to > workflow and workflow/api. From the form (how a paused run resumes, where it runs, which framework starts it) it > computes the skill's route keys and their code obligations. It flags waitForEvent, Signals and task tokens, child > runs, streams and side effects left in workflow context. Metered runs write the review (the skill's six-section > migration) and the whole ported file with its app-boundary code. Built on the SkillSafe skill > @vercel/migrating-to-workflow-sdk, from vercel/workflow (Apache-2.0). https://workflow-port.skillsafe.ai/ ## What is free - The scan: every finding with an id (W1, W2, ...), an area, a severity (blocker, major, minor), the line, where it sits, what the page saw, the fix, and whether the page already ported it. - The route keys (resume/internal, resume/url/default, resume/url/manual, runtime/self-hosted, boundary/named-framework, boundary/framework-agnostic) and their code obligations, from the form. - The skill's verification checklist checked (statically, nothing is executed) on the page's copy, the steps, the ported file itself, findings as CSV, everything as JSON. ## The metered lanes Two tasks on gpt-terra, metered per run, routed by `task`. Input string fields: `task` (review or rewrite), `unit`, `code`, `carry` (rewrite only: the review's decisions) and `facts` (the page's scan and route keys). - `review` replies with `summary`, `route_keys`, `why`, `obligations`, `mapping` (source -> target), `findings`, `cleared`, `extra` (up to five issues a scan cannot see, on real lines), `plan`, `questions` (open questions) and `caveats`. - `rewrite` replies with `summary`, `route_keys`, `code` (the whole ported file), `boundary` (the app-boundary and resume code), `changes`, `kept` and `caveats`. The page holds every reply to its scan: each id accounted for exactly once, the route keys equal to the page's, every workflow kept by name, and the ported code and app boundary put through the skill's verification checklist. Workflow Port is an independent tool, not affiliated with or endorsed by Vercel, Temporal Technologies, Inngest, Trigger.dev or Amazon Web Services. ## Links - API tutorial: https://workflow-port.skillsafe.ai/api.html - Source skill: https://skillsafe.ai/skill/@vercel/migrating-to-workflow-sdk