release - deployment readiness for Render and Vercel
Context reuse: Reuse any required file already loaded in project instructions or the current session. Read it again only if absent, changed, or exact current bytes or line references are needed.
First action: Before project inspection, preflight, or any other tool call,
publish running to blueprint/.state/run.json using the dashboard activity
contract in AGENTS.md.
Where this sits in the workflow:
/complete -> [release] -> deploy with explicit approval
(feature (config, (human confirms
finished) checks) external action)
/release is an optional deployment prep step. It gets the app ready to ship,
but it is not a deploy button. It can inspect, recommend, create local config
files, and run local checks. It must stop before any external provider action
unless the user gives an explicit yes in the current chat.
Initial targets:
- Render - static sites, web services, background workers, cron jobs, and
render.yaml when useful.
- Vercel - frontend apps, full-stack framework apps, serverless functions,
and
vercel.json when useful.
Input
Optional scope:
- no argument: inspect the project and recommend Render or Vercel if the target
is obvious; otherwise ask which target to prepare
render: prepare Render readiness and config
vercel: prepare Vercel readiness and config
check: read-only deployment readiness report
config: focus on creating or updating local provider config files
If the user asks to deploy, connect a provider, create a remote service, set
remote env vars, push, publish, or run provider commands that affect a remote,
pause and ask for explicit confirmation before doing it.
Step 1 - read the project
Read:
AGENTS.md
blueprint/project-plan.md
blueprint/build-plan.md
blueprint/context/project-overview.md
blueprint/context/current-feature.md
- package or build files such as
package.json, lockfiles, framework config,
Dockerfile, render.yaml, vercel.json, .env.example, and README files
- git branch and working tree status
Identify:
- app type: static frontend, SSR app, API service, worker, CLI, monorepo, or
hybrid
- build command, start command, dev command, test command, output directory, and
package manager
- runtime needs: Node version, Python version, Docker, database, cache, object
storage, queues, background jobs, cron, migrations, or file uploads
- env vars by name only; never print or write secret values
- health path or smoke test path
Step 2 - choose the provider shape
For Render, decide whether the app should be:
- static site
- web service
- background worker
- cron job
- database paired with a service
For Vercel, decide whether the app should be:
- framework deployment with auto-detected settings
- static output deployment
- serverless or edge function app
- monorepo project with a root directory
If the provider is a poor fit, say that plainly and recommend the better target.
Examples: long-running workers usually fit Render better; a mostly frontend
Next.js or Astro site usually fits Vercel well.
Step 3 - verify local readiness
Run only local, non-destructive checks that match AGENTS.md:
- install check only if dependencies are already present or the user approves an
install
- build command
- test command when declared
- preview or start command if safe, then smoke test the health path
- lint or typecheck only when listed in project commands or package scripts
If a command is missing, report the gap instead of inventing certainty. If a
command needs secrets, list the env var names needed and skip that check.
Step 4 - prepare local config
Only create or update local config files when the target is clear or the user
asked for config.
For Render, prefer render.yaml when the app needs repeatable setup or has
more than one service. Include:
- service type
- build command
- start command for web services
- static publish path for static sites
- health check path when known
- env var names without values
- region or plan only if the user specified it
For Vercel, create vercel.json only when the defaults are not enough.
Many Vercel projects need no config file. Include:
- build command only when it differs from defaults
- output directory only when needed
- rewrites or headers only when the app requires them
- install command only when the package manager cannot be inferred
For both providers:
- update
.env.example with required names when useful
- add a short deployment note to README only if the project already has a
deployment section or the user asks
- never write secret values
Step 5 - report the release packet
Finish with a concise packet:
- Target - Render or Vercel, and why
- Shape - static site, web service, framework app, worker, or hybrid
- Config changed - files created or edited, or "none"
- Checks run - commands and result
- Env needed - names only
- Smoke test - exact path or command to verify after deploy
- Blockers - anything that must be fixed before shipping
- Next action - exact command or provider step, stopping before external
action unless approved
Rules
- Optional only. Do not add
/release to the mandatory build loop.
- Do not deploy, create remote services, set remote env vars, push, publish, or
transmit externally without explicit approval in the current chat.
- Do not write secret values to files or chat.
- Do not hide failing builds, missing env vars, or unknown output paths.
- Do not add provider config if the platform defaults are better.
- Keep the change small. Deployment setup should not become a full DevOps
framework.
Formatting
Format the output to match the project's conventions in
blueprint/context/ai-interaction.md: concise, scannable markdown, with lists for
enumerations and tables for matrices rather than dense paragraphs.
1---2name: release3description: Prepare local Render or Vercel deployment configuration and verify build, start, output, environment, and health-check readiness without deploying. Use for /release, Render setup, Vercel setup, deploy readiness, render.yaml, or vercel.json.4---56# release - deployment readiness for Render and Vercel78**Context reuse:** Reuse any required file already loaded in project instructions or the current session. Read it again only if absent, changed, or exact current bytes or line references are needed.910**First action:** Before project inspection, preflight, or any other tool call,11publish `running` to `blueprint/.state/run.json` using the dashboard activity12contract in `AGENTS.md`.1314Where this sits in the workflow:1516 /complete -> [release] -> deploy with explicit approval17 (feature (config, (human confirms18 finished) checks) external action)1920`/release` is an optional deployment prep step. It gets the app ready to ship,21but it is not a deploy button. It can inspect, recommend, create local config22files, and run local checks. It must stop before any external provider action23unless the user gives an explicit yes in the current chat.2425Initial targets:2627- **Render** - static sites, web services, background workers, cron jobs, and28 `render.yaml` when useful.29- **Vercel** - frontend apps, full-stack framework apps, serverless functions,30 and `vercel.json` when useful.3132## Input3334Optional scope:3536- no argument: inspect the project and recommend Render or Vercel if the target37 is obvious; otherwise ask which target to prepare38- `render`: prepare Render readiness and config39- `vercel`: prepare Vercel readiness and config40- `check`: read-only deployment readiness report41- `config`: focus on creating or updating local provider config files4243If the user asks to deploy, connect a provider, create a remote service, set44remote env vars, push, publish, or run provider commands that affect a remote,45pause and ask for explicit confirmation before doing it.4647## Step 1 - read the project4849Read:5051- `AGENTS.md`52- `blueprint/project-plan.md`53- `blueprint/build-plan.md`54- `blueprint/context/project-overview.md`55- `blueprint/context/current-feature.md`56- package or build files such as `package.json`, lockfiles, framework config,57 Dockerfile, `render.yaml`, `vercel.json`, `.env.example`, and README files58- git branch and working tree status5960Identify:6162- app type: static frontend, SSR app, API service, worker, CLI, monorepo, or63 hybrid64- build command, start command, dev command, test command, output directory, and65 package manager66- runtime needs: Node version, Python version, Docker, database, cache, object67 storage, queues, background jobs, cron, migrations, or file uploads68- env vars by name only; never print or write secret values69- health path or smoke test path7071## Step 2 - choose the provider shape7273For **Render**, decide whether the app should be:7475- static site76- web service77- background worker78- cron job79- database paired with a service8081For **Vercel**, decide whether the app should be:8283- framework deployment with auto-detected settings84- static output deployment85- serverless or edge function app86- monorepo project with a root directory8788If the provider is a poor fit, say that plainly and recommend the better target.89Examples: long-running workers usually fit Render better; a mostly frontend90Next.js or Astro site usually fits Vercel well.9192## Step 3 - verify local readiness9394Run only local, non-destructive checks that match `AGENTS.md`:9596- install check only if dependencies are already present or the user approves an97 install98- build command99- test command when declared100- preview or start command if safe, then smoke test the health path101- lint or typecheck only when listed in project commands or package scripts102103If a command is missing, report the gap instead of inventing certainty. If a104command needs secrets, list the env var names needed and skip that check.105106## Step 4 - prepare local config107108Only create or update local config files when the target is clear or the user109asked for config.110111For **Render**, prefer `render.yaml` when the app needs repeatable setup or has112more than one service. Include:113114- service type115- build command116- start command for web services117- static publish path for static sites118- health check path when known119- env var names without values120- region or plan only if the user specified it121122For **Vercel**, create `vercel.json` only when the defaults are not enough.123Many Vercel projects need no config file. Include:124125- build command only when it differs from defaults126- output directory only when needed127- rewrites or headers only when the app requires them128- install command only when the package manager cannot be inferred129130For both providers:131132- update `.env.example` with required names when useful133- add a short deployment note to README only if the project already has a134 deployment section or the user asks135- never write secret values136137## Step 5 - report the release packet138139Finish with a concise packet:140141- **Target** - Render or Vercel, and why142- **Shape** - static site, web service, framework app, worker, or hybrid143- **Config changed** - files created or edited, or "none"144- **Checks run** - commands and result145- **Env needed** - names only146- **Smoke test** - exact path or command to verify after deploy147- **Blockers** - anything that must be fixed before shipping148- **Next action** - exact command or provider step, stopping before external149 action unless approved150151## Rules152153- Optional only. Do not add `/release` to the mandatory build loop.154- Do not deploy, create remote services, set remote env vars, push, publish, or155 transmit externally without explicit approval in the current chat.156- Do not write secret values to files or chat.157- Do not hide failing builds, missing env vars, or unknown output paths.158- Do not add provider config if the platform defaults are better.159- Keep the change small. Deployment setup should not become a full DevOps160 framework.161162## Formatting163164Format the output to match the project's conventions in165`blueprint/context/ai-interaction.md`: concise, scannable markdown, with lists for166enumerations and tables for matrices rather than dense paragraphs.