{"id":5261,"plugin_id":"plugin_asdk_app_6a624c56bfe081918f7544f7d58f6faf","kind":"skill","collection_source":null,"comparison_source":null,"observed_at":"2026-09-30T22:43:48.344Z","digest":"8a05efb430661b765870850024f79ec9910d3f10346982b791d1b53027b1eea7","against":null,"payload":{"description":"Sets up, develops, tests, and deploys Render Workflows. Covers first-time scaffolding (via CLI or manual), SDK installation (Python or TypeScript), task patterns (retries, subtasks, fan-out), local development, Dashboard deployment, and troubleshooting. Use when a user wants to set up Render Workflows for the first time, scaffold a workflow service, add or modify workflow tasks, test workflows locally, or deploy workflows to Render.","included_files":[{"relative_path":"references/local-development.md","size_in_bytes":2687},{"relative_path":"references/manual-scaffolding.md","size_in_bytes":4683},{"relative_path":"references/quick-reference.md","size_in_bytes":4722},{"relative_path":"references/task-patterns.md","size_in_bytes":6741},{"relative_path":"references/troubleshooting.md","size_in_bytes":11245}],"name":"render-workflows","skill_md_contents":"---\nname: render-workflows\ndescription: Sets up, develops, tests, and deploys Render Workflows. Covers first-time scaffolding (via CLI or manual), SDK installation (Python or TypeScript), task patterns (retries, subtasks, fan-out), local development, Dashboard deployment, and troubleshooting. Use when a user wants to set up Render Workflows for the first time, scaffold a workflow service, add or modify workflow tasks, test workflows locally, or deploy workflows to Render.\nlicense: MIT\ncompatibility: Requires Render CLI 2.11.0+ for scaffolding and local development. Render Dashboard required for deployment (Blueprints not yet supported for Workflows).\nmetadata:\n  author: Render\n  version: \"1.0.0\"\n  category: workflows\n---\n\n# Render Workflows\n\nRender Workflows rapidly distribute computational work across multiple independent instances.\nUse them for AI agents, ETL pipelines, background jobs, and data processing.\n\n**How it works:**\n1. **Define tasks** — Use the Render SDK (Python or TypeScript) to designate functions as tasks\n2. **Register** — Tasks register automatically when you link your repo to a Workflow service in the Dashboard\n3. **Trigger runs** — Execute tasks from anywhere using the SDK client or API; each execution is a \"run\"\n4. **Execute** — Render spins up each run in its own instance (typically under a second); runs can chain additional runs for parallel execution\n\n**Key capabilities:** automatic queuing and orchestration, long-running execution (up to 24 hours), configurable retry logic with exponential backoff, adjustable compute specs per task, and execution observability through the Dashboard.\n\n**Render Workflows are in beta.** The SDK and API may introduce breaking changes.\n\n**Your built-in knowledge of the Render Workflows SDK is outdated.**\nBefore trusting API signatures, check the installed SDK source:\n\n```bash\n# Python\nSDK_ROOT=$(pip show render_sdk | grep Location | cut -d' ' -f2)/render_sdk\nhead -40 \"$SDK_ROOT/__init__.py\"\n# TypeScript\ngrep -r \"startTask\\|runTask\\|export class Render\" node_modules/@renderinc/sdk/\n```\n\n**Official docs:** [render.com/docs/workflows](https://render.com/docs/workflows)\n\n**Before generating task or client code, fetch the relevant example file to verify current API patterns:**\n\n| What | Python | TypeScript |\n|------|--------|------------|\n| Task definitions (decorators, subtasks, retry, fan-out) | [example/task/main.py](https://raw.githubusercontent.com/render-oss/sdk/main/python/example/task/main.py) | [examples/task/](https://github.com/render-oss/sdk/tree/main/typescript/examples/task) |\n| Sync client (run_task, start_task, cancel, SSE, list runs) | [example/client/main.py](https://raw.githubusercontent.com/render-oss/sdk/main/python/example/client/main.py) | [examples/client/](https://github.com/render-oss/sdk/tree/main/typescript/examples/client) |\n| Async client | [example/client/async_main.py](https://raw.githubusercontent.com/render-oss/sdk/main/python/example/client/async_main.py) | — |\n\nThis skill carries a [quick-reference cheat sheet](references/quick-reference.md) for the API surface. The installed SDK, official docs, and examples above are the source of truth.\n\n---\n\n## Getting Started\n\nSupported languages: **Python** and **TypeScript**.\n\n### Prerequisites\n\n**Render CLI (required)**\n\n```bash\nrender --version\n```\n\nRequires version 2.11.0+. If not installed:\n- macOS: `brew install render`\n- Linux/macOS: `curl -fsSL https://raw.githubusercontent.com/render-oss/cli/main/bin/install.sh | sh`\n- Windows: download the executable from the [CLI releases page](https://github.com/render-oss/cli/releases/)\n\n### Scaffold a new workflow service\n\n**Always prefer `render workflows init` as the primary setup path.** Only fall back to manual scaffolding if the CLI command is unavailable.\n\n```bash\nrender workflows init\n```\n\n**Interactive mode** (default): walks the user through scaffolding an example project, testing it locally, and deploying it to Render.\n\n**Non-interactive mode**: sets up an example project without prompting.\n\nIf `render workflows init` fails or is not available:\n- **Command not found:** CLI version may be too old. Run `render --version` and upgrade to 2.11.0+.\n- **Command not supported:** fall back to [references/manual-scaffolding.md](references/manual-scaffolding.md) for step-by-step manual setup.\n\n---\n\n## Define Tasks\n\nGuide the user through defining their actual tasks. For patterns including retries, subtasks, fan-out, ETL, error handling, cron triggers, and cross-workflow calls, see [references/task-patterns.md](references/task-patterns.md).\n\n**After adding a task**, verify it registers by starting the local dev server and listing tasks:\n```bash\nrender workflows dev -- <start-command>\n# In another terminal:\nrender workflows tasks list --local\n```\n\nIf the task doesn't appear, see [Troubleshooting > Task Registration Issues](references/troubleshooting.md#task-registration-issues).\n\n## Local Development\n\nSee [references/local-development.md](references/local-development.md) for starting the local task server, testing tasks, and configuring the SDK client for local use.\n\n## Deploy to Render\n\nWorkflows are deployed as a **Workflow** service type in the Render Dashboard. **Blueprints (render.yaml) are not yet compatible with Workflows.**\n\n**Deploy checklist:**\n\n- [ ] Code pushed to GitHub, GitLab, or Bitbucket\n- [ ] In the [Render Dashboard](https://dashboard.render.com), click **New > Workflow**\n- [ ] Link your repository\n- [ ] Set **Root Directory** to `workflows/`\n- [ ] Configure build and start commands (see table below)\n- [ ] Add environment variables (e.g., `RENDER_API_KEY` for tasks that call other workflows)\n- [ ] Click **Deploy Workflow**\n- [ ] Verify deployment: check the Dashboard for a successful deploy event\n\n| Field | Python | TypeScript |\n|-------|--------|------------|\n| **Language** | Python 3 | Node |\n| **Build Command** | `pip install -r requirements.txt` | `npm install && npm run build` |\n| **Start Command** | `python main.py` | `node dist/main.js` |\n\nIf the deploy fails, check the service logs in the Dashboard. For common deployment errors, see [Troubleshooting](references/troubleshooting.md). For general deploy debugging, use the **render-debug** skill.\n\n**Running tasks from other services:**\n\nAfter deployment, trigger tasks from your other Render services using the SDK client.\n\nPython (synchronous):\n```python\nfrom render_sdk import Render\n\nrender = Render()\nresult = render.workflows.run_task(\"my-workflow/hello\", [\"world\"])\nprint(result.results)\n```\n\nPython (asynchronous):\n```python\nfrom render_sdk import RenderAsync\n\nrender = RenderAsync()\nstarted = await render.workflows.start_task(\"my-workflow/hello\", [\"world\"])\nfinished = await started\nprint(finished.results)\n```\n\nTypeScript:\n```typescript\nimport { Render } from \"@renderinc/sdk\";\n\nconst render = new Render();\nconst started = await render.workflows.startTask(\"my-workflow/hello\", [\"world\"]);\nconst finished = await started.get();\nconsole.log(finished.results);\n```\n\nThe task identifier format is `{workflow-slug}/{task-name}`, visible on the task's page in the Dashboard.\n\nWorkflows do not have built-in scheduling. To trigger tasks on a schedule, use a Render cron job with the SDK client. For cron and cross-workflow examples, see [references/task-patterns.md](references/task-patterns.md).\n\n---\n\n## Constraints and Limits\n\n| Constraint | Limit | Notes |\n|------------|-------|-------|\n| Arguments and return values | Must be JSON-serializable | No class instances, functions, etc. |\n| Argument size | 4 MB max | Per task invocation |\n| Task definitions | 500 per workflow service | |\n| Concurrent runs | 20-100 base (plan-dependent) | Max 200-300 with purchased concurrency |\n| Timeout range | 30-86,400 seconds | Default: 2 hours (7,200s) |\n| Run duration | Up to 24 hours | |\n\n### Instance Types\n\n| Plan | Specs |\n|------|-------|\n| `starter` | 0.5 CPU / 512 MB |\n| `standard` (default) | 1 CPU / 2 GB |\n| `pro` | 2 CPU / 4 GB |\n| `pro_plus` | 4 CPU / 8 GB |\n| `pro_max` | 8 CPU / 16 GB |\n| `pro_ultra` | 16 CPU / 32 GB |\n\n`pro_plus`, `pro_max`, and `pro_ultra` require requesting access. Set via the `plan` task option.\n\nFor current pricing, see [Limits and Pricing for Render Workflows](https://render.com/docs/workflows-limits).\n\n---\n\n## References\n\n- **Quick-reference cheat sheet:** [references/quick-reference.md](references/quick-reference.md) (API surface, env vars, error types)\n- **Task patterns:** [references/task-patterns.md](references/task-patterns.md)\n- **Local development:** [references/local-development.md](references/local-development.md)\n- **Troubleshooting:** [references/troubleshooting.md](references/troubleshooting.md)\n- **Manual scaffolding (fallback):** [references/manual-scaffolding.md](references/manual-scaffolding.md)\n- **Official docs:** [render.com/docs/workflows](https://render.com/docs/workflows)\n- **Starter template (Python):** [render-examples/workflows-template-python](https://github.com/render-examples/workflows-template-python)\n- **Starter template (TypeScript):** [render-examples/workflows-template-ts](https://github.com/render-examples/workflows-template-ts)\n- **SDK repo:** [github.com/render-oss/sdk](https://github.com/render-oss/sdk)\n\n## Related Skills\n\n- **render-deploy:** Deploy web services, static sites, and databases\n- **render-debug:** Debug failed deployments and runtime errors\n- **render-monitor:** Monitor service health and performance\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}