← RenderCONTENT HISTORY

Update to Render

Snapshot Oct 24, 2026 · 12:46 UTC · version 1.0.2

Collection source: downloaded plugin package. These snapshots do not have a confirmed matching collection source. Differences in file lists alone do not establish changes to the package.

WHAT CHANGED

Payment or plan references changed

Skill instructions — Now says: only to fill missing information. Do not ask the user to repeat details they already supplied. If the source and required resources are clear, proceed...

Observed in published text. Live prices and checkout terms have not been verified by this change.

Save Render and check future changes in Following.

Up to 10 plugins free · no card required.

All fields and original values.

Skill instructions

Before

Sep 30, 2026 · 22:43 UTC

before deep analysis to reduce friction: - Databases, Redis/Key Value, or other datastores are required **2. Check MCP Tools Availability (Preferred for Single-Service)** MCP tools provide the best experience. Check if available by attem...

After

Oct 24, 2026 · 12:46 UTC

only to fill missing information. Do not ask the user to repeat details they already supplied. If the source and required resources are clear, proceed directly to method selection and deployment. - Databases, Key Value, or other datastor...

Supporting files

Before

Sep 30, 2026 · 22:43 UTC

[{"relative_path":"assets/docker.yaml","size_in_bytes":1398},{"relative_path":"assets/go-api.yaml","size_in_bytes":848},{"relative_path":"assets/nextjs-postgres.yaml","size_in_bytes":870},{"relative_path":"assets/node-express.yaml","size...

After

Oct 24, 2026 · 12:46 UTC

[{"relative_path":"assets/docker.yaml","size_in_bytes":1450},{"relative_path":"assets/go-api.yaml","size_in_bytes":857},{"relative_path":"assets/nextjs-postgres.yaml","size_in_bytes":1050},{"relative_path":"assets/node-express.yaml","siz...

Compare saved observations

Download comparison JSON

SKILL.md text changes

− removed · + added

--- before
+++ after
@@ -34,7 +34,7 @@
 
 ## Happy Path (New Users)
 
-Use this short prompt sequence before deep analysis to reduce friction:
+Use this short prompt sequence only to fill missing information. Do not ask the user to repeat details they already supplied. If the source and required resources are clear, proceed directly to method selection and deployment.
 1. Ask whether they want to deploy from a Git repo or a prebuilt Docker image.
 2. Ask whether Render should provision everything the app needs (based on what seems likely from the user's description) or only the app while they bring their own infra. If dependencies are unclear, ask a short follow-up to confirm whether they need a database, workers, cron, or other services.
 
@@ -73,7 +73,7 @@
 
 **Use Blueprint when ANY are true:**
 - Multiple services (web + worker, API + frontend, etc.)
-- Databases, Redis/Key Value, or other datastores are required
+- Databases, Key Value, or other datastores are required
 - Cron jobs, background workers, or private services
 - You want reproducible IaC or a render.yaml committed to the repo
 - Monorepo or multi-env setup that needs consistent configuration
@@ -94,70 +94,17 @@
 
 - If no remote exists, stop and ask the user to create/push a remote **or** switch to Docker image deploy.
 
-**2. Check MCP Tools Availability (Preferred for Single-Service)**
+**2. Establish Render Access**
 
-MCP tools provide the best experience. Check if available by attempting:
-```
-list_services()
-```
-
-If MCP tools are available, you can skip CLI installation for most operations.
-
-**3. Check Render CLI Installation (for Blueprint validation)**
-```bash
-render --version
-```
-If not installed, offer to install:
-- macOS: `brew install render`
-- Linux/macOS: `curl -fsSL https://raw.githubusercontent.com/render-oss/cli/main/bin/install.sh | sh`
-
-**4. MCP Setup (if MCP isn't configured)**
-
-If `list_services()` fails, set up the Render MCP server. For detailed per-tool walkthroughs, see **render-mcp**.
-
-**Plugin setup:** If the Render plugin is installed, complete Render OAuth when prompted, then reload your tool and retry `list_services()`.
-
-**Manual MCP setup:** Add the Render MCP server to your AI tool's MCP config:
-- **URL:** `https://mcp.render.com/mcp`
-- **Auth header:** `Authorization: Bearer <YOUR_API_KEY>`
-- **API key:** `https://dashboard.render.com/u/*/settings#api-keys`
-
-After configuring, restart your tool and retry `list_services()`. Then set your workspace with `list_workspaces()` / `get_selected_workspace()`.
-
-**5. Check Authentication (CLI fallback only)**
+Before reading or changing Render resources, follow [references/render-access.md](references/render-access.md) to choose an access path, authenticate, verify the intended workspace, and confirm the required capability. Blueprint validation still requires the Render CLI even when MCP is available.
 
-If MCP isn't available, use the CLI instead and verify you can access your account:
-```bash
-# Check if user is logged in (use -o json for non-interactive mode)
-render whoami -o json
-```
-
-If `render whoami` fails or returns empty data, the CLI is not authenticated. The CLI won't always prompt automatically, so explicitly prompt the user to authenticate:
-
-If neither is configured, ask user which method they prefer:
-- **API Key (CLI)**: `export RENDER_API_KEY="rnd_xxxxx"` (Get from https://dashboard.render.com/u/*/settings#api-keys)
-- **Login**: `render login` (Opens browser for OAuth)
-
-**6. Check Workspace Context**
-
-Verify the active workspace:
-```
-get_selected_workspace()
-```
-
-Or via CLI:
-```bash
-render workspace current -o json
-```
+Once prerequisites are met, proceed with deployment workflow.
 
-To list available workspaces:
-```
-list_workspaces()
-```
+Before triggering, monitoring, restarting, or rolling back a deploy, read [references/deployments.md](references/deployments.md) for the current lifecycle, health-check, and verification workflow.
 
-If user needs to switch workspaces, they must do so via Dashboard or CLI (`render workspace set`).
+When resources communicate over Render's private network, read [references/private-networking.md](references/private-networking.md) before choosing regions or wiring addresses and ports.
 
-Once prerequisites are met, proceed with deployment workflow.
+Before selecting or changing a service type, read [references/service-types.md](references/service-types.md).
 
 ---
 
@@ -173,13 +120,15 @@
 
 Create a `render.yaml` Blueprint file following the Blueprint specification.
 
-Complete specification: [references/blueprint-spec.md](references/blueprint-spec.md)
+Before authoring or changing the file, read [references/blueprints.md](references/blueprints.md) and follow its current specification-fetch, validation, repository-sync, and safety workflow.
+
+For variables, secrets, secret files, or environment groups, also read [references/environment-variables.md](references/environment-variables.md).
 
 **Key Points:**
-- Always use `plan: free` unless user specifies otherwise
-- Include ALL environment variables the app needs
-- Mark secrets with `sync: false` (user fills these in Dashboard)
-- Use appropriate service type: `web`, `worker`, `cron`, `static`, or `pserv`
+- Select a compute plan appropriate to the resource and workload. Consult [references/compute-plans.md](references/compute-plans.md) for current Plan IDs, defaults, availability, and pricing guidance instead of relying on examples in this skill.
+- Unless the user specifies a region, place new resources in the same region as their related existing services to preserve private network connectivity.
+- Include every environment variable the app requires and use the intended source of truth and secret mechanism from `references/environment-variables.md`
+- Use appropriate service type: `web`, `worker`, `cron`, `keyvalue`, or `pserv` (`type: web` with `runtime: static` for static sites)
 - Use appropriate runtime: [references/runtimes.md](references/runtimes.md)
 
 **Basic Structure:**
@@ -209,8 +158,12 @@
 - `web`: HTTP services, APIs, web applications (publicly accessible)
 - `worker`: Background job processors (not publicly accessible)
 - `cron`: Scheduled tasks that run on a cron schedule
-- `static`: Static sites (HTML/CSS/JS served via CDN)
-- `pserv`: Private services (internal only, within same account)
+- `pserv`: Private services (internal only, within same account and region)
+- `keyvalue`: Redis-compatible key-value store
+
+A service with `type: web` and `runtime: static` is a static site served via global CDN. Static sites do not have a `plan`.
+
+Postgres databases are defined under the `databases` key instead of the `services` key. They do not have a `type`.
 
 Service type details: [references/service-types.md](references/service-types.md)
 Runtime options: [references/runtimes.md](references/runtimes.md)
@@ -219,23 +172,24 @@
 ### Step 2.5: Immediate Next Steps (Always Provide)
 
 After creating `render.yaml`, always give the user a short, explicit checklist and run validation immediately when the CLI is available:
-1. **Authenticate (CLI)**: run `render whoami -o json` (if not logged in, run `render login` or set `RENDER_API_KEY`)
-2. **Validate (recommended)**: run `render blueprints validate`
+1. **Confirm access**: follow [references/render-access.md](references/render-access.md)
+2. **Validate**: run `render blueprints validate render.yaml`
    - If the CLI isn't installed, offer to install it and provide the command.
 3. **Commit + push**: `git add render.yaml && git commit -m "Add Render deployment configuration" && git push origin main`
 4. **Open Dashboard**: Use the Blueprint deeplink and complete Git OAuth if prompted
-5. **Fill secrets**: Set env vars marked `sync: false`
+5. **Complete secret configuration**: Supply any values required by the selected environment-variable workflow
 6. **Deploy**: Click "Apply" and monitor the deploy
 
 ### Step 3: Validate Configuration
 
-Validate the render.yaml file to catch errors before deployment. If the CLI is installed, run the commands directly; only prompt the user if the CLI is missing:
+Follow the validation workflow in [references/blueprints.md](references/blueprints.md). If the CLI is installed, run the commands directly; only prompt the user if the CLI is missing:
 
 ```bash
-render whoami -o json  # Ensure CLI is authenticated (won't always prompt)
-render blueprints validate
+render blueprints validate render.yaml
 ```
 
+If the Blueprint is not at `render.yaml` relative to the current directory, pass its actual file path instead.
+
 Fix any validation errors before proceeding. Common issues:
 - Missing required fields (`name`, `type`, `runtime`)
 - Invalid runtime values
@@ -300,7 +254,7 @@
 2. Click the deeplink to open Render Dashboard
 3. Complete Git provider OAuth if prompted
 4. Name the Blueprint (or use default from render.yaml)
-5. Fill in secret environment variables (marked with `sync: false`)
+5. Complete any required secret configuration without exposing values
 6. Review services and databases configuration
 7. Click "Apply" to deploy
 
@@ -308,26 +262,7 @@
 
 ### Step 7: Verify Deployment
 
-After the user deploys via Dashboard, verify everything is working.
-
-**Check deployment status via MCP:**
-```
-list_deploys(serviceId: "<service-id>", limit: 1)
-```
-Look for `status: "live"` to confirm successful deployment.
-
-**Check for runtime errors (wait 2-3 minutes after deploy):**
-```
-list_logs(resource: ["<service-id>"], level: ["error"], limit: 20)
-```
-
-**Check service health metrics:**
-```
-get_metrics(
-  resourceId: "<service-id>",
-  metricTypes: ["http_request_count", "cpu_usage", "memory_usage"]
-)
-```
+After the user deploys via Dashboard, follow [references/deployments.md](references/deployments.md) to monitor the specific deploy through a terminal status and verify the resulting workload.
 
 If errors are found, proceed to the **Post-deploy verification and basic triage** section below.
 
@@ -372,7 +307,7 @@
 If MCP returns an error about missing Git credentials or repo access, stop and guide the user to connect their Git provider in the Render Dashboard, then retry.
 
 ### Step 3: Configure Environment Variables
-Add required env vars via MCP after creation. See [references/direct-creation.md](references/direct-creation.md).
+Before changing service configuration, read [references/environment-variables.md](references/environment-variables.md). Add required env vars via MCP after creation using [references/direct-creation.md](references/direct-creation.md).
 
 Remind the user that secrets can be set in the Dashboard if they prefer not to pass them via MCP.
 
@@ -387,12 +322,7 @@
 
 # Post-deploy verification and basic triage (All Methods)
 
-Keep this short and repeatable. If any check fails, fix it before redeploying.
-
-1. Confirm the latest deploy is `live` and serving traffic
-2. Hit the health endpoint (or root) and verify a 200 response
-3. Scan recent error logs for a clear failure signature
-4. Verify required env vars and port binding (`0.0.0.0:$PORT`)
+Follow [references/deployments.md](references/deployments.md) for deploy-state interpretation and post-live verification. If any check fails, fix it before redeploying.
 
 Detailed checklist and commands: [references/post-deploy-checks.md](references/post-deploy-checks.md)
 
@@ -401,3 +331,16 @@
 
 Optional: If you need deeper diagnostics (metrics/DB checks/error catalog), suggest installing the
 `render-debug` skill. It is not required for the core deploy flow.
+
+<!-- shared:documentation-retrieval -->
+## Current documentation retrieval
+
+Whenever this skill directs you to consult current Render documentation:
+
+1. Retrieve the linked Markdown document directly with an available URL-fetching tool or HTTP client, such as `curl`. Do not substitute web-search summaries for the document.
+2. Confirm that retrieval succeeded and returned the expected document, then read its contents. Saving a file or printing its path is not sufficient.
+3. If the request fails or your tool cannot read the Markdown response, open and read the linked HTML version instead.
+4. If neither version can be retrieved, disclose that the current reference is unavailable and follow any topic-specific fallback in the skill. Use bundled guidance only for stable constraints, and do not guess at changeable platform details.
+
+When a task requires multiple references, apply this workflow to each one and distinguish the documents you verified from those that remain unavailable.
+<!-- /shared:documentation-retrieval -->
Full technical diff · 2 changed fields

changed /included_files

BEFORE
[
  {
    "relative_path": "assets/docker.yaml",
    "size_in_bytes": 1398
  },
  {
    "relative_path": "assets/go-api.yaml",
    "size_in_bytes": 848
  },
  {
    "relative_path": "assets/nextjs-postgres.yaml",
    "size_in_bytes": 870
  },
  {
    "relative_path": "assets/node-express.yaml",
    "size_in_bytes": 619
  },
  {
    "relative_path": "assets/python-django.yaml",
    "size_in_bytes": 2538
  },
  {
    "relative_path": "assets/static-site.yaml",
    "size_in_bytes": 1352
  },
  {
    "relative_path": "references/blueprint-spec.md",
    "size_in_bytes": 16013
  },
  {
    "relative_path": "references/codebase-analysis.md",
    "size_in_bytes": 2300
  },
  {
    "relative_path": "references/configuration-guide.md",
    "size_in_bytes": 11675
  },
  {
    "relative_path": "references/deployment-details.md",
    "size_in_bytes": 5345
  },
  {
    "relative_path": "references/direct-creation.md",
    "size_in_bytes": 2786
  },
  {
    "relative_path": "references/error-patterns.md",
    "size_in_bytes": 833
  },
  {
    "relative_path": "references/post-deploy-checks.md",
    "size_in_bytes": 1025
  },
  {
    "relative_path": "references/runtimes.md",
    "size_in_bytes": 9849
  },
  {
    "relative_path": "references/service-types.md",
    "size_in_bytes": 12063
  },
  {
    "relative_path": "references/troubleshooting-basics.md",
    "size_in_bytes": 1361
  }
]
AFTER
[
  {
    "relative_path": "assets/docker.yaml",
    "size_in_bytes": 1450
  },
  {
    "relative_path": "assets/go-api.yaml",
    "size_in_bytes": 857
  },
  {
    "relative_path": "assets/nextjs-postgres.yaml",
    "size_in_bytes": 1050
  },
  {
    "relative_path": "assets/node-express.yaml",
    "size_in_bytes": 628
  },
  {
    "relative_path": "assets/python-django.yaml",
    "size_in_bytes": 2889
  },
  {
    "relative_path": "assets/static-site.yaml",
    "size_in_bytes": 1346
  },
  {
    "relative_path": "references/blueprints.md",
    "size_in_bytes": 2850
  },
  {
    "relative_path": "references/codebase-analysis.md",
    "size_in_bytes": 2453
  },
  {
    "relative_path": "references/compute-plans.md",
    "size_in_bytes": 2800
  },
  {
    "relative_path": "references/configuration-guide.md",
    "size_in_bytes": 11250
  },
  {
    "relative_path": "references/deployment-details.md",
    "size_in_bytes": 4280
  },
  {
    "relative_path": "references/deployments.md",
    "size_in_bytes": 8095
  },
  {
    "relative_path": "references/direct-creation.md",
    "size_in_bytes": 3131
  },
  {
    "relative_path": "references/environment-variables.md",
    "size_in_bytes": 4653
  },
  {
    "relative_path": "references/error-patterns.md",
    "size_in_bytes": 833
  },
  {
    "relative_path": "references/post-deploy-checks.md",
    "size_in_bytes": 1308
  },
  {
    "relative_path": "references/private-networking.md",
    "size_in_bytes": 4390
  },
  {
    "relative_path": "references/render-access.md",
    "size_in_bytes": 4830
  },
  {
    "relative_path": "references/runtimes.md",
    "size_in_bytes": 10756
  },
  {
    "relative_path": "references/service-types.md",
    "size_in_bytes": 4703
  },
  {
    "relative_path": "references/troubleshooting-basics.md",
    "size_in_bytes": 1361
  }
]

changed /skill_md_contents

BEFORE
"---\nname: render-deploy\ndescription: Deploy applications to Render by analyzing codebases, generating render.yaml Blueprints, and providing Dashboard deeplinks. Use when the user wants to deploy, host, publish, or set up their application on Render's cloud platform.\nlicense: MIT\ncompatibility: Requires a Git repository on GitHub, GitLab, or Bitbucket for Blueprint/MCP flows. Blueprint can reference a prebuilt image but render.yaml must live in the repo. Render CLI recommended for Blueprint validation; MCP or CLI required for operations.\nmetadata:\n  author: Render\n  version: \"1.1.0\"\n  category: deployment\n---\n\n# Deploy to Render\n\nRender supports **Git-backed** services and **prebuilt Docker image** services.\n\nThis skill covers **Git-backed** flows:\n1. **Blueprint Method** - Generate render.yaml for Infrastructure-as-Code deployments\n2. **Direct Creation** - Create services instantly via MCP tools\n\nBlueprints can also run a **prebuilt Docker image** by using `runtime: image`, but the `render.yaml` still must live in a Git repo.\n\nIf there is no Git remote, stop and ask the user to either:\n- Create/push a Git remote (can be minimal if only the Blueprint is needed), or\n- Use the Render Dashboard/API to deploy a prebuilt Docker image (MCP cannot create image-backed services).\n\n## When to Use This Skill\n\nActivate this skill when users want to:\n- Deploy an application to Render\n- Create a render.yaml Blueprint file\n- Set up Render deployment for their project\n- Host or publish their application on Render's cloud platform\n- Create databases, cron jobs, or other Render resources\n\n## Happy Path (New Users)\n\nUse this short prompt sequence before deep analysis to reduce friction:\n1. Ask whether they want to deploy from a Git repo or a prebuilt Docker image.\n2. Ask whether Render should provision everything the app needs (based on what seems likely from the user's description) or only the app while they bring their own infra. If dependencies are unclear, ask a short follow-up to confirm whether they need a database, workers, cron, or other services.\n\nThen proceed with the appropriate method below.\n\n## Choose Your Source Path\n\n**Git Repo Path:** Required for both Blueprint and Direct Creation. The repo must be pushed to GitHub, GitLab, or Bitbucket.\n\n**Prebuilt Docker Image Path:** Supported by Render via image-backed services. This is **not** supported by MCP; use the Dashboard/API. Ask for:\n- Image URL (registry + tag)\n- Registry auth (if private)\n- Service type (web/worker) and port\n\nIf the user chooses a Docker image, guide them to the Render Dashboard image deploy flow or ask them to add a Git remote (so you can use a Blueprint with `runtime: image`).\n\n## Choose Your Deployment Method (Git Repo)\n\nBoth methods require a Git repository pushed to GitHub, GitLab, or Bitbucket. (If using `runtime: image`, the repo can be minimal and only contain `render.yaml`.)\n\n| Method | Best For | Pros |\n|--------|----------|------|\n| **Blueprint** | Multi-service apps, IaC workflows | Version controlled, reproducible, supports complex setups |\n| **Direct Creation** | Single services, quick deployments | Instant creation, no render.yaml file needed |\n\n### Method Selection Heuristic\n\nUse this decision rule by default unless the user requests a specific method. Analyze the codebase first; only ask if deployment intent is unclear (e.g., DB, workers, cron).\n\n**Use Direct Creation (MCP) when ALL are true:**\n- Single service (one web app or one static site)\n- No separate worker/cron services\n- No attached databases or Key Value\n- Simple env vars only (no shared env groups)\nIf this path fits and MCP isn't configured yet, stop and guide MCP setup before proceeding.\n\n**Use Blueprint when ANY are true:**\n- Multiple services (web + worker, API + frontend, etc.)\n- Databases, Redis/Key Value, or other datastores are required\n- Cron jobs, background workers, or private services\n- You want reproducible IaC or a render.yaml committed to the repo\n- Monorepo or multi-env setup that needs consistent configuration\n\nIf unsure, ask a quick clarifying question, but default to Blueprint for safety. For a single service, strongly prefer Direct Creation via MCP and guide MCP setup if needed.\n\n## Prerequisites Check\n\nWhen starting a deployment, verify these requirements in order:\n\n**1. Confirm Source Path (Git vs Docker)**\n\nIf using Git-based methods (Blueprint or Direct Creation), the repo must be pushed to GitHub/GitLab/Bitbucket. Blueprints that reference a prebuilt image still require a Git repo with `render.yaml`.\n\n```bash\ngit remote -v\n```\n\n- If no remote exists, stop and ask the user to create/push a remote **or** switch to Docker image deploy.\n\n**2. Check MCP Tools Availability (Preferred for Single-Service)**\n\nMCP tools provide the best experience. Check if available by attempting:\n```\nlist_services()\n```\n\nIf MCP tools are available, you can skip CLI installation for most operations.\n\n**3. Check Render CLI Installation (for Blueprint validation)**\n```bash\nrender --version\n```\nIf not installed, offer to install:\n- macOS: `brew install render`\n- Linux/macOS: `curl -fsSL https://raw.githubusercontent.com/render-oss/cli/main/bin/install.sh | sh`\n\n**4. MCP Setup (if MCP isn't configured)**\n\nIf `list_services()` fails, set up the Render MCP server. For detailed per-tool walkthroughs, see **render-mcp**.\n\n**Plugin setup:** If the Render plugin is installed, complete Render OAuth when prompted, then reload your tool and retry `list_services()`.\n\n**Manual MCP setup:** Add the Render MCP server to your AI tool's MCP config:\n- **URL:** `https://mcp.render.com/mcp`\n- **Auth header:** `Authorization: Bearer <YOUR_API_KEY>`\n- **API key:** `https://dashboard.render.com/u/*/settings#api-keys`\n\nAfter configuring, restart your tool and retry `list_services()`. Then set your workspace with `list_workspaces()` / `get_selected_workspace()`.\n\n**5. Check Authentication (CLI fallback only)**\n\nIf MCP isn't available, use the CLI instead and verify you can access your account:\n```bash\n# Check if user is logged in (use -o json for non-interactive mode)\nrender whoami -o json\n```\n\nIf `render whoami` fails or returns empty data, the CLI is not authenticated. The CLI won't always prompt automatically, so explicitly prompt the user to authenticate:\n\nIf neither is configured, ask user which method they prefer:\n- **API Key (CLI)**: `export RENDER_API_KEY=\"rnd_xxxxx\"` (Get from https://dashboard.render.com/u/*/settings#api-keys)\n- **Login**: `render login` (Opens browser for OAuth)\n\n**6. Check Workspace Context**\n\nVerify the active workspace:\n```\nget_selected_workspace()\n```\n\nOr via CLI:\n```bash\nrender workspace current -o json\n```\n\nTo list available workspaces:\n```\nlist_workspaces()\n```\n\nIf user needs to switch workspaces, they must do so via Dashboard or CLI (`render workspace set`).\n\nOnce prerequisites are met, proceed with deployment workflow.\n\n---\n\n# Method 1: Blueprint Deployment (Recommended for Complex Apps)\n\n## Blueprint Workflow\n\n### Step 1: Analyze Codebase\n\nAnalyze the codebase to determine framework/runtime, build and start commands, required env vars, datastores, and port binding. Use the detailed checklists in [references/codebase-analysis.md](references/codebase-analysis.md).\n\n### Step 2: Generate render.yaml\n\nCreate a `render.yaml` Blueprint file following the Blueprint specification.\n\nComplete specification: [references/blueprint-spec.md](references/blueprint-spec.md)\n\n**Key Points:**\n- Always use `plan: free` unless user specifies otherwise\n- Include ALL environment variables the app needs\n- Mark secrets with `sync: false` (user fills these in Dashboard)\n- Use appropriate service type: `web`, `worker`, `cron`, `static`, or `pserv`\n- Use appropriate runtime: [references/runtimes.md](references/runtimes.md)\n\n**Basic Structure:**\n```yaml\nservices:\n  - type: web\n    name: my-app\n    runtime: node\n    plan: free\n    buildCommand: npm ci\n    startCommand: npm start\n    envVars:\n      - key: DATABASE_URL\n        fromDatabase:\n          name: postgres\n          property: connectionString\n      - key: JWT_SECRET\n        sync: false  # User fills in Dashboard\n\ndatabases:\n  - name: postgres\n    databaseName: myapp_db\n    plan: free\n```\n\n**Service Types:**\n- `web`: HTTP services, APIs, web applications (publicly accessible)\n- `worker`: Background job processors (not publicly accessible)\n- `cron`: Scheduled tasks that run on a cron schedule\n- `static`: Static sites (HTML/CSS/JS served via CDN)\n- `pserv`: Private services (internal only, within same account)\n\nService type details: [references/service-types.md](references/service-types.md)\nRuntime options: [references/runtimes.md](references/runtimes.md)\nTemplate examples: [assets/](assets/)\n\n### Step 2.5: Immediate Next Steps (Always Provide)\n\nAfter creating `render.yaml`, always give the user a short, explicit checklist and run validation immediately when the CLI is available:\n1. **Authenticate (CLI)**: run `render whoami -o json` (if not logged in, run `render login` or set `RENDER_API_KEY`)\n2. **Validate (recommended)**: run `render blueprints validate`\n   - If the CLI isn't installed, offer to install it and provide the command.\n3. **Commit + push**: `git add render.yaml && git commit -m \"Add Render deployment configuration\" && git push origin main`\n4. **Open Dashboard**: Use the Blueprint deeplink and complete Git OAuth if prompted\n5. **Fill secrets**: Set env vars marked `sync: false`\n6. **Deploy**: Click \"Apply\" and monitor the deploy\n\n### Step 3: Validate Configuration\n\nValidate the render.yaml file to catch errors before deployment. If the CLI is installed, run the commands directly; only prompt the user if the CLI is missing:\n\n```bash\nrender whoami -o json  # Ensure CLI is authenticated (won't always prompt)\nrender blueprints validate\n```\n\nFix any validation errors before proceeding. Common issues:\n- Missing required fields (`name`, `type`, `runtime`)\n- Invalid runtime values\n- Incorrect YAML syntax\n- Invalid environment variable references\n\nConfiguration guide: [references/configuration-guide.md](references/configuration-guide.md)\n\n### Step 4: Commit and Push\n\n**IMPORTANT:** You must merge the `render.yaml` file into your repository before deploying.\n\nEnsure the `render.yaml` file is committed and pushed to your Git remote:\n\n```bash\ngit add render.yaml\ngit commit -m \"Add Render deployment configuration\"\ngit push origin main\n```\n\nIf there is no Git remote yet, stop here and guide the user to create a GitHub/GitLab/Bitbucket repo, add it as `origin`, and push before continuing.\n\n**Why this matters:** The Dashboard deeplink will read the render.yaml from your repository. If the file isn't merged and pushed, Render won't find the configuration and deployment will fail.\n\nVerify the file is in your remote repository before proceeding to the next step.\n\n### Step 5: Generate Deeplink\n\nGet the Git repository URL:\n\n```bash\ngit remote get-url origin\n```\n\nThis will return a URL from your Git provider. **If the URL is SSH format, convert it to HTTPS:**\n\n| SSH Format | HTTPS Format |\n|------------|--------------|\n| `git@github.com:user/repo.git` | `https://github.com/user/repo` |\n| `git@gitlab.com:user/repo.git` | `https://gitlab.com/user/repo` |\n| `git@bitbucket.org:user/repo.git` | `https://bitbucket.org/user/repo` |\n\n**Conversion pattern:** Replace `git@<host>:` with `https://<host>/` and remove `.git` suffix.\n\nFormat the Dashboard deeplink using the HTTPS repository URL:\n```\nhttps://dashboard.render.com/blueprint/new?repo=<REPOSITORY_URL>\n```\n\nExample:\n```\nhttps://dashboard.render.com/blueprint/new?repo=https://github.com/username/repo-name\n```\n\n### Step 6: Guide User\n\n**CRITICAL:** Ensure the user has merged and pushed the render.yaml file to their repository before clicking the deeplink. If the file isn't in the repository, Render cannot read the Blueprint configuration and deployment will fail.\n\nProvide the deeplink to the user with these instructions:\n\n1. **Verify render.yaml is merged** - Confirm the file exists in your repository on GitHub/GitLab/Bitbucket\n2. Click the deeplink to open Render Dashboard\n3. Complete Git provider OAuth if prompted\n4. Name the Blueprint (or use default from render.yaml)\n5. Fill in secret environment variables (marked with `sync: false`)\n6. Review services and databases configuration\n7. Click \"Apply\" to deploy\n\nThe deployment will begin automatically. Users can monitor progress in the Render Dashboard.\n\n### Step 7: Verify Deployment\n\nAfter the user deploys via Dashboard, verify everything is working.\n\n**Check deployment status via MCP:**\n```\nlist_deploys(serviceId: \"<service-id>\", limit: 1)\n```\nLook for `status: \"live\"` to confirm successful deployment.\n\n**Check for runtime errors (wait 2-3 minutes after deploy):**\n```\nlist_logs(resource: [\"<service-id>\"], level: [\"error\"], limit: 20)\n```\n\n**Check service health metrics:**\n```\nget_metrics(\n  resourceId: \"<service-id>\",\n  metricTypes: [\"http_request_count\", \"cpu_usage\", \"memory_usage\"]\n)\n```\n\nIf errors are found, proceed to the **Post-deploy verification and basic triage** section below.\n\n---\n\n# Method 2: Direct Service Creation (Quick Single-Service Deployments)\n\nFor simple deployments without Infrastructure-as-Code, create services directly via MCP tools.\n\n## When to Use Direct Creation\n\n- Single web service or static site\n- Quick prototypes or demos\n- When you don't need a render.yaml file in your repo\n- Adding databases or cron jobs to existing projects\n\n## Prerequisites for Direct Creation\n\n**Repository must be pushed to a Git provider.** Render clones your repository to build and deploy services.\n\n```bash\ngit remote -v  # Verify remote exists\ngit push origin main  # Ensure code is pushed\n```\n\nSupported providers: GitHub, GitLab, Bitbucket\n\nIf no remote exists, stop and ask the user to create/push a remote or switch to Docker image deploy.\n\n**Note:** MCP does not support creating image-backed services. Use the Dashboard/API for prebuilt Docker image deploys.\n\n## Direct Creation Workflow\n\nUse the concise steps below, and refer to [references/direct-creation.md](references/direct-creation.md) for full MCP command examples and follow-on configuration.\n\n### Step 1: Analyze Codebase\nUse [references/codebase-analysis.md](references/codebase-analysis.md) to determine runtime, build/start commands, env vars, and datastores.\n\n### Step 2: Create Resources via MCP\nCreate the service (web or static) and any required databases or key-value stores. See [references/direct-creation.md](references/direct-creation.md).\n\nIf MCP returns an error about missing Git credentials or repo access, stop and guide the user to connect their Git provider in the Render Dashboard, then retry.\n\n### Step 3: Configure Environment Variables\nAdd required env vars via MCP after creation. See [references/direct-creation.md](references/direct-creation.md).\n\nRemind the user that secrets can be set in the Dashboard if they prefer not to pass them via MCP.\n\n### Step 4: Verify Deployment\nCheck deploy status, logs, and metrics. See [references/direct-creation.md](references/direct-creation.md).\n\n---\n\nFor service discovery, configuration details, quick commands, and common issues, see [references/deployment-details.md](references/deployment-details.md).\n\n---\n\n# Post-deploy verification and basic triage (All Methods)\n\nKeep this short and repeatable. If any check fails, fix it before redeploying.\n\n1. Confirm the latest deploy is `live` and serving traffic\n2. Hit the health endpoint (or root) and verify a 200 response\n3. Scan recent error logs for a clear failure signature\n4. Verify required env vars and port binding (`0.0.0.0:$PORT`)\n\nDetailed checklist and commands: [references/post-deploy-checks.md](references/post-deploy-checks.md)\n\nIf the service fails to start or health checks time out, use the basic triage guide:\n[references/troubleshooting-basics.md](references/troubleshooting-basics.md)\n\nOptional: If you need deeper diagnostics (metrics/DB checks/error catalog), suggest installing the\n`render-debug` skill. It is not required for the core deploy flow.\n"
AFTER
"---\nname: render-deploy\ndescription: Deploy applications to Render by analyzing codebases, generating render.yaml Blueprints, and providing Dashboard deeplinks. Use when the user wants to deploy, host, publish, or set up their application on Render's cloud platform.\nlicense: MIT\ncompatibility: Requires a Git repository on GitHub, GitLab, or Bitbucket for Blueprint/MCP flows. Blueprint can reference a prebuilt image but render.yaml must live in the repo. Render CLI recommended for Blueprint validation; MCP or CLI required for operations.\nmetadata:\n  author: Render\n  version: \"1.1.0\"\n  category: deployment\n---\n\n# Deploy to Render\n\nRender supports **Git-backed** services and **prebuilt Docker image** services.\n\nThis skill covers **Git-backed** flows:\n1. **Blueprint Method** - Generate render.yaml for Infrastructure-as-Code deployments\n2. **Direct Creation** - Create services instantly via MCP tools\n\nBlueprints can also run a **prebuilt Docker image** by using `runtime: image`, but the `render.yaml` still must live in a Git repo.\n\nIf there is no Git remote, stop and ask the user to either:\n- Create/push a Git remote (can be minimal if only the Blueprint is needed), or\n- Use the Render Dashboard/API to deploy a prebuilt Docker image (MCP cannot create image-backed services).\n\n## When to Use This Skill\n\nActivate this skill when users want to:\n- Deploy an application to Render\n- Create a render.yaml Blueprint file\n- Set up Render deployment for their project\n- Host or publish their application on Render's cloud platform\n- Create databases, cron jobs, or other Render resources\n\n## Happy Path (New Users)\n\nUse this short prompt sequence only to fill missing information. Do not ask the user to repeat details they already supplied. If the source and required resources are clear, proceed directly to method selection and deployment.\n1. Ask whether they want to deploy from a Git repo or a prebuilt Docker image.\n2. Ask whether Render should provision everything the app needs (based on what seems likely from the user's description) or only the app while they bring their own infra. If dependencies are unclear, ask a short follow-up to confirm whether they need a database, workers, cron, or other services.\n\nThen proceed with the appropriate method below.\n\n## Choose Your Source Path\n\n**Git Repo Path:** Required for both Blueprint and Direct Creation. The repo must be pushed to GitHub, GitLab, or Bitbucket.\n\n**Prebuilt Docker Image Path:** Supported by Render via image-backed services. This is **not** supported by MCP; use the Dashboard/API. Ask for:\n- Image URL (registry + tag)\n- Registry auth (if private)\n- Service type (web/worker) and port\n\nIf the user chooses a Docker image, guide them to the Render Dashboard image deploy flow or ask them to add a Git remote (so you can use a Blueprint with `runtime: image`).\n\n## Choose Your Deployment Method (Git Repo)\n\nBoth methods require a Git repository pushed to GitHub, GitLab, or Bitbucket. (If using `runtime: image`, the repo can be minimal and only contain `render.yaml`.)\n\n| Method | Best For | Pros |\n|--------|----------|------|\n| **Blueprint** | Multi-service apps, IaC workflows | Version controlled, reproducible, supports complex setups |\n| **Direct Creation** | Single services, quick deployments | Instant creation, no render.yaml file needed |\n\n### Method Selection Heuristic\n\nUse this decision rule by default unless the user requests a specific method. Analyze the codebase first; only ask if deployment intent is unclear (e.g., DB, workers, cron).\n\n**Use Direct Creation (MCP) when ALL are true:**\n- Single service (one web app or one static site)\n- No separate worker/cron services\n- No attached databases or Key Value\n- Simple env vars only (no shared env groups)\nIf this path fits and MCP isn't configured yet, stop and guide MCP setup before proceeding.\n\n**Use Blueprint when ANY are true:**\n- Multiple services (web + worker, API + frontend, etc.)\n- Databases, Key Value, or other datastores are required\n- Cron jobs, background workers, or private services\n- You want reproducible IaC or a render.yaml committed to the repo\n- Monorepo or multi-env setup that needs consistent configuration\n\nIf unsure, ask a quick clarifying question, but default to Blueprint for safety. For a single service, strongly prefer Direct Creation via MCP and guide MCP setup if needed.\n\n## Prerequisites Check\n\nWhen starting a deployment, verify these requirements in order:\n\n**1. Confirm Source Path (Git vs Docker)**\n\nIf using Git-based methods (Blueprint or Direct Creation), the repo must be pushed to GitHub/GitLab/Bitbucket. Blueprints that reference a prebuilt image still require a Git repo with `render.yaml`.\n\n```bash\ngit remote -v\n```\n\n- If no remote exists, stop and ask the user to create/push a remote **or** switch to Docker image deploy.\n\n**2. Establish Render Access**\n\nBefore reading or changing Render resources, follow [references/render-access.md](references/render-access.md) to choose an access path, authenticate, verify the intended workspace, and confirm the required capability. Blueprint validation still requires the Render CLI even when MCP is available.\n\nOnce prerequisites are met, proceed with deployment workflow.\n\nBefore triggering, monitoring, restarting, or rolling back a deploy, read [references/deployments.md](references/deployments.md) for the current lifecycle, health-check, and verification workflow.\n\nWhen resources communicate over Render's private network, read [references/private-networking.md](references/private-networking.md) before choosing regions or wiring addresses and ports.\n\nBefore selecting or changing a service type, read [references/service-types.md](references/service-types.md).\n\n---\n\n# Method 1: Blueprint Deployment (Recommended for Complex Apps)\n\n## Blueprint Workflow\n\n### Step 1: Analyze Codebase\n\nAnalyze the codebase to determine framework/runtime, build and start commands, required env vars, datastores, and port binding. Use the detailed checklists in [references/codebase-analysis.md](references/codebase-analysis.md).\n\n### Step 2: Generate render.yaml\n\nCreate a `render.yaml` Blueprint file following the Blueprint specification.\n\nBefore authoring or changing the file, read [references/blueprints.md](references/blueprints.md) and follow its current specification-fetch, validation, repository-sync, and safety workflow.\n\nFor variables, secrets, secret files, or environment groups, also read [references/environment-variables.md](references/environment-variables.md).\n\n**Key Points:**\n- Select a compute plan appropriate to the resource and workload. Consult [references/compute-plans.md](references/compute-plans.md) for current Plan IDs, defaults, availability, and pricing guidance instead of relying on examples in this skill.\n- Unless the user specifies a region, place new resources in the same region as their related existing services to preserve private network connectivity.\n- Include every environment variable the app requires and use the intended source of truth and secret mechanism from `references/environment-variables.md`\n- Use appropriate service type: `web`, `worker`, `cron`, `keyvalue`, or `pserv` (`type: web` with `runtime: static` for static sites)\n- Use appropriate runtime: [references/runtimes.md](references/runtimes.md)\n\n**Basic Structure:**\n```yaml\nservices:\n  - type: web\n    name: my-app\n    runtime: node\n    plan: free\n    buildCommand: npm ci\n    startCommand: npm start\n    envVars:\n      - key: DATABASE_URL\n        fromDatabase:\n          name: postgres\n          property: connectionString\n      - key: JWT_SECRET\n        sync: false  # User fills in Dashboard\n\ndatabases:\n  - name: postgres\n    databaseName: myapp_db\n    plan: free\n```\n\n**Service Types:**\n- `web`: HTTP services, APIs, web applications (publicly accessible)\n- `worker`: Background job processors (not publicly accessible)\n- `cron`: Scheduled tasks that run on a cron schedule\n- `pserv`: Private services (internal only, within same account and region)\n- `keyvalue`: Redis-compatible key-value store\n\nA service with `type: web` and `runtime: static` is a static site served via global CDN. Static sites do not have a `plan`.\n\nPostgres databases are defined under the `databases` key instead of the `services` key. They do not have a `type`.\n\nService type details: [references/service-types.md](references/service-types.md)\nRuntime options: [references/runtimes.md](references/runtimes.md)\nTemplate examples: [assets/](assets/)\n\n### Step 2.5: Immediate Next Steps (Always Provide)\n\nAfter creating `render.yaml`, always give the user a short, explicit checklist and run validation immediately when the CLI is available:\n1. **Confirm access**: follow [references/render-access.md](references/render-access.md)\n2. **Validate**: run `render blueprints validate render.yaml`\n   - If the CLI isn't installed, offer to install it and provide the command.\n3. **Commit + push**: `git add render.yaml && git commit -m \"Add Render deployment configuration\" && git push origin main`\n4. **Open Dashboard**: Use the Blueprint deeplink and complete Git OAuth if prompted\n5. **Complete secret configuration**: Supply any values required by the selected environment-variable workflow\n6. **Deploy**: Click \"Apply\" and monitor the deploy\n\n### Step 3: Validate Configuration\n\nFollow the validation workflow in [references/blueprints.md](references/blueprints.md). If the CLI is installed, run the commands directly; only prompt the user if the CLI is missing:\n\n```bash\nrender blueprints validate render.yaml\n```\n\nIf the Blueprint is not at `render.yaml` relative to the current directory, pass its actual file path instead.\n\nFix any validation errors before proceeding. Common issues:\n- Missing required fields (`name`, `type`, `runtime`)\n- Invalid runtime values\n- Incorrect YAML syntax\n- Invalid environment variable references\n\nConfiguration guide: [references/configuration-guide.md](references/configuration-guide.md)\n\n### Step 4: Commit and Push\n\n**IMPORTANT:** You must merge the `render.yaml` file into your repository before deploying.\n\nEnsure the `render.yaml` file is committed and pushed to your Git remote:\n\n```bash\ngit add render.yaml\ngit commit -m \"Add Render deployment configuration\"\ngit push origin main\n```\n\nIf there is no Git remote yet, stop here and guide the user to create a GitHub/GitLab/Bitbucket repo, add it as `origin`, and push before continuing.\n\n**Why this matters:** The Dashboard deeplink will read the render.yaml from your repository. If the file isn't merged and pushed, Render won't find the configuration and deployment will fail.\n\nVerify the file is in your remote repository before proceeding to the next step.\n\n### Step 5: Generate Deeplink\n\nGet the Git repository URL:\n\n```bash\ngit remote get-url origin\n```\n\nThis will return a URL from your Git provider. **If the URL is SSH format, convert it to HTTPS:**\n\n| SSH Format | HTTPS Format |\n|------------|--------------|\n| `git@github.com:user/repo.git` | `https://github.com/user/repo` |\n| `git@gitlab.com:user/repo.git` | `https://gitlab.com/user/repo` |\n| `git@bitbucket.org:user/repo.git` | `https://bitbucket.org/user/repo` |\n\n**Conversion pattern:** Replace `git@<host>:` with `https://<host>/` and remove `.git` suffix.\n\nFormat the Dashboard deeplink using the HTTPS repository URL:\n```\nhttps://dashboard.render.com/blueprint/new?repo=<REPOSITORY_URL>\n```\n\nExample:\n```\nhttps://dashboard.render.com/blueprint/new?repo=https://github.com/username/repo-name\n```\n\n### Step 6: Guide User\n\n**CRITICAL:** Ensure the user has merged and pushed the render.yaml file to their repository before clicking the deeplink. If the file isn't in the repository, Render cannot read the Blueprint configuration and deployment will fail.\n\nProvide the deeplink to the user with these instructions:\n\n1. **Verify render.yaml is merged** - Confirm the file exists in your repository on GitHub/GitLab/Bitbucket\n2. Click the deeplink to open Render Dashboard\n3. Complete Git provider OAuth if prompted\n4. Name the Blueprint (or use default from render.yaml)\n5. Complete any required secret configuration without exposing values\n6. Review services and databases configuration\n7. Click \"Apply\" to deploy\n\nThe deployment will begin automatically. Users can monitor progress in the Render Dashboard.\n\n### Step 7: Verify Deployment\n\nAfter the user deploys via Dashboard, follow [references/deployments.md](references/deployments.md) to monitor the specific deploy through a terminal status and verify the resulting workload.\n\nIf errors are found, proceed to the **Post-deploy verification and basic triage** section below.\n\n---\n\n# Method 2: Direct Service Creation (Quick Single-Service Deployments)\n\nFor simple deployments without Infrastructure-as-Code, create services directly via MCP tools.\n\n## When to Use Direct Creation\n\n- Single web service or static site\n- Quick prototypes or demos\n- When you don't need a render.yaml file in your repo\n- Adding databases or cron jobs to existing projects\n\n## Prerequisites for Direct Creation\n\n**Repository must be pushed to a Git provider.** Render clones your repository to build and deploy services.\n\n```bash\ngit remote -v  # Verify remote exists\ngit push origin main  # Ensure code is pushed\n```\n\nSupported providers: GitHub, GitLab, Bitbucket\n\nIf no remote exists, stop and ask the user to create/push a remote or switch to Docker image deploy.\n\n**Note:** MCP does not support creating image-backed services. Use the Dashboard/API for prebuilt Docker image deploys.\n\n## Direct Creation Workflow\n\nUse the concise steps below, and refer to [references/direct-creation.md](references/direct-creation.md) for full MCP command examples and follow-on configuration.\n\n### Step 1: Analyze Codebase\nUse [references/codebase-analysis.md](references/codebase-analysis.md) to determine runtime, build/start commands, env vars, and datastores.\n\n### Step 2: Create Resources via MCP\nCreate the service (web or static) and any required databases or key-value stores. See [references/direct-creation.md](references/direct-creation.md).\n\nIf MCP returns an error about missing Git credentials or repo access, stop and guide the user to connect their Git provider in the Render Dashboard, then retry.\n\n### Step 3: Configure Environment Variables\nBefore changing service configuration, read [references/environment-variables.md](references/environment-variables.md). Add required env vars via MCP after creation using [references/direct-creation.md](references/direct-creation.md).\n\nRemind the user that secrets can be set in the Dashboard if they prefer not to pass them via MCP.\n\n### Step 4: Verify Deployment\nCheck deploy status, logs, and metrics. See [references/direct-creation.md](references/direct-creation.md).\n\n---\n\nFor service discovery, configuration details, quick commands, and common issues, see [references/deployment-details.md](references/deployment-details.md).\n\n---\n\n# Post-deploy verification and basic triage (All Methods)\n\nFollow [references/deployments.md](references/deployments.md) for deploy-state interpretation and post-live verification. If any check fails, fix it before redeploying.\n\nDetailed checklist and commands: [references/post-deploy-checks.md](references/post-deploy-checks.md)\n\nIf the service fails to start or health checks time out, use the basic triage guide:\n[references/troubleshooting-basics.md](references/troubleshooting-basics.md)\n\nOptional: If you need deeper diagnostics (metrics/DB checks/error catalog), suggest installing the\n`render-debug` skill. It is not required for the core deploy flow.\n\n<!-- shared:documentation-retrieval -->\n## Current documentation retrieval\n\nWhenever this skill directs you to consult current Render documentation:\n\n1. Retrieve the linked Markdown document directly with an available URL-fetching tool or HTTP client, such as `curl`. Do not substitute web-search summaries for the document.\n2. Confirm that retrieval succeeded and returned the expected document, then read its contents. Saving a file or printing its path is not sufficient.\n3. If the request fails or your tool cannot read the Markdown response, open and read the linked HTML version instead.\n4. If neither version can be retrieved, disclose that the current reference is unavailable and follow any topic-specific fallback in the skill. Use bundled guidance only for stable constraints, and do not guess at changeable platform details.\n\nWhen a task requires multiple references, apply this workflow to each one and distinguish the documents you verified from those that remain unavailable.\n<!-- /shared:documentation-retrieval -->\n"
Full snapshot data
{
  "description": "Deploy applications to Render by analyzing codebases, generating render.yaml Blueprints, and providing Dashboard deeplinks. Use when the user wants to deploy, host, publish, or set up their application on Render's cloud platform.",
  "included_files": [
    {
      "relative_path": "assets/docker.yaml",
      "size_in_bytes": 1450
    },
    {
      "relative_path": "assets/go-api.yaml",
      "size_in_bytes": 857
    },
    {
      "relative_path": "assets/nextjs-postgres.yaml",
      "size_in_bytes": 1050
    },
    {
      "relative_path": "assets/node-express.yaml",
      "size_in_bytes": 628
    },
    {
      "relative_path": "assets/python-django.yaml",
      "size_in_bytes": 2889
    },
    {
      "relative_path": "assets/static-site.yaml",
      "size_in_bytes": 1346
    },
    {
      "relative_path": "references/blueprints.md",
      "size_in_bytes": 2850
    },
    {
      "relative_path": "references/codebase-analysis.md",
      "size_in_bytes": 2453
    },
    {
      "relative_path": "references/compute-plans.md",
      "size_in_bytes": 2800
    },
    {
      "relative_path": "references/configuration-guide.md",
      "size_in_bytes": 11250
    },
    {
      "relative_path": "references/deployment-details.md",
      "size_in_bytes": 4280
    },
    {
      "relative_path": "references/deployments.md",
      "size_in_bytes": 8095
    },
    {
      "relative_path": "references/direct-creation.md",
      "size_in_bytes": 3131
    },
    {
      "relative_path": "references/environment-variables.md",
      "size_in_bytes": 4653
    },
    {
      "relative_path": "references/error-patterns.md",
      "size_in_bytes": 833
    },
    {
      "relative_path": "references/post-deploy-checks.md",
      "size_in_bytes": 1308
    },
    {
      "relative_path": "references/private-networking.md",
      "size_in_bytes": 4390
    },
    {
      "relative_path": "references/render-access.md",
      "size_in_bytes": 4830
    },
    {
      "relative_path": "references/runtimes.md",
      "size_in_bytes": 10756
    },
    {
      "relative_path": "references/service-types.md",
      "size_in_bytes": 4703
    },
    {
      "relative_path": "references/troubleshooting-basics.md",
      "size_in_bytes": 1361
    }
  ],
  "name": "render-deploy",
  "skill_md_contents": "---\nname: render-deploy\ndescription: Deploy applications to Render by analyzing codebases, generating render.yaml Blueprints, and providing Dashboard deeplinks. Use when the user wants to deploy, host, publish, or set up their application on Render's cloud platform.\nlicense: MIT\ncompatibility: Requires a Git repository on GitHub, GitLab, or Bitbucket for Blueprint/MCP flows. Blueprint can reference a prebuilt image but render.yaml must live in the repo. Render CLI recommended for Blueprint validation; MCP or CLI required for operations.\nmetadata:\n  author: Render\n  version: \"1.1.0\"\n  category: deployment\n---\n\n# Deploy to Render\n\nRender supports **Git-backed** services and **prebuilt Docker image** services.\n\nThis skill covers **Git-backed** flows:\n1. **Blueprint Method** - Generate render.yaml for Infrastructure-as-Code deployments\n2. **Direct Creation** - Create services instantly via MCP tools\n\nBlueprints can also run a **prebuilt Docker image** by using `runtime: image`, but the `render.yaml` still must live in a Git repo.\n\nIf there is no Git remote, stop and ask the user to either:\n- Create/push a Git remote (can be minimal if only the Blueprint is needed), or\n- Use the Render Dashboard/API to deploy a prebuilt Docker image (MCP cannot create image-backed services).\n\n## When to Use This Skill\n\nActivate this skill when users want to:\n- Deploy an application to Render\n- Create a render.yaml Blueprint file\n- Set up Render deployment for their project\n- Host or publish their application on Render's cloud platform\n- Create databases, cron jobs, or other Render resources\n\n## Happy Path (New Users)\n\nUse this short prompt sequence only to fill missing information. Do not ask the user to repeat details they already supplied. If the source and required resources are clear, proceed directly to method selection and deployment.\n1. Ask whether they want to deploy from a Git repo or a prebuilt Docker image.\n2. Ask whether Render should provision everything the app needs (based on what seems likely from the user's description) or only the app while they bring their own infra. If dependencies are unclear, ask a short follow-up to confirm whether they need a database, workers, cron, or other services.\n\nThen proceed with the appropriate method below.\n\n## Choose Your Source Path\n\n**Git Repo Path:** Required for both Blueprint and Direct Creation. The repo must be pushed to GitHub, GitLab, or Bitbucket.\n\n**Prebuilt Docker Image Path:** Supported by Render via image-backed services. This is **not** supported by MCP; use the Dashboard/API. Ask for:\n- Image URL (registry + tag)\n- Registry auth (if private)\n- Service type (web/worker) and port\n\nIf the user chooses a Docker image, guide them to the Render Dashboard image deploy flow or ask them to add a Git remote (so you can use a Blueprint with `runtime: image`).\n\n## Choose Your Deployment Method (Git Repo)\n\nBoth methods require a Git repository pushed to GitHub, GitLab, or Bitbucket. (If using `runtime: image`, the repo can be minimal and only contain `render.yaml`.)\n\n| Method | Best For | Pros |\n|--------|----------|------|\n| **Blueprint** | Multi-service apps, IaC workflows | Version controlled, reproducible, supports complex setups |\n| **Direct Creation** | Single services, quick deployments | Instant creation, no render.yaml file needed |\n\n### Method Selection Heuristic\n\nUse this decision rule by default unless the user requests a specific method. Analyze the codebase first; only ask if deployment intent is unclear (e.g., DB, workers, cron).\n\n**Use Direct Creation (MCP) when ALL are true:**\n- Single service (one web app or one static site)\n- No separate worker/cron services\n- No attached databases or Key Value\n- Simple env vars only (no shared env groups)\nIf this path fits and MCP isn't configured yet, stop and guide MCP setup before proceeding.\n\n**Use Blueprint when ANY are true:**\n- Multiple services (web + worker, API + frontend, etc.)\n- Databases, Key Value, or other datastores are required\n- Cron jobs, background workers, or private services\n- You want reproducible IaC or a render.yaml committed to the repo\n- Monorepo or multi-env setup that needs consistent configuration\n\nIf unsure, ask a quick clarifying question, but default to Blueprint for safety. For a single service, strongly prefer Direct Creation via MCP and guide MCP setup if needed.\n\n## Prerequisites Check\n\nWhen starting a deployment, verify these requirements in order:\n\n**1. Confirm Source Path (Git vs Docker)**\n\nIf using Git-based methods (Blueprint or Direct Creation), the repo must be pushed to GitHub/GitLab/Bitbucket. Blueprints that reference a prebuilt image still require a Git repo with `render.yaml`.\n\n```bash\ngit remote -v\n```\n\n- If no remote exists, stop and ask the user to create/push a remote **or** switch to Docker image deploy.\n\n**2. Establish Render Access**\n\nBefore reading or changing Render resources, follow [references/render-access.md](references/render-access.md) to choose an access path, authenticate, verify the intended workspace, and confirm the required capability. Blueprint validation still requires the Render CLI even when MCP is available.\n\nOnce prerequisites are met, proceed with deployment workflow.\n\nBefore triggering, monitoring, restarting, or rolling back a deploy, read [references/deployments.md](references/deployments.md) for the current lifecycle, health-check, and verification workflow.\n\nWhen resources communicate over Render's private network, read [references/private-networking.md](references/private-networking.md) before choosing regions or wiring addresses and ports.\n\nBefore selecting or changing a service type, read [references/service-types.md](references/service-types.md).\n\n---\n\n# Method 1: Blueprint Deployment (Recommended for Complex Apps)\n\n## Blueprint Workflow\n\n### Step 1: Analyze Codebase\n\nAnalyze the codebase to determine framework/runtime, build and start commands, required env vars, datastores, and port binding. Use the detailed checklists in [references/codebase-analysis.md](references/codebase-analysis.md).\n\n### Step 2: Generate render.yaml\n\nCreate a `render.yaml` Blueprint file following the Blueprint specification.\n\nBefore authoring or changing the file, read [references/blueprints.md](references/blueprints.md) and follow its current specification-fetch, validation, repository-sync, and safety workflow.\n\nFor variables, secrets, secret files, or environment groups, also read [references/environment-variables.md](references/environment-variables.md).\n\n**Key Points:**\n- Select a compute plan appropriate to the resource and workload. Consult [references/compute-plans.md](references/compute-plans.md) for current Plan IDs, defaults, availability, and pricing guidance instead of relying on examples in this skill.\n- Unless the user specifies a region, place new resources in the same region as their related existing services to preserve private network connectivity.\n- Include every environment variable the app requires and use the intended source of truth and secret mechanism from `references/environment-variables.md`\n- Use appropriate service type: `web`, `worker`, `cron`, `keyvalue`, or `pserv` (`type: web` with `runtime: static` for static sites)\n- Use appropriate runtime: [references/runtimes.md](references/runtimes.md)\n\n**Basic Structure:**\n```yaml\nservices:\n  - type: web\n    name: my-app\n    runtime: node\n    plan: free\n    buildCommand: npm ci\n    startCommand: npm start\n    envVars:\n      - key: DATABASE_URL\n        fromDatabase:\n          name: postgres\n          property: connectionString\n      - key: JWT_SECRET\n        sync: false  # User fills in Dashboard\n\ndatabases:\n  - name: postgres\n    databaseName: myapp_db\n    plan: free\n```\n\n**Service Types:**\n- `web`: HTTP services, APIs, web applications (publicly accessible)\n- `worker`: Background job processors (not publicly accessible)\n- `cron`: Scheduled tasks that run on a cron schedule\n- `pserv`: Private services (internal only, within same account and region)\n- `keyvalue`: Redis-compatible key-value store\n\nA service with `type: web` and `runtime: static` is a static site served via global CDN. Static sites do not have a `plan`.\n\nPostgres databases are defined under the `databases` key instead of the `services` key. They do not have a `type`.\n\nService type details: [references/service-types.md](references/service-types.md)\nRuntime options: [references/runtimes.md](references/runtimes.md)\nTemplate examples: [assets/](assets/)\n\n### Step 2.5: Immediate Next Steps (Always Provide)\n\nAfter creating `render.yaml`, always give the user a short, explicit checklist and run validation immediately when the CLI is available:\n1. **Confirm access**: follow [references/render-access.md](references/render-access.md)\n2. **Validate**: run `render blueprints validate render.yaml`\n   - If the CLI isn't installed, offer to install it and provide the command.\n3. **Commit + push**: `git add render.yaml && git commit -m \"Add Render deployment configuration\" && git push origin main`\n4. **Open Dashboard**: Use the Blueprint deeplink and complete Git OAuth if prompted\n5. **Complete secret configuration**: Supply any values required by the selected environment-variable workflow\n6. **Deploy**: Click \"Apply\" and monitor the deploy\n\n### Step 3: Validate Configuration\n\nFollow the validation workflow in [references/blueprints.md](references/blueprints.md). If the CLI is installed, run the commands directly; only prompt the user if the CLI is missing:\n\n```bash\nrender blueprints validate render.yaml\n```\n\nIf the Blueprint is not at `render.yaml` relative to the current directory, pass its actual file path instead.\n\nFix any validation errors before proceeding. Common issues:\n- Missing required fields (`name`, `type`, `runtime`)\n- Invalid runtime values\n- Incorrect YAML syntax\n- Invalid environment variable references\n\nConfiguration guide: [references/configuration-guide.md](references/configuration-guide.md)\n\n### Step 4: Commit and Push\n\n**IMPORTANT:** You must merge the `render.yaml` file into your repository before deploying.\n\nEnsure the `render.yaml` file is committed and pushed to your Git remote:\n\n```bash\ngit add render.yaml\ngit commit -m \"Add Render deployment configuration\"\ngit push origin main\n```\n\nIf there is no Git remote yet, stop here and guide the user to create a GitHub/GitLab/Bitbucket repo, add it as `origin`, and push before continuing.\n\n**Why this matters:** The Dashboard deeplink will read the render.yaml from your repository. If the file isn't merged and pushed, Render won't find the configuration and deployment will fail.\n\nVerify the file is in your remote repository before proceeding to the next step.\n\n### Step 5: Generate Deeplink\n\nGet the Git repository URL:\n\n```bash\ngit remote get-url origin\n```\n\nThis will return a URL from your Git provider. **If the URL is SSH format, convert it to HTTPS:**\n\n| SSH Format | HTTPS Format |\n|------------|--------------|\n| `git@github.com:user/repo.git` | `https://github.com/user/repo` |\n| `git@gitlab.com:user/repo.git` | `https://gitlab.com/user/repo` |\n| `git@bitbucket.org:user/repo.git` | `https://bitbucket.org/user/repo` |\n\n**Conversion pattern:** Replace `git@<host>:` with `https://<host>/` and remove `.git` suffix.\n\nFormat the Dashboard deeplink using the HTTPS repository URL:\n```\nhttps://dashboard.render.com/blueprint/new?repo=<REPOSITORY_URL>\n```\n\nExample:\n```\nhttps://dashboard.render.com/blueprint/new?repo=https://github.com/username/repo-name\n```\n\n### Step 6: Guide User\n\n**CRITICAL:** Ensure the user has merged and pushed the render.yaml file to their repository before clicking the deeplink. If the file isn't in the repository, Render cannot read the Blueprint configuration and deployment will fail.\n\nProvide the deeplink to the user with these instructions:\n\n1. **Verify render.yaml is merged** - Confirm the file exists in your repository on GitHub/GitLab/Bitbucket\n2. Click the deeplink to open Render Dashboard\n3. Complete Git provider OAuth if prompted\n4. Name the Blueprint (or use default from render.yaml)\n5. Complete any required secret configuration without exposing values\n6. Review services and databases configuration\n7. Click \"Apply\" to deploy\n\nThe deployment will begin automatically. Users can monitor progress in the Render Dashboard.\n\n### Step 7: Verify Deployment\n\nAfter the user deploys via Dashboard, follow [references/deployments.md](references/deployments.md) to monitor the specific deploy through a terminal status and verify the resulting workload.\n\nIf errors are found, proceed to the **Post-deploy verification and basic triage** section below.\n\n---\n\n# Method 2: Direct Service Creation (Quick Single-Service Deployments)\n\nFor simple deployments without Infrastructure-as-Code, create services directly via MCP tools.\n\n## When to Use Direct Creation\n\n- Single web service or static site\n- Quick prototypes or demos\n- When you don't need a render.yaml file in your repo\n- Adding databases or cron jobs to existing projects\n\n## Prerequisites for Direct Creation\n\n**Repository must be pushed to a Git provider.** Render clones your repository to build and deploy services.\n\n```bash\ngit remote -v  # Verify remote exists\ngit push origin main  # Ensure code is pushed\n```\n\nSupported providers: GitHub, GitLab, Bitbucket\n\nIf no remote exists, stop and ask the user to create/push a remote or switch to Docker image deploy.\n\n**Note:** MCP does not support creating image-backed services. Use the Dashboard/API for prebuilt Docker image deploys.\n\n## Direct Creation Workflow\n\nUse the concise steps below, and refer to [references/direct-creation.md](references/direct-creation.md) for full MCP command examples and follow-on configuration.\n\n### Step 1: Analyze Codebase\nUse [references/codebase-analysis.md](references/codebase-analysis.md) to determine runtime, build/start commands, env vars, and datastores.\n\n### Step 2: Create Resources via MCP\nCreate the service (web or static) and any required databases or key-value stores. See [references/direct-creation.md](references/direct-creation.md).\n\nIf MCP returns an error about missing Git credentials or repo access, stop and guide the user to connect their Git provider in the Render Dashboard, then retry.\n\n### Step 3: Configure Environment Variables\nBefore changing service configuration, read [references/environment-variables.md](references/environment-variables.md). Add required env vars via MCP after creation using [references/direct-creation.md](references/direct-creation.md).\n\nRemind the user that secrets can be set in the Dashboard if they prefer not to pass them via MCP.\n\n### Step 4: Verify Deployment\nCheck deploy status, logs, and metrics. See [references/direct-creation.md](references/direct-creation.md).\n\n---\n\nFor service discovery, configuration details, quick commands, and common issues, see [references/deployment-details.md](references/deployment-details.md).\n\n---\n\n# Post-deploy verification and basic triage (All Methods)\n\nFollow [references/deployments.md](references/deployments.md) for deploy-state interpretation and post-live verification. If any check fails, fix it before redeploying.\n\nDetailed checklist and commands: [references/post-deploy-checks.md](references/post-deploy-checks.md)\n\nIf the service fails to start or health checks time out, use the basic triage guide:\n[references/troubleshooting-basics.md](references/troubleshooting-basics.md)\n\nOptional: If you need deeper diagnostics (metrics/DB checks/error catalog), suggest installing the\n`render-debug` skill. It is not required for the core deploy flow.\n\n<!-- shared:documentation-retrieval -->\n## Current documentation retrieval\n\nWhenever this skill directs you to consult current Render documentation:\n\n1. Retrieve the linked Markdown document directly with an available URL-fetching tool or HTTP client, such as `curl`. Do not substitute web-search summaries for the document.\n2. Confirm that retrieval succeeded and returned the expected document, then read its contents. Saving a file or printing its path is not sufficient.\n3. If the request fails or your tool cannot read the Markdown response, open and read the linked HTML version instead.\n4. If neither version can be retrieved, disclose that the current reference is unavailable and follow any topic-specific fallback in the skill. Use bundled guidance only for stable constraints, and do not guess at changeable platform details.\n\nWhen a task requires multiple references, apply this workflow to each one and distinguish the documents you verified from those that remain unavailable.\n<!-- /shared:documentation-retrieval -->\n"
}

SHA-256 of public snapshot: 04e8e790abbba4d9fb186590b5684d0238a134c2d834677a79228a73dd74f1a7